,,
(中國人民解放軍91404部隊,河北 秦皇島 066001)
隨著軟件在裝備中的大量運用,軍方對軟件質量要求越來越高,所有軍用軟件必須經軟件測試通過后才能交付部隊使用。為規范軍用軟件測評過程,確保軟件測試[1]的質量,原總裝備部先后發布了《質量管理體系要求》、《校準實驗室和測試實驗室通用要求》等多項標準和規定,對軍用軟件測評提出規范要求,并于2004年對軍用軟件測評實驗室開展資質認證工作。
本文構建的基于GJB 2725A-2001《校準實驗室和測試實驗室通用要求》的軍用軟件測試管理系統旨在采用規范的管理手段,實現對軍用軟件測評[2]項目接收、測試需求分析、測試策劃、用例設計、測試執行、測試總結[3]全過程的管理和控制,輔助測試人員完成測試過程管理[4]、測試數據管理和質量評價[5],及時發現違反測試規范問題發生,既可以有效提高軟件測評的規范性、提高測試的效率和質量,也可為軍用軟件[6]測評實驗室認可奠定基礎。
當前軍方對軟件測評實驗室認證主要依據《測試實驗室和校準實驗室通用要求》及其附加要求《軍用軟件測評實驗室測評過程和技術能力要求》進行。因此實驗室進行軍用軟件測評項目實施過程和采用的技術能力必須符合這兩個規定的要求。
在《測試實驗室和校準實驗室通用要求》中,對軍用軟件測評實驗室提出了管理要求(組織、質量管理體系、文件的控制、要求、委托書及合同的評審、分包、采購、對委托方的服務、意見的處理、不符合要求的控制、糾正措施、預防措施、記錄的控制、內部審核、管理評審)和技術要求(人員、設施和環境、測試、校準或檢定方法及其確認、設備、測量溯源性、抽樣、被測件/被校件或被檢件的處置)[2]提出了明確要求。
《軍用軟件測評實驗室測評過程和技術能力要求》針對軍用軟件測評實驗室的測評過程管理的“組織、測試過程、項目管理、文檔和記錄的管理方面”和技術能力的“人員、設施和環境、測試、校準或檢定方法及其確認、設備、測量溯源性、抽樣、被測件/被校件或被檢件的處置方面[7]”的要求進行了細化。
與《測試實驗室和校準實驗室通用要求》相比,《軍用軟件測評實驗室測評過程和技術能力要求》針對軍用軟件測評實驗室制定,在軍用軟件測評實驗室管理和測評項目實施時更有針對和指導性。因此本系統更多依據《軍用軟件測評實驗室測評過程和技術能力要求》的要求進行了設計與實現。
軍用軟件測試管理系統實現軍用裝備軟件測試項目的全過程數據采集和實施管理,主要功能見表1[8]。

