,,
(中國人民解放軍91404部隊(duì),河北 秦皇島 066001)
隨著軟件在裝備中的大量運(yùn)用,軍方對軟件質(zhì)量要求越來越高,所有軍用軟件必須經(jīng)軟件測試通過后才能交付部隊(duì)使用。為規(guī)范軍用軟件測評過程,確保軟件測試[1]的質(zhì)量,原總裝備部先后發(fā)布了《質(zhì)量管理體系要求》、《校準(zhǔn)實(shí)驗(yàn)室和測試實(shí)驗(yàn)室通用要求》等多項(xiàng)標(biāo)準(zhǔn)和規(guī)定,對軍用軟件測評提出規(guī)范要求,并于2004年對軍用軟件測評實(shí)驗(yàn)室開展資質(zhì)認(rèn)證工作。
本文構(gòu)建的基于GJB 2725A-2001《校準(zhǔn)實(shí)驗(yàn)室和測試實(shí)驗(yàn)室通用要求》的軍用軟件測試管理系統(tǒng)旨在采用規(guī)范的管理手段,實(shí)現(xiàn)對軍用軟件測評[2]項(xiàng)目接收、測試需求分析、測試策劃、用例設(shè)計、測試執(zhí)行、測試總結(jié)[3]全過程的管理和控制,輔助測試人員完成測試過程管理[4]、測試數(shù)據(jù)管理和質(zhì)量評價[5],及時發(fā)現(xiàn)違反測試規(guī)范問題發(fā)生,既可以有效提高軟件測評的規(guī)范性、提高測試的效率和質(zhì)量,也可為軍用軟件[6]測評實(shí)驗(yàn)室認(rèn)可奠定基礎(chǔ)。
當(dāng)前軍方對軟件測評實(shí)驗(yàn)室認(rèn)證主要依據(jù)《測試實(shí)驗(yàn)室和校準(zhǔn)實(shí)驗(yàn)室通用要求》及其附加要求《軍用軟件測評實(shí)驗(yàn)室測評過程和技術(shù)能力要求》進(jìn)行。因此實(shí)驗(yàn)室進(jìn)行軍用軟件測評項(xiàng)目實(shí)施過程和采用的技術(shù)能力必須符合這兩個規(guī)定的要求。
在《測試實(shí)驗(yàn)室和校準(zhǔn)實(shí)驗(yàn)室通用要求》中,對軍用軟件測評實(shí)驗(yàn)室提出了管理要求(組織、質(zhì)量管理體系、文件的控制、要求、委托書及合同的評審、分包、采購、對委托方的服務(wù)、意見的處理、不符合要求的控制、糾正措施、預(yù)防措施、記錄的控制、內(nèi)部審核、管理評審)和技術(shù)要求(人員、設(shè)施和環(huán)境、測試、校準(zhǔn)或檢定方法及其確認(rèn)、設(shè)備、測量溯源性、抽樣、被測件/被校件或被檢件的處置)[2]提出了明確要求。
《軍用軟件測評實(shí)驗(yàn)室測評過程和技術(shù)能力要求》針對軍用軟件測評實(shí)驗(yàn)室的測評過程管理的“組織、測試過程、項(xiàng)目管理、文檔和記錄的管理方面”和技術(shù)能力的“人員、設(shè)施和環(huán)境、測試、校準(zhǔn)或檢定方法及其確認(rèn)、設(shè)備、測量溯源性、抽樣、被測件/被校件或被檢件的處置方面[7]”的要求進(jìn)行了細(xì)化。
與《測試實(shí)驗(yàn)室和校準(zhǔn)實(shí)驗(yàn)室通用要求》相比,《軍用軟件測評實(shí)驗(yàn)室測評過程和技術(shù)能力要求》針對軍用軟件測評實(shí)驗(yàn)室制定,在軍用軟件測評實(shí)驗(yàn)室管理和測評項(xiàng)目實(shí)施時更有針對和指導(dǎo)性。因此本系統(tǒng)更多依據(jù)《軍用軟件測評實(shí)驗(yàn)室測評過程和技術(shù)能力要求》的要求進(jìn)行了設(shè)計與實(shí)現(xiàn)。
軍用軟件測試管理系統(tǒng)實(shí)現(xiàn)軍用裝備軟件測試項(xiàng)目的全過程數(shù)據(jù)采集和實(shí)施管理,主要功能見表1[8]。
表1 系統(tǒng)主要功能要求
2.2.1 軟件數(shù)據(jù)設(shè)計
軍用軟件測試管理系統(tǒng)依據(jù)《測試實(shí)驗(yàn)室和校準(zhǔn)實(shí)驗(yàn)室通用要求》及其附加要求《軍用軟件測評實(shí)驗(yàn)室測評過程和技術(shù)能力要求》的要求進(jìn)行數(shù)據(jù)結(jié)構(gòu)設(shè)計和使用約束設(shè)計。
1)測試級別類型約束:系統(tǒng)中定義測試級別4個:單元測試、部件測試、配置項(xiàng)測試、系統(tǒng)測試;定義測試類型23個:文檔審查、代碼審查、靜態(tài)分析、代碼走查、邏輯測試、功能測試、性能測試、接口測試、人機(jī)交互界面測試、強(qiáng)度測試、余量測試、可靠性測試、安全性測試、恢復(fù)性測試、邊界測試、數(shù)據(jù)處理測試、安裝性測試、容量測試、互操作性測試、敏感性測試、標(biāo)準(zhǔn)符合性測試、兼容性測試、中文本地化測試。
2)測試過程約束:系統(tǒng)中明確設(shè)置測試過程為5個:測試需求分析、測試策劃、測試設(shè)計和實(shí)現(xiàn)、測試執(zhí)行、測試總結(jié)(包括評價過程[9]和總結(jié))。
3)項(xiàng)目管理約束:系統(tǒng)在各個階段對關(guān)鍵節(jié)點(diǎn)進(jìn)行檢查和控制。
(1)需求管理:對測評任務(wù)書、合同等需求及其評審記錄進(jìn)行管理;
(2)策劃管理:設(shè)置項(xiàng)目管理計劃文檔作為測評大綱的補(bǔ)充,根據(jù)項(xiàng)目進(jìn)展隨時對進(jìn)度、人員安排、工作量、資源使用估計等信息進(jìn)行細(xì)化和修訂;
(3)跟蹤與控制:設(shè)置日志、周例會和階段跟蹤報告,按照不同的跟蹤粒度對整個項(xiàng)目執(zhí)行過程進(jìn)行過程跟蹤與工作質(zhì)量監(jiān)控;
(4)質(zhì)量保證:制定質(zhì)量保證計劃,對整個測試過程進(jìn)行監(jiān)督,對測試產(chǎn)品進(jìn)行審核,測試過程進(jìn)行階段評審。
(5)配置管理:制定配置管理計劃,對工作產(chǎn)品、測試工具和測試環(huán)境進(jìn)行標(biāo)識和控制。
4)人員的約束:具有2年(含)以上測試經(jīng)歷的測試人員的比例應(yīng)至少占30%,測試經(jīng)歷短于2年不得擔(dān)任項(xiàng)目組長;
5)方法的約束:對軟件測試方法和評價方法[10]是否適合于預(yù)期用途進(jìn)行評審和確認(rèn),通過評審測評大綱和測試說明的方式進(jìn)行,并對評審和確認(rèn)結(jié)果予以記錄。
6)設(shè)備的約束:軟件測試使用的硬件設(shè)備應(yīng)進(jìn)行狀態(tài)管理,對計算機(jī)、工作站、服務(wù)器以及測試平臺等進(jìn)行功能檢查,并在實(shí)物上予以標(biāo)識。
7)工具的約束:實(shí)驗(yàn)室所用的測試工具建立并保存詳細(xì)的檔案,在使用前必須確認(rèn)并記錄狀態(tài)。
8)被測件管理的約束:制定被測件的標(biāo)識制度。詳細(xì)記錄被測件的狀態(tài),使用前經(jīng)過查毒處理,對被測件處置過程進(jìn)行全程記錄。
9)評審約束:系統(tǒng)設(shè)置測評項(xiàng)目需求評審、合同評審、測試需求評審、測試策劃評審、測試就緒評審、測試設(shè)計評審、測試執(zhí)行階段評審、測試總結(jié)評審等。
10)文檔約束:系統(tǒng)按照技術(shù)文檔、管理文檔兩大類對文件進(jìn)行管理,每種文檔均根據(jù)規(guī)定的要求設(shè)置要素,文檔種類和要素內(nèi)容均可通過系統(tǒng)軟件進(jìn)行完整性審查。
2.2.2 軟件開發(fā)架構(gòu)
軍用軟件測試管理系統(tǒng)屬于基于數(shù)據(jù)庫的管理信息系統(tǒng)的一種,采用圖1所示的三層架構(gòu)來進(jìn)行開發(fā),從底層開始依次是數(shù)據(jù)持久層、業(yè)務(wù)邏輯層和圖形界面層[11]。
1)數(shù)據(jù)持久層負(fù)責(zé)全面的資源訪問功能支持,包括sql數(shù)據(jù)庫的操作和xml配置文件訪問等,主要是將業(yè)務(wù)邏輯層的對象保存到數(shù)據(jù)庫及數(shù)據(jù)文件中,以及將數(shù)據(jù)庫和文件中的記錄讀取出來生成對應(yīng)的業(yè)務(wù)對象。
2)業(yè)務(wù)邏輯層包含系統(tǒng)中所有的業(yè)務(wù)對象以及業(yè)務(wù)邏輯,負(fù)責(zé)按照預(yù)定的業(yè)務(wù)邏輯處理圖形界面層提交的請求。業(yè)務(wù)功能子層負(fù)責(zé)級別業(yè)務(wù)功能實(shí)現(xiàn),業(yè)務(wù)流程子層負(fù)責(zé)將業(yè)務(wù)功能子層提供的多個級別業(yè)務(wù)功能組織成一個完整的業(yè)務(wù)流。
3)圖形界面層主要負(fù)責(zé)用戶與系統(tǒng)之間的交互,主要包括數(shù)據(jù)管理、數(shù)據(jù)瀏覽、文檔生成等操作。
圖1 軍用軟件測試管理系統(tǒng)開發(fā)架構(gòu)
系統(tǒng)由以下10個主要功能模塊組成,其中公共數(shù)據(jù)管理、項(xiàng)目信息管理模塊完成項(xiàng)目及基礎(chǔ)數(shù)據(jù)的管理維護(hù),測試過程管理模塊按照要求實(shí)現(xiàn)每一輪測試的測試需求分析、測試策劃、測試設(shè)計與實(shí)現(xiàn)、測試執(zhí)行以及最后的測試總結(jié)活動的能力;被測件管理、配置管理、策劃管理和數(shù)據(jù)檢查完成測評數(shù)據(jù)管理;質(zhì)量控制、跟蹤與控制模塊完成測評過程的質(zhì)量監(jiān)控;文檔生成模塊完成測評結(jié)果文檔生成。軟件模塊間的關(guān)系如圖2所示。
圖2 軟件功能模塊組成
軍用軟件測試管理系統(tǒng)采用面向?qū)ο骩12]的方法來建立業(yè)務(wù)模型[13],用對象來保存各業(yè)務(wù)實(shí)體,用對象的屬性來保存業(yè)務(wù)實(shí)體之間的關(guān)聯(lián)。本系統(tǒng)采用的數(shù)據(jù)為關(guān)系數(shù)據(jù)庫,各業(yè)務(wù)實(shí)體保存在數(shù)據(jù)庫表中,實(shí)體之間的關(guān)聯(lián)作為關(guān)系保存在數(shù)據(jù)庫表中。為了將對象持久化到關(guān)系數(shù)據(jù)庫中,本系統(tǒng)利用.NET的反射和用戶自定義Attribute的技術(shù)建立一種對象關(guān)系映射模型,通過該模型來描述業(yè)務(wù)實(shí)體類與數(shù)據(jù)庫表之間的映射關(guān)系,并在程序執(zhí)行過程中根據(jù)該映射關(guān)系來實(shí)現(xiàn)對象形式的數(shù)據(jù)和數(shù)據(jù)庫記錄形式的數(shù)據(jù)之間的轉(zhuǎn)換[11]。在對象關(guān)系映射模型中,每一個實(shí)體類與一個數(shù)據(jù)庫表對應(yīng),實(shí)體的屬性對應(yīng)數(shù)據(jù)庫表中的字段。每一個數(shù)據(jù)庫表必須包含一個自動編號的主鍵字段,該字段與實(shí)體類的ID屬性對應(yīng)。每一個實(shí)體類的對象保存到數(shù)據(jù)庫中以后就是該實(shí)體對應(yīng)的數(shù)據(jù)庫表的一條記錄,程序其它模塊只需要與實(shí)體對象交互,而數(shù)據(jù)持久化模塊會利用對象關(guān)系映射模型使對象和數(shù)據(jù)庫中的數(shù)據(jù)保持一致,數(shù)據(jù)持久化類關(guān)系如圖3所示。
圖3 數(shù)據(jù)持久化模塊類關(guān)系圖
實(shí)體之間的關(guān)系包括以下幾種:無關(guān)聯(lián)、一對多關(guān)聯(lián)、多對一關(guān)聯(lián)、多對多關(guān)聯(lián)。以上實(shí)體關(guān)系映射到數(shù)據(jù)庫中時情況如下:無關(guān)聯(lián)的實(shí)體對應(yīng)的數(shù)據(jù)庫表不與其它數(shù)據(jù)庫表關(guān)聯(lián);一對多和多對一關(guān)聯(lián)的實(shí)體對應(yīng)的兩個數(shù)據(jù)庫表,其中一個表擁有另外一個表的主鍵作為自己的一個字段;多對多關(guān)聯(lián)的實(shí)體對應(yīng)兩個實(shí)體數(shù)據(jù)庫表和一個關(guān)聯(lián)數(shù)據(jù)庫表,關(guān)聯(lián)數(shù)據(jù)庫表擁有另外兩個表的主鍵作為字段。由于多對一的關(guān)聯(lián)可以等同于一對多的關(guān)聯(lián),并且多對多的關(guān)聯(lián)可以通過添加一個實(shí)體類的方式轉(zhuǎn)換成兩個一對多的關(guān)聯(lián),因此為了降低復(fù)雜度,絕大多數(shù)情況下的對象關(guān)系模型中可以只使用無關(guān)聯(lián)和一對多關(guān)聯(lián)兩種情況的模型。
測試過程管理功能按照測評任務(wù)剖面按照5個子功能進(jìn)行功能設(shè)計:測試需求分析、測試策劃、測試設(shè)計與實(shí)現(xiàn)、測試執(zhí)行和測試總結(jié),測試過程管理模塊流程圖見圖4。
圖4 測試過程管理模塊流程示意圖
在系統(tǒng)實(shí)際實(shí)現(xiàn)過程中,根據(jù)測試執(zhí)行輪次將過程管理功能分為兩個階段,測試需求分析、測試策劃、測試設(shè)計與實(shí)現(xiàn)、測試執(zhí)行功能為實(shí)施階段,每一輪測評實(shí)施結(jié)束后進(jìn)行測評結(jié)果數(shù)據(jù)分析整理、測試問題驗(yàn)證、軟件質(zhì)量評估[1,5],根據(jù)需要確定是否要進(jìn)行下一輪測試實(shí)施或直接進(jìn)行測試總結(jié)。測評項(xiàng)目各輪次實(shí)施全部結(jié)束后,進(jìn)入測試總結(jié)階段,完成軟件測評報告的編寫和測評項(xiàng)目的總結(jié)收尾工作,測試過程管理功能類關(guān)系圖見圖5,軟件執(zhí)行過程界面見圖6。
圖5 測試過程管理功能類關(guān)系圖
圖6 測試執(zhí)行過程
在計劃制定時為每個人分配活動和任務(wù),指定預(yù)計工作量,通過個人日志和周例會對工作進(jìn)展數(shù)據(jù)進(jìn)行采集,隨時掌握測評項(xiàng)目的實(shí)際進(jìn)展情況,周期性采用掙值分析法對項(xiàng)目任務(wù)工作量進(jìn)行統(tǒng)計,以便在測評項(xiàng)目的執(zhí)行與要求背離時,能夠及時采取有效的措施。根據(jù)工作量統(tǒng)計數(shù)據(jù),計算進(jìn)度指數(shù)(SPI)和成本指數(shù)(CPI)來對項(xiàng)目進(jìn)行分析,掙值折線圖見圖7。
進(jìn)度偏離指數(shù)SPI=(BCWP-BCWS)/BCWS
成本偏離指數(shù)CPI=(BCWP-ACWP)/ACWP
圖7 掙值折線報告圖
當(dāng)時間進(jìn)度或人時成本偏離超過20%時,提醒項(xiàng)目負(fù)責(zé)人采取相應(yīng)的糾正措施。
通過狀態(tài)統(tǒng)計功能隨時了解項(xiàng)目進(jìn)展,各個階段/輪次測試完成情況,測試的充分程度等情況。
文檔生成功能通過數(shù)據(jù)庫接口適配模塊,按照系統(tǒng)約定的數(shù)據(jù)結(jié)構(gòu)模型,獲取數(shù)據(jù)庫中存放的測評數(shù)據(jù),根據(jù)預(yù)先制定的文檔模板和XML配置文件,采用VSTO技術(shù),按照用戶的選擇,自動化生成Word和Excel格式的軟件測評文檔文件,以便用來評審或歸檔,流程示意圖見圖8。
圖8 測評文檔生成流程示意圖
通過測試管理系統(tǒng)對軍用軟件測評項(xiàng)目全過程進(jìn)行管理,可以減少因人為因素導(dǎo)致的不符合規(guī)范現(xiàn)象出現(xiàn),在測試過程中可以隨時通過數(shù)據(jù)檢查功能,發(fā)現(xiàn)測試數(shù)據(jù)中存在的不符合要求、數(shù)據(jù)不一致、關(guān)鍵要素缺失等問題,提醒測試人員進(jìn)行分析和改正。
通過項(xiàng)目跟蹤功能及時對項(xiàng)目進(jìn)行階段跟蹤,并生成統(tǒng)計跟蹤表格(見表2)和折線圖(見圖7),幫助管理人員直觀查看當(dāng)前完成工作量、實(shí)際工作與計劃的偏差等情況,及時對項(xiàng)目實(shí)施進(jìn)程進(jìn)行控制調(diào)整。
表2 掙值跟蹤表
通過多個測評項(xiàng)目使用,測試管理系統(tǒng)能夠有效減輕測試人員的工作強(qiáng)度和壓力,提高軟件測評的效率和質(zhì)量。
本文描述構(gòu)建的軍用軟件測試管理系統(tǒng),按照《測試實(shí)驗(yàn)室和校準(zhǔn)實(shí)驗(yàn)室通用要求》和《軍用軟件測評實(shí)驗(yàn)室測評過程和技術(shù)能力要求》的規(guī)定,并參考自身實(shí)驗(yàn)室特點(diǎn)進(jìn)行設(shè)計開發(fā),在實(shí)際使用過程中有效規(guī)范軍用軟件的測試過程、指導(dǎo)測試人員行為,為提高軍用軟件測評質(zhì)量、促進(jìn)軍用軟件測評實(shí)驗(yàn)室對相關(guān)標(biāo)準(zhǔn)的能力符合性方面發(fā)揮積極作用。