版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、PAGE PAGE 37單元測(cè)試分析報(bào)告1引言1.1編寫目的本文檔對(duì)天津農(nóng)合行稽核監(jiān)督及操作風(fēng)險(xiǎn)監(jiān)控系統(tǒng)的單元測(cè)試進(jìn)行分析總結(jié),讀者主要面向參與本項(xiàng)目的開發(fā)人員和測(cè)試人員,另外還有天津農(nóng)合行相關(guān)領(lǐng)導(dǎo)和專家。1.2背景項(xiàng)目來(lái)源傳統(tǒng)上,銀行的風(fēng)險(xiǎn)指信貸風(fēng)險(xiǎn)和市場(chǎng)風(fēng)險(xiǎn),在操作風(fēng)險(xiǎn)管理上較為落后。當(dāng)前對(duì)操作風(fēng)險(xiǎn)的預(yù)防主要放在監(jiān)督中心,現(xiàn)有的監(jiān)督軟件只能做到通過(guò)分散地挑選一部分憑證來(lái)對(duì)流水進(jìn)行核實(shí),對(duì)于沒有憑證的業(yè)務(wù)不能進(jìn)行監(jiān)控。對(duì)整個(gè)業(yè)務(wù)的綜合分析,只能通過(guò)人工的方式憑業(yè)務(wù)人員的自身素質(zhì)進(jìn)行簡(jiǎn)單判斷,若要對(duì)需復(fù)雜計(jì)算、大數(shù)據(jù)量分析后才能得到的風(fēng)險(xiǎn)信息,就需要運(yùn)用計(jì)算機(jī)手段來(lái)實(shí)現(xiàn)。原先由人工進(jìn)行監(jiān)督,只
2、能對(duì)憑證進(jìn)行全面監(jiān)督,無(wú)法根據(jù)業(yè)務(wù)重要性區(qū)分監(jiān)督重點(diǎn)。近年來(lái)銀行內(nèi)部人作案層出不窮,由于這些人熟悉銀行制度、系統(tǒng)的漏洞,作案手段有很強(qiáng)的連續(xù)性和隱蔽性,通常一般監(jiān)督難以發(fā)現(xiàn)?,F(xiàn)階段,部分銀行還存在以下問(wèn)題:憑證保存不便,查閱困難。憑證經(jīng)過(guò)事后監(jiān)督后送回網(wǎng)點(diǎn),由網(wǎng)點(diǎn)分散保管,占據(jù)了行內(nèi)存放憑證的空間,查閱憑證費(fèi)時(shí)費(fèi)力,要遞送憑證紙張,浪費(fèi)時(shí)間,并且由于經(jīng)常查閱導(dǎo)致憑證損壞。整個(gè)事后監(jiān)督操作比較分散,不適應(yīng)前臺(tái)業(yè)務(wù)整合和核算一體化的管理要求。人工審票重點(diǎn)不突出。一般由事后監(jiān)督人員手工翻閱部分傳票,無(wú)法選擇高風(fēng)險(xiǎn)業(yè)務(wù)進(jìn)行重點(diǎn)監(jiān)督。人工審票需要具有較高素質(zhì)、較多經(jīng)驗(yàn)的監(jiān)督人員,這樣對(duì)監(jiān)督人員要求高,人
3、員培訓(xùn)也要花費(fèi)很大的開銷。不能實(shí)現(xiàn)基于歷史交易統(tǒng)計(jì)和關(guān)聯(lián)交易分析。目前各家銀行在風(fēng)險(xiǎn)的防范上均采取了各種措施,包括主業(yè)務(wù)系統(tǒng)內(nèi)部實(shí)現(xiàn)的基于交易的控制,以及基于當(dāng)天業(yè)務(wù)數(shù)據(jù)的簡(jiǎn)易的分析,但是隨著目前高智商犯罪的增加,做案分子專門找制度的漏洞,使得每一筆業(yè)務(wù)本身都是正確的,而只有基于大量業(yè)務(wù)的統(tǒng)計(jì)和關(guān)聯(lián)交易進(jìn)行分析時(shí)才發(fā)現(xiàn)。對(duì)風(fēng)險(xiǎn)缺乏制度化的整套管理制度。風(fēng)險(xiǎn)模型的提出和建立、風(fēng)險(xiǎn)的生成和查詢、風(fēng)險(xiǎn)的處理、風(fēng)險(xiǎn)的打印、風(fēng)險(xiǎn)的核銷和落實(shí)沒有制度化的方法來(lái)保證,效率低下。風(fēng)險(xiǎn)的響應(yīng)不及時(shí)。一般地,70的風(fēng)險(xiǎn)案件需要查找到原始憑證或者憑證的圖像,但是目前的銀行憑證的管理和風(fēng)險(xiǎn)的分析屬于兩個(gè)不同的部門,使
4、得即使發(fā)現(xiàn)了風(fēng)險(xiǎn),等到落實(shí)查找時(shí)已經(jīng)過(guò)去了許多天,不能及時(shí)減少風(fēng)險(xiǎn)帶來(lái)的損失。有效地管理和方便地調(diào)閱龐大的交易流水信息和憑證影像信息,高效監(jiān)督并及時(shí)發(fā)現(xiàn)操作方面的風(fēng)險(xiǎn)日益受到銀行各級(jí)領(lǐng)導(dǎo)的重視,為了適應(yīng)行內(nèi)前臺(tái)業(yè)務(wù)整合和核算一體化的管理要求,達(dá)到減員增效和提高監(jiān)督質(zhì)量的目的,建立一套完善的、自動(dòng)化程度高、擴(kuò)展性強(qiáng)的集流水勾對(duì)、帳務(wù)處理、稽核和統(tǒng)計(jì)分析、決策支持的全新的監(jiān)督系統(tǒng)已迫在眉睫。為了解決銀行面臨的以上問(wèn)題,信雅達(dá)公司提供的綜合事后監(jiān)督系統(tǒng)引入了OCR光學(xué)識(shí)別技術(shù),集憑證錄入、圖像處理、智能識(shí)別、數(shù)據(jù)核對(duì)、海量存儲(chǔ)、精確查詢、重點(diǎn)監(jiān)督于一體的計(jì)算機(jī)輔助管理系統(tǒng),實(shí)現(xiàn)了憑證檔案的縮微,并在
5、實(shí)現(xiàn)憑證影像精確索引的基礎(chǔ)上,建立業(yè)務(wù)處理風(fēng)險(xiǎn)預(yù)警監(jiān)督中心,結(jié)合影像和流水實(shí)現(xiàn)對(duì)業(yè)務(wù)的重點(diǎn)監(jiān)督,替代銀行原有的手工監(jiān)督和賬務(wù)監(jiān)督的模式,逐步實(shí)現(xiàn)了事后監(jiān)督的自動(dòng)化。該項(xiàng)目的可行性研究,正是基于這樣一種背景,為統(tǒng)一影像技術(shù)的應(yīng)用范圍、應(yīng)用模式、業(yè)務(wù)需求、技術(shù)方案和加強(qiáng)該項(xiàng)技術(shù)的應(yīng)用管理而提出來(lái)的。委托單位天津農(nóng)合行;開發(fā)單位信雅達(dá)系統(tǒng)工程股份有限公司;主管部門天津農(nóng)合行業(yè)務(wù)監(jiān)控中心、天津農(nóng)合行信息技術(shù)中心1.3定義CMM軟件能力成熟度模型OCR光學(xué)字符識(shí)別CSBANK IPS天津農(nóng)合行稽核監(jiān)督及操作風(fēng)險(xiǎn)監(jiān)控系統(tǒng)1.4參考資料1 天津農(nóng)合行產(chǎn)品業(yè)務(wù)需求書2 CMM軟件規(guī)范,信雅達(dá)質(zhì)量管理部,201
6、0.4.183 天津農(nóng)合行稽核監(jiān)督及操作風(fēng)險(xiǎn)監(jiān)控系統(tǒng)需求規(guī)格說(shuō)明,項(xiàng)目組,2004 天津農(nóng)合行稽核監(jiān)督及操作風(fēng)險(xiǎn)監(jiān)控系統(tǒng)概要設(shè)計(jì)說(shuō)明書V1.0.0,項(xiàng)目組,20095 天津農(nóng)合行稽核監(jiān)督及操作風(fēng)險(xiǎn)監(jiān)控系統(tǒng)數(shù)據(jù)庫(kù)結(jié)構(gòu)說(shuō)明書V1.0.0,項(xiàng)目組,20092單元測(cè)試項(xiàng)目及結(jié)果2.1 掃描程序單元測(cè)試計(jì)劃標(biāo)識(shí)掃描.粗索引錄入模塊組件功能項(xiàng)完成粗索引的錄入針對(duì)概要/詳細(xì)設(shè)計(jì)文件名稽核監(jiān)督及操作風(fēng)險(xiǎn)監(jiān)控系統(tǒng)項(xiàng)目概要設(shè)計(jì)說(shuō)明書V1.0.0物理文件名BatchInputInfo.h, BatchInputInfo.c編號(hào)1.001 程序設(shè)計(jì)人員陳時(shí)康測(cè)試人員王勇、王品測(cè)試目的正確顯示粗索引信息,并檢驗(yàn)用戶輸入
7、的有效性測(cè)試內(nèi)容描述檢查用戶是否輸入了網(wǎng)點(diǎn)號(hào)或柜員號(hào),是否有輸入項(xiàng)為空輸入期望有一個(gè)為空的輸入項(xiàng)功能處理期望描述無(wú)法通過(guò)檢驗(yàn),錯(cuò)誤信息為粗索引信息不能為空輸出期望粗索引信息不能為空單元測(cè)試結(jié)果實(shí)際輸入數(shù)據(jù)柜員為空實(shí)際處理情況描述用戶點(diǎn)擊確定按鈕后,程序檢驗(yàn),發(fā)現(xiàn)柜員為空,彈出柜員不能為空的提示信息實(shí)際輸出柜員不能為空測(cè)試結(jié)論正常 單元測(cè)試計(jì)劃標(biāo)識(shí)掃描.掃描模塊和生成索引文件組件功能項(xiàng)取得圖像,并正確顯示針對(duì)概要/詳細(xì)設(shè)計(jì)文件名稽核監(jiān)督及操作風(fēng)險(xiǎn)監(jiān)控系統(tǒng)項(xiàng)目概要設(shè)計(jì)說(shuō)明書V1.0.0物理文件名Dyinput.h ,Dyinput.c;view,h,view.c ;xvcsview.h,xvcsv
8、iew.c編號(hào)1.002 程序設(shè)計(jì)人員陳時(shí)康測(cè)試人員王勇、王品測(cè)試目的能取得圖像,并正確顯示測(cè)試內(nèi)容描述掃描圖像輸入期望在試圖中顯示功能處理期望描述輸出期望正確顯示單元測(cè)試結(jié)果實(shí)際輸入數(shù)據(jù)實(shí)際憑證實(shí)際處理情況描述取得憑證圖像實(shí)際輸出取得憑證圖像,并在視圖中顯示測(cè)試結(jié)論正常 單元測(cè)試計(jì)劃標(biāo)識(shí)掃描.憑證登記模塊組件功能項(xiàng)完成用戶掃描的憑證登記針對(duì)概要/詳細(xì)設(shè)計(jì)文件名稽核監(jiān)督及操作風(fēng)險(xiǎn)監(jiān)控系統(tǒng)項(xiàng)目概要設(shè)計(jì)說(shuō)明書V1.0.0物理文件名c;view,h,view.c ;xvcsview.h,xvcsview.c,userdefine.h,userdefine.cpp,voucherchk.c編號(hào)1.00
9、3 程序設(shè)計(jì)人員陳時(shí)康測(cè)試人員王勇、王品測(cè)試目的登記一個(gè)柜員的憑證,在提交的時(shí)候進(jìn)行核對(duì)。測(cè)試內(nèi)容描述掃描員登記一批憑證,輸入期望大于實(shí)際的憑證數(shù)功能處理期望描述在提交的是后提示用戶,憑證登記數(shù)不對(duì)輸出期望有提示單元測(cè)試結(jié)果實(shí)際輸入數(shù)據(jù)登記100張,實(shí)際掃描99張實(shí)際處理情況描述在提交的時(shí)候提示用戶實(shí)際輸出提示用戶,憑證等記數(shù)不對(duì)測(cè)試結(jié)論正常 單元測(cè)試計(jì)劃標(biāo)識(shí)InputDevice.ini配置組件功能項(xiàng)對(duì)配置文件進(jìn)行配置,檢驗(yàn)掃描程序是否正常讀取參數(shù)針對(duì)概要/詳細(xì)設(shè)計(jì)文件名稽核監(jiān)督及操作風(fēng)險(xiǎn)監(jiān)控系統(tǒng)項(xiàng)目概要設(shè)計(jì)說(shuō)明書V1.0.0物理文件名ImageInputSysSet.cpp.cpp, Im
10、ageInputSysSet.cpp.h,View.cpp,View.h編號(hào)1.004 程序設(shè)計(jì)人員陳時(shí)康測(cè)試人員王勇、王品測(cè)試目的檢驗(yàn)配置信息是否被正確讀取測(cè)試內(nèi)容描述修改配置文件InputDevice.ini啟動(dòng)掃描程序輸入期望正確的配置信息功能處理期望描述按配置項(xiàng)目讀取配置參數(shù)輸出期望將配置信息取入內(nèi)存中單元測(cè)試結(jié)果實(shí)際輸入數(shù)據(jù)InputDevice.ini實(shí)際處理情況描述按配置項(xiàng)目讀取參數(shù)實(shí)際輸出參數(shù)被讀入內(nèi)存中測(cè)試結(jié)論正常 單元測(cè)試計(jì)劃標(biāo)識(shí)調(diào)用XVCS進(jìn)行掃描處理組件功能項(xiàng)完成調(diào)用XVCS,并接收XVCS提交的數(shù)據(jù)針對(duì)概要/詳細(xì)設(shè)計(jì)文件名稽核監(jiān)督及操作風(fēng)險(xiǎn)監(jiān)控系統(tǒng)項(xiàng)目概要設(shè)計(jì)說(shuō)明書V
11、1.0.0物理文件名XvcsSysSet.cpp,XvcsSysSet.h,XvcsView.cpp,XvcsView.h編號(hào)1.005 程序設(shè)計(jì)人員陳時(shí)康測(cè)試人員王勇、王品測(cè)試目的檢驗(yàn)掃描程序與XVCS的接口測(cè)試內(nèi)容描述打開掃描程序,自動(dòng)調(diào)用XVCS掃描員登記、掃描一批憑證,完成掃描,掃描程序接收XVCS提交圖像數(shù)據(jù)輸入期望登記一批圖像,掃描圖像,提交功能處理期望描述程序自動(dòng)調(diào)用XVCS,掃描完成后,提交給掃描程序輸出期望掃描程序成功獲取XVCS提交圖像單元測(cè)試結(jié)果實(shí)際輸入數(shù)據(jù)登記掃描20張影像,并提交實(shí)際處理情況描述XVCS被成功調(diào)用實(shí)際輸出掃描程序成功獲取了XVCS提交的影像測(cè)試結(jié)論正常
12、 2.2 自動(dòng)處理單元測(cè)試計(jì)劃標(biāo)識(shí)自動(dòng)識(shí)別組件功能項(xiàng)完成版面識(shí)別,OCR識(shí)別以及流水勾對(duì)針對(duì)概要/詳細(xì)設(shè)計(jì)文件名稽核監(jiān)督及操作風(fēng)險(xiǎn)監(jiān)控系統(tǒng)項(xiàng)目概要設(shè)計(jì)說(shuō)明書V1.0.0物理文件名AutoProcess.cpp AutoProcess.hFormRecog.cpp FormRecog.hOCRRecog.cpp OCRRecog.MainFrm.cpp MainFrm.h單元測(cè)試子項(xiàng)001 編號(hào)2.001 程序設(shè)計(jì)人員張海軍、王勇測(cè)試人員王勇、王品測(cè)試目的是否能夠識(shí)別出圖象的版面名稱測(cè)試內(nèi)容描述對(duì)于20091021采集到的圖象進(jìn)行版面識(shí)別輸入期望采集到的圖象數(shù)據(jù)功能處理期望描述對(duì)于輸入的圖象能夠
13、進(jìn)行正確的版面識(shí)別輸出期望正確的圖象版面識(shí)別結(jié)果單元測(cè)試結(jié)果實(shí)際輸入數(shù)據(jù)20040412采集到的圖象數(shù)據(jù)實(shí)際處理情況描述首先從數(shù)據(jù)庫(kù)中取得圖象數(shù)據(jù),然后進(jìn)行版面識(shí)別實(shí)際輸出大部分都是正確的版面識(shí)別結(jié)果測(cè)試結(jié)論正常單元測(cè)試子項(xiàng)002編號(hào)2.002 程序設(shè)計(jì)人員張海軍、王勇測(cè)試人員王勇、王品測(cè)試目的是否能夠?qū)Σ煌陌婷孢M(jìn)行正確的OCR識(shí)別測(cè)試內(nèi)容描述對(duì)于20091021采集的圖象進(jìn)行版面識(shí)別以后,對(duì)于不同的版面識(shí)別結(jié)果進(jìn)行相應(yīng)的OCR識(shí)別輸入期望圖象數(shù)據(jù),版面名稱,以及相應(yīng)的OCR識(shí)別信息功能處理期望描述對(duì)于不同版面名稱的圖象,進(jìn)行不同區(qū)域的圖象進(jìn)行摳取,進(jìn)行正確的OCR識(shí)別輸出期望得到正確的OC
14、R識(shí)別結(jié)果單元測(cè)試結(jié)果實(shí)際輸入數(shù)據(jù)20091021采集的圖象和OCR識(shí)別后的版面名稱以及OCR識(shí)別信息實(shí)際處理情況描述對(duì)于圖象進(jìn)行了相關(guān)的圖象摳取和相應(yīng)的手寫體以及打印體識(shí)別實(shí)際輸出大部分都是正確的OCR識(shí)別結(jié)果,一部分由于識(shí)別版面的一些干擾,導(dǎo)致識(shí)別有誤測(cè)試結(jié)論正常單元測(cè)試子項(xiàng)003編號(hào)2.003 程序設(shè)計(jì)人員張海軍、王勇測(cè)試人員王勇、王品測(cè)試目的是否能夠進(jìn)行正確的流水勾對(duì)測(cè)試內(nèi)容描述對(duì)于20091021采集到的圖象經(jīng)過(guò)版面識(shí)別以及OCR處理以后,進(jìn)行流水勾對(duì)輸入期望版面識(shí)別結(jié)果,和OCR處理結(jié)果功能處理期望描述根據(jù)版面名稱,帳號(hào)金額等信息與流水進(jìn)行勾對(duì)輸出期望流水勾對(duì)成功單元測(cè)試結(jié)果實(shí)際輸
15、入數(shù)據(jù)20091021采集到的圖象版面識(shí)別后的版面名稱以及OCR識(shí)別結(jié)果實(shí)際處理情況描述與流水進(jìn)行了相應(yīng)的勾對(duì)實(shí)際輸出大部分勾對(duì)成功,還有一些由于版面名稱以及OCR識(shí)別有誤導(dǎo)致勾對(duì)失敗測(cè)試結(jié)論正常單元測(cè)試子項(xiàng)004編號(hào)2.004 程序設(shè)計(jì)人員張海軍、王勇測(cè)試人員王勇、王品測(cè)試目的檢驗(yàn)題頭識(shí)別測(cè)試內(nèi)容描述對(duì)于沒有表格線條特征的版面,是否可以通過(guò)題頭識(shí)別來(lái)確定版面輸入期望無(wú)表格線條特征版面(具有題頭特征)題頭配置參數(shù)功能處理期望描述根據(jù)題頭配置參數(shù),程序調(diào)用SYDFormMatch.dll題頭識(shí)別接口,對(duì)圖像進(jìn)行識(shí)別輸出期望正確的版面名稱單元測(cè)試結(jié)果實(shí)際輸入數(shù)據(jù)20091021采集到的圖象實(shí)際處理
16、情況描述對(duì)于表格線條特征沒有識(shí)別出的圖像,進(jìn)入題頭識(shí)別功能,并調(diào)用SYDFormMatch.dll進(jìn)行題頭識(shí)別實(shí)際輸出大部分版面打印清晰的圖像,能夠通過(guò)題頭識(shí)別獲得版面類型測(cè)試結(jié)論正常單元測(cè)試子項(xiàng)005編號(hào)2.005 程序設(shè)計(jì)人員張海軍、王勇測(cè)試人員王勇、王品測(cè)試目的檢驗(yàn)線條顏色混淆識(shí)別測(cè)試內(nèi)容描述對(duì)于版面表格線條特征相似,顏色不同的版面進(jìn)行區(qū)分輸入期望線條顏色混淆配置易混淆圖像憑證功能處理期望描述調(diào)用SydClrDeal.dll,分析憑證圖像的顏色信息,根據(jù)線條顏色配置,獲取正確的版面名稱輸出期望正確的版面名稱單元測(cè)試結(jié)果實(shí)際輸入數(shù)據(jù)20091021采集到的圖象實(shí)際處理情況描述對(duì)于已經(jīng)配置易
17、混淆特征的影像,調(diào)用SysClrDeal.dll分析表格線條特征,并可以返回分析后的版面名稱實(shí)際輸出大部分配置正確的圖像,能夠通過(guò)顏色識(shí)別獲得版面類型測(cè)試結(jié)論正常2.3 流水導(dǎo)入單元測(cè)試計(jì)劃標(biāo)識(shí)CSBANKIPS.DataArchive.CMainFrame 組件功能項(xiàng)流水導(dǎo)入(下載流水、配置方案、流水導(dǎo)入)針對(duì)概要/詳細(xì)設(shè)計(jì)文件名稽核監(jiān)督及操作風(fēng)險(xiǎn)監(jiān)控系統(tǒng)項(xiàng)目概要設(shè)計(jì)說(shuō)明書V1.0.0物理文件名目錄:CSBANKIPSDataImport單元測(cè)試子項(xiàng)001編號(hào)3.001 程序設(shè)計(jì)人員陳時(shí)康測(cè)試人員王品測(cè)試目的下載流水文件測(cè)試內(nèi)容描述用設(shè)定的用戶連接FTP服務(wù)器,下載流水文件到本地指定目錄輸入
18、期望正確的用戶信息功能處理期望描述正確的用戶,成功登陸到FTP服務(wù)器,并下載流水文件輸出期望成功下載流水文件單元測(cè)試結(jié)果實(shí)際輸入數(shù)據(jù)FTP:52,user:csbank,password:cs實(shí)際處理情況描述成功連接到FTP服務(wù)器,顯示出服務(wù)器上的文件列表,選擇流水文件,成功下載到指定目錄實(shí)際輸出下載流水文件到指定目錄d:workflow測(cè)試結(jié)論正確單元測(cè)試子項(xiàng)002編號(hào)3.002 程序設(shè)計(jì)人員陳時(shí)康測(cè)試人員王品測(cè)試目的配置流水導(dǎo)入方案測(cè)試內(nèi)容描述針對(duì)建行流水?dāng)?shù)據(jù),配置導(dǎo)入方案輸入期望各種配置信息功能處理期望描述成功保存方案到數(shù)據(jù)庫(kù)中輸出期望保存方案成功單元測(cè)試結(jié)果實(shí)際輸入數(shù)據(jù)各種配置信息實(shí)際
19、處理情況描述按照向?qū)гO(shè)置各種配置信息實(shí)際輸出數(shù)據(jù)庫(kù)中成功保存配置方案測(cè)試結(jié)論正確編號(hào)3.003 程序設(shè)計(jì)人員陳時(shí)康測(cè)試人員王品測(cè)試目的導(dǎo)入流水測(cè)試內(nèi)容描述按照配置方案導(dǎo)入流水?dāng)?shù)據(jù)輸入期望流水文件與配置方案相符合功能處理期望描述導(dǎo)入的流水達(dá)到配置方案的要求輸出期望流水導(dǎo)入正確單元測(cè)試結(jié)果實(shí)際輸入數(shù)據(jù)選擇流水文件、導(dǎo)入方案實(shí)際處理情況描述按照導(dǎo)入方案將流水?dāng)?shù)據(jù)導(dǎo)入到數(shù)據(jù)庫(kù)中實(shí)際輸出流水?dāng)?shù)據(jù)導(dǎo)入達(dá)到預(yù)期期望測(cè)試結(jié)論正確2.4 人工處理單元測(cè)試計(jì)劃標(biāo)識(shí)MaualProcess.CmainFrame組件功能項(xiàng)完成主要主框架,人工處理主程序針對(duì)概要/詳細(xì)設(shè)計(jì)文件名稽核監(jiān)督及操作風(fēng)險(xiǎn)監(jiān)控系統(tǒng)項(xiàng)目概要設(shè)計(jì)說(shuō)明
20、書V1.0.0物理文件名MainFrm.cppMainFrm.h編號(hào)4.001 程序設(shè)計(jì)人員王勇 測(cè)試人員王勇、王品測(cè)試目的檢查差錯(cuò)處理函數(shù)是否正確調(diào)用差錯(cuò)處理子系統(tǒng),并保存差錯(cuò)信息測(cè)試內(nèi)容描述當(dāng)程序界面選中差錯(cuò)圖像時(shí),點(diǎn)擊差錯(cuò)菜單,則調(diào)用OnCheckinerror()函數(shù)。系統(tǒng)進(jìn)入該函數(shù),并判斷,當(dāng)前是否選中差錯(cuò)圖像,如果選中,則調(diào)用WriteError()函數(shù),進(jìn)入差錯(cuò)登記流程,否則退出。輸入期望選擇圖像,點(diǎn)擊菜單響應(yīng)該函數(shù)功能處理期望描述可以進(jìn)入差錯(cuò)登記流程,并正確登記差錯(cuò)輸出期望差錯(cuò)處理成功單元測(cè)試結(jié)果實(shí)際輸入數(shù)據(jù)沒有選擇圖像,直接點(diǎn)擊菜單響應(yīng)該函數(shù)實(shí)際處理情況描述當(dāng)程序界面選中差錯(cuò)
21、圖像時(shí),點(diǎn)擊差錯(cuò)菜單,則調(diào)用OnCheckinerror()函數(shù)。系統(tǒng)進(jìn)入該函數(shù),同時(shí)判斷,當(dāng)前沒有差錯(cuò)圖像(或差錯(cuò)流水),則直接退出。當(dāng)程序界面選中差錯(cuò)流水時(shí),點(diǎn)擊差錯(cuò)菜單,則調(diào)用OnCheckinerror()函數(shù)。系統(tǒng)執(zhí)行該函數(shù),同時(shí)判斷,當(dāng)前沒有差錯(cuò)流水(或差錯(cuò)圖像),則直接退出。實(shí)際輸出根據(jù)差錯(cuò)類型進(jìn)入不同差錯(cuò)登記流程測(cè)試結(jié)論正常編號(hào)4.002程序設(shè)計(jì)人員王勇 測(cè)試人員王勇、王品測(cè)試目的檢查主附件調(diào)整是否正常測(cè)試內(nèi)容描述調(diào)用AdjustPSLevel(int nIndex, int nPSLevel, CString strOtherInfo=”)函數(shù),輸入?yún)?shù)序號(hào)、主附件標(biāo)志、其他
22、信息后,憑證被調(diào)整為主件、電子憑證、附件、一般附件。首先判斷該張圖像是否被刪除,如果是,則退出,返回-1,再判斷該圖像是否為背面,如果時(shí),則退出,返回-1。然后調(diào)整主附件關(guān)系,將該憑證設(shè)置為相應(yīng)的主附件。輸入期望NIndex=0,nPSLevel=9,strOtherInfo=”功能處理期望描述第一張憑證被設(shè)置為電子憑證輸出期望1單元測(cè)試結(jié)果實(shí)際輸入數(shù)據(jù)NIndex=0,nPSLevel=1,strOtherInfo=”實(shí)際處理情況描述首先判斷該張圖像沒有被刪除,再判斷該圖像不是背面。然后調(diào)整主附件關(guān)系,將該憑證調(diào)節(jié)為主件,并返回1。實(shí)際輸出1測(cè)試結(jié)論正常單元測(cè)試結(jié)果實(shí)際輸入數(shù)據(jù)NIndex=
23、1,nPSLevel=1,strOtherInfo=”實(shí)際處理情況描述首先判斷該張圖像沒有被刪除,然后判斷該圖像是背面。直接返回-1實(shí)際輸出-1測(cè)試結(jié)論正常編號(hào)4.003程序設(shè)計(jì)人員王勇 測(cè)試人員王勇、王品測(cè)試目的從數(shù)據(jù)庫(kù)讀取圖像文件的索引信息,并從文件服務(wù)中取臨時(shí)圖像文件測(cè)試內(nèi)容描述調(diào)用GetImageTempFile(CDSDatabase * pDb, CString strTableName, CString strSerialNo,CString strBatchId, CString& strFileName, BOOL bFlag)傳入相應(yīng)的數(shù)據(jù)庫(kù)指針,表名,圖像序列號(hào),批次號(hào),
24、文件名信息,能夠?qū)D像保存至strFileName文件中輸入期望PDb傳入業(yè)務(wù)庫(kù)指針,strTableName傳入批次表名,strSerialNo傳入圖像序號(hào)StrBatchId輸入存在于表中的批次,strFileName=”C:CS_IMG.JPG”功能處理期望描述能夠輸出圖像至文件”C:CS_IMG.JPG”輸出期望1單元測(cè)試結(jié)果實(shí)際輸入數(shù)據(jù)PDb=pBusiDB,strTableName=”bp_tmpbatch_tb”,strSerialNo=“43234StrBatchId=“20091103345032”,strFileName=”C:CS_IMG.JPG”實(shí)際處理情況描述從表中讀
25、取憑證的序列號(hào)43234的圖像信息,連接文件服務(wù),將得到的信息提交給文件服務(wù),文件服務(wù)提取該圖像文件,并另存至”C:CS_IMG.JPG”實(shí)際輸出1測(cè)試結(jié)論正常單元測(cè)試計(jì)劃標(biāo)識(shí)MaualProcess.ZyFunction組件功能項(xiàng)完成人工處理用到的公用函數(shù)針對(duì)概要/詳細(xì)設(shè)計(jì)文件名稽核監(jiān)督及操作風(fēng)險(xiǎn)監(jiān)控系統(tǒng)項(xiàng)目概要設(shè)計(jì)說(shuō)明書V1.0.0物理文件名ZyFunction.cppZyFunction.h編號(hào)4.004程序設(shè)計(jì)人員王勇 測(cè)試人員王勇、王品測(cè)試目的測(cè)試人工處理程序?qū)懳募罩臼欠裾y(cè)試內(nèi)容描述調(diào)用WriteLogFile(CString strMsg,CString strLogPath
26、)函數(shù)將打開文件strLogPath,并將信息strMsg寫入該文件,標(biāo)志時(shí)間信息最后關(guān)閉該文件。如果無(wú)法打開文件,則返回-1輸入期望strMsg=”CS_TEST”,strLogPath=”C:CS_TEST.log”功能處理期望描述能夠在文件”C:CS_TEST.log”中輸入文件”CS_TEST”輸出期望1單元測(cè)試結(jié)果實(shí)際輸入數(shù)據(jù)strMsg=”CS_TEST”,strLogPath=”CSBANKCS_TEST.log”實(shí)際處理情況描述由于共享網(wǎng)絡(luò)路徑CSBANK斷開著文件系統(tǒng)無(wú)法打開該網(wǎng)絡(luò)路徑下CSBANKCS_TEST.log文件則直接返回錯(cuò)誤-1實(shí)際輸出-1測(cè)試結(jié)論正常2.5 主
27、附件核對(duì)單元測(cè)試計(jì)劃標(biāo)識(shí)CSBANKIPS.PSubPrimary.CMainFrame 組件功能項(xiàng)主附件核對(duì)(主附件判斷、重點(diǎn)監(jiān)督判斷)針對(duì)概要/詳細(xì)設(shè)計(jì)文件名稽核監(jiān)督及操作風(fēng)險(xiǎn)監(jiān)控系統(tǒng)項(xiàng)目概要設(shè)計(jì)說(shuō)明書V1.0.0物理文件名目錄:CSBANKpsub單元測(cè)試子項(xiàng)001編號(hào)5.001 程序設(shè)計(jì)人員陳時(shí)康、王勇測(cè)試人員王勇、王品測(cè)試目的主附件判斷測(cè)試內(nèi)容描述按照預(yù)定義的規(guī)則以及配置的主附件判斷條件表判斷圖像的主附件關(guān)系輸入期望無(wú)功能處理期望描述正確判斷圖像的主附件關(guān)系輸出期望正確判斷圖像的主附件關(guān)系單元測(cè)試結(jié)果實(shí)際輸入數(shù)據(jù)無(wú)實(shí)際處理情況描述成功進(jìn)行主附件關(guān)系判斷實(shí)際輸出主附件關(guān)系判斷結(jié)果正確測(cè)
28、試結(jié)論正確單元測(cè)試子項(xiàng)002編號(hào)5.002 程序設(shè)計(jì)人員陳時(shí)康、王勇測(cè)試人員王勇、王品測(cè)試目的重點(diǎn)監(jiān)督判斷測(cè)試內(nèi)容描述按照配置的重點(diǎn)監(jiān)督業(yè)務(wù)表判斷圖像是否需要重點(diǎn)監(jiān)督輸入期望無(wú)功能處理期望描述按照配置的重點(diǎn)監(jiān)督業(yè)務(wù)表判斷圖像是否需要重點(diǎn)監(jiān)督輸出期望重點(diǎn)監(jiān)督標(biāo)志設(shè)置正確單元測(cè)試結(jié)果實(shí)際輸入數(shù)據(jù)無(wú)實(shí)際處理情況描述成功判斷圖像是否需要重點(diǎn)監(jiān)督實(shí)際輸出重點(diǎn)監(jiān)督標(biāo)志設(shè)置正確測(cè)試結(jié)論正確2.6 差錯(cuò)處理單元測(cè)試計(jì)劃標(biāo)識(shí)差錯(cuò)登記. ErrorSheetBras組件功能項(xiàng)本模塊負(fù)責(zé)驗(yàn)證C/S差錯(cuò)登記接口針對(duì)概要/詳細(xì)設(shè)計(jì)文件名稽核監(jiān)督及操作風(fēng)險(xiǎn)監(jiān)控系統(tǒng)項(xiàng)目概要設(shè)計(jì)說(shuō)明書V1.0.0物理文件名ErrorBook
29、InDlg.h ErrorSheetBras.hErrorBookInDlg.cpp ErrorSheetBras.cpp單元測(cè)試子項(xiàng)001 編號(hào)6.001 程序設(shè)計(jì)人員王勇測(cè)試人員王勇測(cè)試目的檢驗(yàn)圖像差錯(cuò)登記測(cè)試內(nèi)容描述輸入差錯(cuò)的類型、發(fā)生日期、機(jī)構(gòu)號(hào)、柜員號(hào)及狀態(tài)等信息,要求能夠正確顯示在差錯(cuò)登記界面,并可以成功登記入差錯(cuò)表中輸入期望通過(guò)結(jié)構(gòu)體ERRORSTRUCT傳入業(yè)務(wù)日期、發(fā)生機(jī)構(gòu)、發(fā)生柜員等信息功能處理期望描述通過(guò)接口輸入的差錯(cuò)類型、業(yè)務(wù)日期等信息可以正確地反映在差錯(cuò)登記頁(yè)面上,同時(shí)可以輸入補(bǔ)充信息,在開始登記時(shí),將所有信息寫入差錯(cuò)表中輸出期望登記差錯(cuò)成功標(biāo)志單元測(cè)試結(jié)果實(shí)際輸入數(shù)
30、據(jù)差錯(cuò)類型:影像系統(tǒng)發(fā)生日期:=20091111 and =20091107 and =20091109 and occur_date 0,則返回true輸入期望dwPageID=1001000功能處理期望描述能夠正確判斷,該模板是否已經(jīng)獲得版面特征信息輸出期望True單元測(cè)試結(jié)果實(shí)際輸入數(shù)據(jù)dwPageID=1001000實(shí)際處理情況描述根據(jù)傳入的模板ID1001000,查詢到該版面的版面類型,并返回成功實(shí)際輸出true測(cè)試結(jié)論正常單元測(cè)試計(jì)劃標(biāo)識(shí)FormStudioDT.CFormStudioDTView組件功能項(xiàng)設(shè)置浮動(dòng)區(qū)域針對(duì)概要/詳細(xì)設(shè)計(jì)文件名稽核監(jiān)督及操作風(fēng)險(xiǎn)監(jiān)控系統(tǒng)項(xiàng)目概要設(shè)計(jì)說(shuō)
31、明書V1.0.0物理文件名FloatField.cppFloatField.h編號(hào)10.003程序設(shè)計(jì)人員王勇 測(cè)試人員王勇、王品測(cè)試目的測(cè)試當(dāng)前鼠標(biāo)是否在浮動(dòng)區(qū)域上劃過(guò)測(cè)試內(nèi)容描述調(diào)用PointOverFloatField(CPoint pt)pt為當(dāng)前鼠標(biāo)的點(diǎn)(屏幕坐標(biāo))輸入期望鼠標(biāo)劃過(guò)界面的動(dòng)作,不經(jīng)過(guò)浮動(dòng)區(qū)域功能處理期望描述首先獲得圖像的偏移位置,求得鼠標(biāo)相對(duì)于圖像的相對(duì)位置,然后調(diào)用IsPointInRect(pt,rc),判斷該點(diǎn)是否在浮動(dòng)區(qū)域矩形范圍內(nèi),如果在,則返回true,否則返回false輸出期望false單元測(cè)試結(jié)果實(shí)際輸入數(shù)據(jù)鼠標(biāo)劃過(guò)界面的動(dòng)作,不經(jīng)過(guò)浮動(dòng)區(qū)域?qū)嶋H處理情
32、況描述首先獲得圖像的偏移位置,求得鼠標(biāo)相對(duì)于圖像的相對(duì)位置,然后調(diào)用IsPointInRect(pt,rc),判斷該點(diǎn)不在浮動(dòng)區(qū)域矩形范圍內(nèi),則返回false實(shí)際輸出false測(cè)試結(jié)論正常單元測(cè)試結(jié)果實(shí)際輸入數(shù)據(jù)鼠標(biāo)劃過(guò)界面的動(dòng)作,經(jīng)過(guò)浮動(dòng)區(qū)域?qū)嶋H處理情況描述首先獲得圖像的偏移位置,求得鼠標(biāo)相對(duì)于圖像的相對(duì)位置,然后調(diào)用IsPointInRect(pt,rc),判斷該點(diǎn)在浮動(dòng)區(qū)域矩形范圍內(nèi),則返回true實(shí)際輸出true測(cè)試結(jié)論正常2.11 系統(tǒng)配置單元測(cè)試計(jì)劃標(biāo)識(shí)CSBANKIPS.DataArchive.CMainFrame 組件功能項(xiàng)系統(tǒng)配置(數(shù)據(jù)庫(kù)初始化、系統(tǒng)參數(shù)配置)針對(duì)概要/詳細(xì)設(shè)
33、計(jì)文件名稽核監(jiān)督及操作風(fēng)險(xiǎn)監(jiān)控系統(tǒng)項(xiàng)目概要設(shè)計(jì)說(shuō)明書V1.0.0物理文件名目錄:CSBANKIPSsunsysconfigue單元測(cè)試子項(xiàng)001編號(hào)11.001 程序設(shè)計(jì)人員陳時(shí)康測(cè)試人員王品測(cè)試目的數(shù)據(jù)庫(kù)初始化測(cè)試內(nèi)容描述完成系統(tǒng)初始化的系列操作,包括創(chuàng)建各個(gè)數(shù)據(jù)庫(kù)、數(shù)據(jù)表,導(dǎo)入初始化的數(shù)據(jù)輸入期望腳本正確功能處理期望描述成功創(chuàng)建數(shù)據(jù)庫(kù)、數(shù)據(jù)表,初始化數(shù)據(jù)輸出期望成功創(chuàng)建數(shù)據(jù)庫(kù)、數(shù)據(jù)表,初始化數(shù)據(jù)單元測(cè)試結(jié)果實(shí)際輸入數(shù)據(jù)正確的腳本實(shí)際處理情況描述數(shù)據(jù)庫(kù)、數(shù)據(jù)表順利創(chuàng)建,初始化數(shù)據(jù)導(dǎo)入成功實(shí)際輸出數(shù)據(jù)庫(kù)初始化成功測(cè)試結(jié)論正確單元測(cè)試子項(xiàng)002編號(hào)11.002 程序設(shè)計(jì)人員陳時(shí)康測(cè)試人員王品測(cè)試
34、目的系統(tǒng)參數(shù)配置測(cè)試內(nèi)容描述配置各種系統(tǒng)參數(shù)輸入期望正確的參數(shù)信息功能處理期望描述方便輸入?yún)?shù)信息,并成功保存參數(shù)信息到數(shù)據(jù)庫(kù)中輸出期望保存參數(shù)信息成功單元測(cè)試結(jié)果實(shí)際輸入數(shù)據(jù)正確的參數(shù)信息:data_flag,12,重控子系統(tǒng)實(shí)際處理情況描述在字典表中插入記錄,輸入上述參數(shù)信息,保存到數(shù)據(jù)庫(kù)中實(shí)際輸出成功保存信息測(cè)試結(jié)論正確3分析摘要本項(xiàng)目的單元測(cè)試基本以每一個(gè)系統(tǒng)程序開發(fā)人員為單位,在以單元測(cè)試計(jì)劃的文檔指導(dǎo)下,文檔所提及的測(cè)試范圍以及測(cè)試需求都得到比較好的貫徹。同樣,由于把單元測(cè)試分散在每個(gè)程序員的開發(fā)編碼過(guò)程中,有利于提高代碼的質(zhì)量,減少了代碼中可能存在錯(cuò)誤隱患。每個(gè)程序員對(duì)自己開發(fā)的
35、代碼是最熟悉的,所以通過(guò)這種自己開發(fā),自己測(cè)試的方式,可以養(yǎng)成程序員良好的編碼習(xí)慣。綜上所述,這次項(xiàng)目的單元測(cè)試滿足了項(xiàng)目對(duì)軟件質(zhì)量的要求,并且已經(jīng)可以進(jìn)行下一階段系統(tǒng)、集成測(cè)試。4測(cè)試資源消耗(無(wú))附錄資料:不需要的可以自行刪除 busybox詳解制作根文件系統(tǒng)詳解制作根文件系統(tǒng) 一、FHS(Filesystem Hierarchy Standard)標(biāo)準(zhǔn)介紹當(dāng)我們?cè)趌inux下輸入ls / 的時(shí)候,見到的目錄結(jié)構(gòu)以及這些目錄下的內(nèi)容都大同小異,這是因?yàn)樗械膌inux發(fā)行版在對(duì)根文件系統(tǒng)布局上都遵循FHS標(biāo)準(zhǔn)的建議規(guī)定。該標(biāo)準(zhǔn)規(guī)定了根目錄下各個(gè)子目錄的名稱及其存放的內(nèi)容:目錄名存放的內(nèi)容/
36、bin必備的用戶命令,例如ls、cp等/sbin必備的系統(tǒng)管理員命令,例如ifconfig、reboot等/dev設(shè)備文件,例如mtdblock0、tty1等/etc系統(tǒng)配置文件,包括啟動(dòng)文件,例如inittab等/lib必要的鏈接庫(kù),例如C鏈接庫(kù)、內(nèi)核模塊/home普通用戶主目錄/rootroot用戶主目錄/usr/bin非必備的用戶程序,例如find、du等/usr/sbin非必備的管理員程序,例如chroot、inetd等/usr/lib庫(kù)文件/var守護(hù)程序和工具程序所存放的可變,例如日志文件/proc用來(lái)提供內(nèi)核與進(jìn)程信息的虛擬文件系統(tǒng),由內(nèi)核自動(dòng)生成目錄下的內(nèi)容/sys用來(lái)提供內(nèi)核
37、與設(shè)備信息的虛擬文件系統(tǒng),由內(nèi)核自動(dòng)生成目錄下的內(nèi)容/mnt文件系統(tǒng)掛接點(diǎn),用于臨時(shí)安裝文件系統(tǒng)/tmp臨時(shí)性的文件,重啟后將自動(dòng)清除制作根文件系統(tǒng)就是要建立以上的目錄,并在其中建立完整目錄內(nèi)容。其過(guò)程大體包括:編譯安裝busybox,生成/bin、/sbin、/usr/bin、/usr/sbin目錄 利用交叉編譯工具鏈,構(gòu)建/lib目錄 手工構(gòu)建/etc目錄 手工構(gòu)建最簡(jiǎn)化的/dev目錄 創(chuàng)建其它空目錄 配置系統(tǒng)自動(dòng)生成/proc目錄 利用udev構(gòu)建完整的/dev目錄 制作根文件系統(tǒng)的jffs2映像文件 下面就來(lái)詳細(xì)介紹這個(gè)過(guò)程。二、編譯安裝busybox,生成/bin、/sbin、/us
38、r/bin、/usr/sbin目錄這些目錄下存儲(chǔ)的主要是常用命令的二進(jìn)制文件。如果要自己編寫這幾百個(gè)常用命令的源程序,my god, 這簡(jiǎn)直是一個(gè)噩夢(mèng)!好在我們有嵌入式Linux系統(tǒng)的瑞士軍刀busybox,事情就簡(jiǎn)單很多。1、從 HYPERLINK / / 下載busybox-1.7.0.tar.bz22、tar xjvf busybox-1.7.0.tar.bz2解包3、修改Makefile文件175 ARCH ?= arm176 CROSS_COMPILE ?= arm-linux- 4、make menuconfig配置busyboxbusybox配置主要分兩部分。第一部分是Busyb
39、ox Settings,主要編譯和安裝busybox的一些選項(xiàng)。這里主要需要配置:1)、Build Options - Build BusyBox as a static binary (no shared libs),表示編譯busybox時(shí),是否靜態(tài)鏈接C庫(kù)。我們選擇動(dòng)態(tài)鏈接C庫(kù)。2)、Installation Options - Applets links (as soft-links) - (X) as soft-links,表示安裝busybox時(shí),將各個(gè)命令安裝為指向busybox的軟鏈接還是硬鏈接。我們選擇軟鏈接。3)、Installation Options - (/work/
40、nfs_root/fs_mini3) BusyBox installation prefix,表示busybox的安裝位置。我們選擇/work/nfs_root/fs_mini34)Busybox Library Tuning。保留Command line editing以支持命令行編輯;保留History size以支持記憶歷史命令;選中Tab completion和Username completion以支持命令自動(dòng)補(bǔ)全 第二部分是Applets,他將busybox的支持的幾百個(gè)命令分門別類。我們只要在各個(gè)門類下選擇想要的命令即可。這里我們基本保持默認(rèn)設(shè)置。1)選中Networking U
41、tilities - httpd下的Enable -u option,以啟用http服務(wù)器的功能allows the server to run as a specific user5、編譯busyboxmake6、安裝busyboxmake install安裝完成后,可以看到在/work/nfs_root/fs_mini3目錄下生成了binsbinusr/binusr/sbin目錄,其下包含了我們常用的命令,這些命令都是指向bin/busybox的軟鏈接,而busybox本身的大小不到800K:dennisdennis-desktop:/work/nfs_root/fs_mini3$ lsb
42、in linuxrc sbin usrdennisdennis-desktop:/work/nfs_root/fs_mini3$ ls -l bintotal 740lrwxrwxrwx 1 dennis dennis 7 2010-04-03 23:57 addgroup - busyboxlrwxrwxrwx 1 dennis dennis 7 2010-04-03 23:57 adduser - busyboxlrwxrwxrwx 1 dennis dennis 7 2010-04-03 23:57 ash - busybox-rwxr-xr-x 1 dennis dennis 7496
43、32 2010-04-03 23:57 busyboxlrwxrwxrwx 1 dennis dennis 7 2010-04-03 23:57 cat busybox 而普通PC機(jī)上的ls命令就有差不多80K的大小: dennisdennis-desktop:/work/nfs_root/fs_mini3$ ls -l /bin/ls-rwxr-xr-x 1 root root 78004 2007-09-29 20:51 /bin/ls busybox以它嬌小的身軀容納了數(shù)以百計(jì)的命令代碼,實(shí)在是讓人佩服不已,其不愧嵌入式系統(tǒng)瑞士軍刀之美譽(yù)。據(jù)說(shuō),busybox的作者身患絕癥,這更讓人欽佩
44、GNU開源軟件的作者們。 三、利用交叉編譯工具鏈,構(gòu)建/lib目錄 光有應(yīng)用程序(命令)是不夠的,因?yàn)閼?yīng)用程序本身需要使用C庫(kù)的庫(kù)函數(shù),因此還必需制作for ARM的C庫(kù),并將其放置于/lib目錄。my god,要自己寫C庫(kù)的源代碼嗎?不用!還記得交叉編譯工具鏈的3個(gè)組成部分嗎?交叉編譯器、for ARM的C庫(kù)和二進(jìn)制工具。哈哈,for ARM的C庫(kù)是現(xiàn)成的,我們只需要拷貝過(guò)來(lái)就可以了。遺憾的是:整個(gè)C庫(kù)目錄下的文件總大小有26M。而我們根文件系統(tǒng)所在分區(qū)不過(guò)區(qū)區(qū)16M而已,根本放不下。怎么辦呢? dennisdennis-desktop:/work/nfs_root/fs_mini3$ du
45、 -s -si /work/tools/gcc-3.4.5-glibc-2.3.6/arm-linux/lib26M /work/tools/gcc-3.4.5-glibc-2.3.6/arm-linux/lib 需要C庫(kù)目錄下所有的文件嗎?no,absolutely no! 讓我們來(lái)分析一下glibc庫(kù)目錄下內(nèi)容的組成。該目錄下的子目錄和文件共分8類: 目標(biāo)文件,如crtn.o,用于gcc鏈接可執(zhí)行文件 libtool庫(kù)文件(.la),在鏈接庫(kù)文件時(shí)這些文件會(huì)被用到,比如他們列出了當(dāng)前庫(kù)文件所依賴的其它庫(kù)文件,程序運(yùn)行時(shí)無(wú)需這些文件 gconv目錄,里面是各種鏈接腳本,在編譯應(yīng)用程序時(shí),他們
46、用于指定程序的運(yùn)行地址,各段的位置等 靜態(tài)庫(kù)文件(.a),例如libm.a,libc.a 動(dòng)態(tài)庫(kù)文件 (.so、.so.0-9*) 動(dòng)態(tài)鏈接庫(kù)加載器ld-2.3.6.so、ld-linux.so.2 其它目錄及文件很顯然,第1、2、3、4、7類文件和目錄是不需要拷貝的。由于動(dòng)態(tài)鏈接的應(yīng)用程序本身并不含有它所調(diào)用的C庫(kù)函數(shù)的代碼,因此執(zhí)行時(shí)需要?jiǎng)討B(tài)鏈接庫(kù)加載器來(lái)為它加載相應(yīng)的C庫(kù)文件,所以第6類文件是需要拷貝的。除此之外,第5類文件當(dāng)然要拷貝。但第5類文件的大小也相當(dāng)大。dennisdennis-desktop:/work/tools/gcc-3.4.5-glibc-2.3.6/arm-linu
47、x/lib$ du -c -si *.so* 7.2M total 需要全部拷貝嗎?非也,非也!其實(shí),需要哪些庫(kù)完全取決于要運(yùn)行的應(yīng)用程序使用了哪些庫(kù)函數(shù)。如果我們只制作最簡(jiǎn)單的系統(tǒng),那么我們只需要運(yùn)行busybox這一個(gè)應(yīng)用程序即可。通過(guò)執(zhí)行 dennisdennis-desktop:/work/nfs_root/fs_mini3$ arm-linux-readelf -a bin/busybox | grep Shared0 x00000001 (NEEDED) Shared library: libcrypt.so.10 x00000001 (NEEDED) Shared library
48、: libm.so.60 x00000001 (NEEDED) Shared library: libc.so.6 可知:busybox只用到了3個(gè)庫(kù):通用C庫(kù)(libc)、數(shù)學(xué)庫(kù)(libm)、加密庫(kù)(libcrypt),因此我們只需要拷貝這3個(gè)庫(kù)的庫(kù)文件即可。但是每個(gè)庫(kù)都有4個(gè)文件,4個(gè)文件都要拷貝嗎?當(dāng)然不是。 dennisdennis-desktop:/work/tools/gcc-3.4.5-glibc-2.3.6/arm-linux/lib$ ls -l libcrypt.-*-rwxr-xr-x 1 dennis dennis 30700 2008-01-22 05:32 libc
49、rypt-2.3.6.so-rw-r-r- 1 dennis dennis 23118 2008-01-22 05:32 libcrypt.alrwxrwxrwx 1 dennis dennis 13 2008-12-22 15:38 libcrypt.so - libcrypt.so.1lrwxrwxrwx 1 dennis dennis 17 2008-12-22 15:38 libcrypt.so.1 - libcrypt-2.3.6.sodennisdennis-desktop:/work/tools/gcc-3.4.5-glibc-2.3.6/arm-linux/lib$ ls -l
50、 libm.-*-rwxr-xr-x 1 dennis dennis 779096 2008-01-22 05:31 libm-2.3.6.so-rw-r-r- 1 dennis dennis 1134282 2008-01-22 05:32 libm.alrwxrwxrwx 1 dennis dennis 9 2008-12-22 15:38 libm.so - libm.so.6lrwxrwxrwx 1 dennis dennis 13 2008-12-22 15:38 libm.so.6 - libm-2.3.6.sodennisdennis-desktop:/work/tools/gc
51、c-3.4.5-glibc-2.3.6/arm-linux/lib$ ls -l libc.-*-rwxr-xr-x 1 dennis dennis 1435660 2008-01-22 05:48 libc-2.3.6.so-rw-r-r- 1 dennis dennis 2768280 2008-01-22 05:31 libc.a-rw-r-r- 1 dennis dennis 195 2008-01-22 05:34 libc.solrwxrwxrwx 1 dennis dennis 13 2008-12-22 15:38 libc.so.6 - libc-2.3.6.so 4個(gè)文件中
52、的.a文件是靜態(tài)庫(kù)文件,是不需要拷貝的。另外3個(gè)文件是: 實(shí)際的共享鏈接庫(kù):libLIBRARY_NAME-GLIBC_VERSION.so。當(dāng)然需要拷貝。 主修訂版本的符號(hào)鏈接,指向?qū)嶋H的共享鏈接庫(kù):libLIBRARY_NAME.so.MAJOR_REVISION_VERSION,程序一旦鏈接了特定的鏈接庫(kù),將會(huì)參用該符號(hào)鏈接。程序啟動(dòng)時(shí),加載器在加載程序前,會(huì)檢索該文件。所以需要拷貝。 與版本無(wú)關(guān)的符號(hào)鏈接,指向主修訂版本的符號(hào)連接(libc.so是唯一的例外,他是一個(gè)鏈接命令行:libLIBRARY_NAME.so,是為編譯程序時(shí)提供一個(gè)通用條目)。這些文件在程序被編譯時(shí)會(huì)被用到,但在
53、程序運(yùn)行時(shí)不會(huì)被用到,所以不必拷貝它。關(guān)于共享庫(kù)的2個(gè)符號(hào)鏈接的作用的特別說(shuō)明:當(dāng)我們使用gcc hello.c -o hello -lm編譯程序時(shí),gcc會(huì)根據(jù)-lm的指示,加頭(lib)添尾(.so)得到libm.so,從而沿著與版本無(wú)關(guān)的符號(hào)鏈接(libm.so - libm.so.6)找到libm.so.6并記錄在案(hello的ELF頭中),表示hello需要使用libm.so.6這個(gè)庫(kù)文件所代表的數(shù)學(xué)庫(kù)中的庫(kù)函數(shù)。而當(dāng)hello被執(zhí)行的時(shí)候,動(dòng)態(tài)鏈接庫(kù)加載器會(huì)從hello的ELF頭中找到libm.so.6這個(gè)記錄,然后沿著主修訂版本的符號(hào)鏈接(libm.so.6 - libm-2.
54、3.6.so)找到實(shí)際的共享鏈接庫(kù)libm-2.3.6.so,從而將其與hello作動(dòng)態(tài)鏈接??梢?,與版本無(wú)關(guān)的符號(hào)鏈接是供編譯器使用的,主修訂版本的符號(hào)鏈接是供動(dòng)態(tài)鏈接庫(kù)加載器使用的,而實(shí)際的共享鏈接庫(kù)則是供應(yīng)用程序使用的。通過(guò)以上分析,我們只需要拷貝3個(gè)庫(kù)(每個(gè)庫(kù)各1個(gè)主修訂版本的符號(hào)鏈接和1個(gè)實(shí)際的共享鏈接庫(kù))以及動(dòng)態(tài)鏈接庫(kù)加載器(1個(gè)符號(hào)鏈接和1個(gè)實(shí)體文件)。步驟如下:dennisdennis-desktop:/work/tools/gcc-3.4.5-glibc-2.3.6/arm-linux/lib$ mkdir /work/nfs_root/fs_mini3/lib dennis
55、dennis-desktop:/work/tools/gcc-3.4.5-glibc-2.3.6/arm-linux/lib$ cp libcrypt-* /work/nfs_root/fs_mini3/libdennisdennis-desktop:/work/tools/gcc-3.4.5-glibc-2.3.6/arm-linux/lib$ cp -l libcrypt.so.* /work/nfs_root/fs_mini3/libdennisdennis-desktop:/work/tools/gcc-3.4.5-glibc-2.3.6/arm-linux/lib$ cp libm-
56、* /work/nfs_root/fs_mini3/libdennisdennis-desktop:/work/tools/gcc-3.4.5-glibc-2.3.6/arm-linux/lib$ cp -l libm.so.* /work/nfs_root/fs_mini3/libdennisdennis-desktop:/work/tools/gcc-3.4.5-glibc-2.3.6/arm-linux/lib$ cp libc-* /work/nfs_root/fs_mini3/libdennisdennis-desktop:/work/tools/gcc-3.4.5-glibc-2.
57、3.6/arm-linux/lib$ cp -l libc.so.* /work/nfs_root/fs_mini3/lib dennisdennis-desktop:/work/tools/gcc-3.4.5-glibc-2.3.6/arm-linux/lib$ cp -l ld-* /work/nfs_root/fs_mini3/lib 四、手工構(gòu)建/etc目錄 /etc目錄存放的是系統(tǒng)程序的主配置文件,因此需要哪些配置文件取決于要運(yùn)行哪些系統(tǒng)程序。即使最小的系統(tǒng)也一定會(huì)運(yùn)行1號(hào)用戶進(jìn)程init,所以我們至少要手工編寫init的主配置文件inittab。busybox的inittab文件的
58、語(yǔ)法、語(yǔ)義與傳統(tǒng)的SYSV的inittab有所不同。 inittab文件中每個(gè)條目用來(lái)定義一個(gè)需要init啟動(dòng)的子進(jìn)程,并確定它的啟動(dòng)方式,格式為:。例如:ttySAC0:askfirst:-/bin/sh 表示子進(jìn)程要使用的控制臺(tái),若省略則使用與init進(jìn)程一樣的控制臺(tái) 表示運(yùn)行級(jí)別,busybox init程序這個(gè)字段沒有意義 表示init進(jìn)程如何控制這個(gè)子進(jìn)程 sysinit:系統(tǒng)啟動(dòng)后最先執(zhí)行,只執(zhí)行一次,init進(jìn)程等待它結(jié)束后才繼續(xù)執(zhí)行其它動(dòng)作 wait:系統(tǒng)執(zhí)行完sysinit條目后執(zhí)行,只執(zhí)行一次,init進(jìn)程等待它結(jié)束后才繼續(xù)執(zhí)行其它動(dòng)作 once:系統(tǒng)執(zhí)行完wait條目后執(zhí)
59、行,只執(zhí)行一次,init進(jìn)程不等待它結(jié)束 respawn:?jiǎn)?dòng)完once進(jìn)程后,init進(jìn)程監(jiān)測(cè)發(fā)現(xiàn)子進(jìn)程退出時(shí),重新啟動(dòng)它 askfirst:?jiǎn)?dòng)完respawn進(jìn)程后,與respawn類似,不過(guò)init進(jìn)程先輸出” Please press Enter to activate this console“,等用戶輸入回車后才啟動(dòng)子進(jìn)程 shutdown:當(dāng)系統(tǒng)關(guān)機(jī)時(shí) restart:Busybox中配置了CONFIG_FEATURE_USE_INITAB,并且init進(jìn)程接收到SIGUP信號(hào)時(shí)執(zhí)行,先重新讀取、解析/etc/inittab文件,再執(zhí)行restart程序 ctrlaltdel:
60、按下ctrl+alt+del鍵時(shí)執(zhí)行,不過(guò)在串口控制臺(tái)中無(wú)法輸入它 表示進(jìn)程對(duì)應(yīng)的二進(jìn)制文件。如果前面有-號(hào),表示該程序是“可以與用戶進(jìn)行交互的”我們制作最簡(jiǎn)單的/etc/inittab文件,其內(nèi)容如下::sysinit:/etc/init.d/rcS:askfirst:-/bin/sh:ctrlaltdel:/sbin/reboot:shutdown:/bin/umount -a r 制作最簡(jiǎn)單的腳本程序文件/etc/init.d/rcS,其內(nèi)容如下: #!/bin/shifconfig eth0 7修改shell腳本文件/etc/init.d/rcS的權(quán)限,以使其可被執(zhí)行:# chmod
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五農(nóng)行個(gè)人貸款抵押合同資產(chǎn)保全操作流程
- 2025年度綠色建筑項(xiàng)目融資及還款合同3篇
- 二零二五年度農(nóng)村土地流轉(zhuǎn)農(nóng)民公寓產(chǎn)權(quán)登記合同
- 2025年度美術(shù)作品版權(quán)授權(quán)與收益分成合同
- 2025個(gè)人信用卡透支額度調(diào)整合同補(bǔ)充協(xié)議3篇
- 二零二五年度城鄉(xiāng)規(guī)劃編制與實(shí)施監(jiān)督合同4篇
- 二零二五年度土地儲(chǔ)備項(xiàng)目土地資源評(píng)估委托合同
- 2025年度別墅裝修材料環(huán)保檢測(cè)認(rèn)證合同3篇
- 2025年度建筑工程合同履行與索賠風(fēng)險(xiǎn)防控指南2篇
- 第三人民醫(yī)院二零二五年度肉類配送服務(wù)及食品安全監(jiān)控協(xié)議3篇
- 充電樁巡查記錄表
- 阻燃材料的阻燃機(jī)理建模
- CJT 511-2017 鑄鐵檢查井蓋
- 配電工作組配電網(wǎng)集中型饋線自動(dòng)化技術(shù)規(guī)范編制說(shuō)明
- 職業(yè)分類表格
- 2024高考物理全國(guó)乙卷押題含解析
- 廣東省深圳高級(jí)中學(xué)2023-2024學(xué)年八年級(jí)下學(xué)期期中考試物理試卷
- 介入科圍手術(shù)期護(hù)理
- 青光眼術(shù)后護(hù)理課件
- 設(shè)立工程公司組建方案
- 《物理因子治療技術(shù)》期末考試復(fù)習(xí)題庫(kù)(含答案)
評(píng)論
0/150
提交評(píng)論