表1 系統主要功能要求
2.2.1 軟件數據設計
軍用軟件測試管理系統依據《測試實驗室和校準實驗室通用要求》及其附加要求《軍用軟件測評實驗室測評過程和技術能力要求》的要求進行數據結構設計和使用約束設計。
1)測試級別類型約束:系統中定義測試級別4個:單元測試、部件測試、配置項測試、系統測試;定義測試類型23個:文檔審查、代碼審查、靜態分析、代碼走查、邏輯測試、功能測試、性能測試、接口測試、人機交互界面測試、強度測試、余量測試、可靠性測試、安全性測試、恢復性測試、邊界測試、數據處理測試、安裝性測試、容量測試、互操作性測試、敏感性測試、標準符合性測試、兼容性測試、中文本地化測試。
2)測試過程約束:系統中明確設置測試過程為5個:測試需求分析、測試策劃、測試設計和實現、測試執行、測試總結(包括評價過程[9]和總結)。
3)項目管理約束:系統在各個階段對關鍵節點進行檢查和控制。
(1)需求管理:對測評任務書、合同等需求及其評審記錄進行管理;
(2)策劃管理:設置項目管理計劃文檔作為測評大綱的補充,根據項目進展隨時對進度、人員安排、工作量、資源使用估計等信息進行細化和修訂;
(3)跟蹤與控制:設置日志、周例會和階段跟蹤報告,按照不同的跟蹤粒度對整個項目執行過程進行過程跟蹤與工作質量監控;
(4)質量保證:制定質量保證計劃,對整個測試過程進行監督,對測試產品進行審核,測試過程進行階段評審。
(5)配置管理:制定配置管理計劃,對工作產品、測試工具和測試環境進行標識和控制。
4)人員的約束:具有2年(含)以上測試經歷的測試人員的比例應至少占30%,測試經歷短于2年不得擔任項目組長;
5)方法的約束:對軟件測試方法和評價方法[10]是否適合于預期用途進行評審和確認,通過評審測評大綱和測試說明的方式進行,并對評審和確認結果予以記錄。
6)設備的約束:軟件測試使用的硬件設備應進行狀態管理,對計算機、工作站、服務器以及測試平臺等進行功能檢查,并在實物上予以標識。
7)工具的約束:實驗室所用的測試工具建立并保存詳細的檔案,在使用前必須確認并記錄狀態。
8)被測件管理的約束:制定被測件的標識制度。詳細記錄被測件的狀態,使用前經過查毒處理,對被測件處置過程進行全程記錄。
9)評審約束:系統設置測評項目需求評審、合同評審、測試需求評審、測試策劃評審、測試就緒評審、測試設計評審、測試執行階段評審、測試總結評審等。
10)文檔約束:系統按照技術文檔、管理文檔兩大類對文件進行管理,每種文檔均根據規定的要求設置要素,文檔種類和要素內容均可通過系統軟件進行完整性審查。
2.2.2 軟件開發架構
軍用軟件測試管理系統屬于基于數據庫的管理信息系統的一種,采用圖1所示的三層架構來進行開發,從底層開始依次是數據持久層、業務邏輯層和圖形界面層[11]。
1)數據持久層負責全面的資源訪問功能支持,包括sql數據庫的操作和xml配置文件訪問等,主要是將業務邏輯層的對象保存到數據庫及數據文件中,以及將數據庫和文件中的記錄讀取出來生成對應的業務對象。
2)業務邏輯層包含系統中所有的業務對象以及業務邏輯,負責按照預定的業務邏輯處理圖形界面層提交的請求。業務功能子層負責級別業務功能實現,業務流程子層負責將業務功能子層提供的多個級別業務功能組織成一個完整的業務流。
3)圖形界面層主要負責用戶與系統之間的交互,主要包括數據管理、數據瀏覽、文檔生成等操作。

圖1 軍用軟件測試管理系統開發架構
系統由以下10個主要功能模塊組成,其中公共數據管理、項目信息管理模塊完成項目及基礎數據的管理維護,測試過程管理模塊按照要求實現每一輪測試的測試需求分析、測試策劃、測試設計與實現、測試執行以及最后的測試總結活動的能力;被測件管理、配置管理、策劃管理和數據檢查完成測評數據管理;質量控制、跟蹤與控制模塊完成測評過程的質量監控;文檔生成模塊完成測評結果文檔生成。軟件模塊間的關系如圖2所示。

圖2 軟件功能模塊組成
軍用軟件測試管理系統采用面向對象[12]的方法來建立業務模型[13],用對象來保存各業務實體,用對象的屬性來保存業務實體之間的關聯。本系統采用的數據為關系數據庫,各業務實體保存在數據庫表中,實體之間的關聯作為關系保存在數據庫表中。為了將對象持久化到關系數據庫中,本系統利用.NET的反射和用戶自定義Attribute的技術建立一種對象關系映射模型,通過該模型來描述業務實體類與數據庫表之間的映射關系,并在程序執行過程中根據該映射關系來實現對象形式的數據和數據庫記錄形式的數據之間的轉換[11]。在對象關系映射模型中,每一個實體類與一個數據庫表對應,實體的屬性對應數據庫表中的字段。每一個數據庫表必須包含一個自動編號的主鍵字段,該字段與實體類的ID屬性對應。每一個實體類的對象保存到數據庫中以后就是該實體對應的數據庫表的一條記錄,程序其它模塊只需要與實體對象交互,而數據持久化模塊會利用對象關系映射模型使對象和數據庫中的數據保持一致,數據持久化類關系如圖3所示。

圖3 數據持久化模塊類關系圖
實體之間的關系包括以下幾種:無關聯、一對多關聯、多對一關聯、多對多關聯。以上實體關系映射到數據庫中時情況如下:無關聯的實體對應的數據庫表不與其它數據庫表關聯;一對多和多對一關聯的實體對應的兩個數據庫表,其中一個表擁有另外一個表的主鍵作為自己的一個字段;多對多關聯的實體對應兩個實體數據庫表和一個關聯數據庫表,關聯數據庫表擁有另外兩個表的主鍵作為字段。由于多對一的關聯可以等同于一對多的關聯,并且多對多的關聯可以通過添加一個實體類的方式轉換成兩個一對多的關聯,因此為了降低復雜度,絕大多數情況下的對象關系模型中可以只使用無關聯和一對多關聯兩種情況的模型。
測試過程管理功能按照測評任務剖面按照5個子功能進行功能設計:測試需求分析、測試策劃、測試設計與實現、測試執行和測試總結,測試過程管理模塊流程圖見圖4。

圖4 測試過程管理模塊流程示意圖
在系統實際實現過程中,根據測試執行輪次將過程管理功能分為兩個階段,測試需求分析、測試策劃、測試設計與實現、測試執行功能為實施階段,每一輪測評實施結束后進行測評結果數據分析整理、測試問題驗證、軟件質量評估[1,5],根據需要確定是否要進行下一輪測試實施或直接進行測試總結。測評項目各輪次實施全部結束后,進入測試總結階段,完成軟件測評報告的編寫和測評項目的總結收尾工作,測試過程管理功能類關系圖見圖5,軟件執行過程界面見圖6。

圖5 測試過程管理功能類關系圖

圖6 測試執行過程
在計劃制定時為每個人分配活動和任務,指定預計工作量,通過個人日志和周例會對工作進展數據進行采集,隨時掌握測評項目的實際進展情況,周期性采用掙值分析法對項目任務工作量進行統計,以便在測評項目的執行與要求背離時,能夠及時采取有效的措施。根據工作量統計數據,計算進度指數(SPI)和成本指數(CPI)來對項目進行分析,掙值折線圖見圖7。
進度偏離指數SPI=(BCWP-BCWS)/BCWS
成本偏離指數CPI=(BCWP-ACWP)/ACWP

圖7 掙值折線報告圖
當時間進度或人時成本偏離超過20%時,提醒項目負責人采取相應的糾正措施。
通過狀態統計功能隨時了解項目進展,各個階段/輪次測試完成情況,測試的充分程度等情況。
文檔生成功能通過數據庫接口適配模塊,按照系統約定的數據結構模型,獲取數據庫中存放的測評數據,根據預先制定的文檔模板和XML配置文件,采用VSTO技術,按照用戶的選擇,自動化生成Word和Excel格式的軟件測評文檔文件,以便用來評審或歸檔,流程示意圖見圖8。

圖8 測評文檔生成流程示意圖
通過測試管理系統對軍用軟件測評項目全過程進行管理,可以減少因人為因素導致的不符合規范現象出現,在測試過程中可以隨時通過數據檢查功能,發現測試數據中存在的不符合要求、數據不一致、關鍵要素缺失等問題,提醒測試人員進行分析和改正。
通過項目跟蹤功能及時對項目進行階段跟蹤,并生成統計跟蹤表格(見表2)和折線圖(見圖7),幫助管理人員直觀查看當前完成工作量、實際工作與計劃的偏差等情況,及時對項目實施進程進行控制調整。

表2 掙值跟蹤表
通過多個測評項目使用,測試管理系統能夠有效減輕測試人員的工作強度和壓力,提高軟件測評的效率和質量。
本文描述構建的軍用軟件測試管理系統,按照《測試實驗室和校準實驗室通用要求》和《軍用軟件測評實驗室測評過程和技術能力要求》的規定,并參考自身實驗室特點進行設計開發,在實際使用過程中有效規范軍用軟件的測試過程、指導測試人員行為,為提高軍用軟件測評質量、促進軍用軟件測評實驗室對相關標準的能力符合性方面發揮積極作用。