石 磊,林曉欲
(中國空空導彈研究院,洛陽 471009)
隨著計算機技術的快速發展,軟件產品在航空武器裝備中的地位越來越重要,軟件測試已成為型號研制不可或缺的活動,但軍工行業的軟件測試起步較晚,往往關注于測試技術,而忽視了測試過程管理。實踐表明,軟件測試過程管理是測試項目成功的重要保證,也是保障嵌入式軟件質量的有效途徑之一[1]。
為了提高嵌入式軟件測試過程的管控能力,總裝備部發布了GJB 2725A-2001《測試實驗室和校準實驗室通用要求》[2]和 GJB/Z 141 -2004《軍用軟件測試指南》[3],對嵌入式軟件測試過程提出了明確的管理要求。因此迫切需要一種工具能夠在嵌入式軟件測試過程管理中依據軍用軟件標準或規范對軟件測試過程進行管控,實現軍方對航空武器裝備軟件測試過程管理的要求。
現在流行的軟件測試過程模型主要有V模型、W模型和H模型等[4],提供了軟件測試的流程和方法。但實際測試工作復雜而繁瑣,可能不會有模型完全適用于實際測試工作。尤其是軍用軟件產品測試,其目的是對高可靠性、高安全性、高健壯性的軟件進行有效、充分的驗證,是一項復雜的系統工程,涉及測試技術、測試方法、測試資源以及測試管理等諸多方面[5]。
所以,通過對測試過程模型的研究與分析,依據總裝備部標準或規范,并結合實際工程經驗,將嵌入式軟件測試過程劃分為5個階段:測試需求分析、測試策劃、測試設計與實現、測試執行和測試總結,其模型如圖1所示。
該模型主要完成如下功能:
(1)梳理測試依據,分析被測對象,對每個測試對象劃分測試類型;
(2)定義測試軟/硬件環境,合理安排測試的組織、成員與職責,明確測試進度和項目終止準則;
(3)依據計劃設計測試用例,描述用例的初始化、輸入、操作、期望輸出、評價準則和通過準則等要素;
(4)在測試環境下執行測試用例,記錄測試結果;
(5)對測試結果進行分析,確定軟件缺陷,形成報告。

圖1 嵌入式軟件測試過程模型
下面以實際工程為例來說明KTFlow在嵌入式軟件測試過程管理中的作用。
為便于測試過程管理,需做如下工作:
(1)創建測試項目數據庫,定義數據庫信息;
(2)創建項目組成員,分配測試角色和權限,如測試負責人、分析員、設計員、執行員、綜保人員等;
(3)定制項目信息,包括測試項類型和優先級、測試用例和激勵類型、測試類別和級別以及標識定義;
(4)定制測試計劃、說明、記錄、報告和問題單文檔模板,為自動化生成報告做準備。
依據軟件研制任務書、軟件需求規格說明、軟件概要設計說明和軟件詳細設計說明,對軟件需求進行逐層分解,細化分解測試依據,描述依據的出處及其說明。單元測試的依據為軟件詳細設計說明,部件測試的依據為軟件概要設計說明,配置項測試的依據為軟件需求規格說明,系統測試的依據為軟件研制任務書,測試依據見圖2所示。

圖2 測試依據
梳理測試依據的主要目的是建立測試依據與測試項的追蹤關系,通過輪次定義,明確項目的技術狀態,確保正確給出測試依據與測試項的雙向追蹤關系。測試依據建立后,對每個被測對象的測試類型進行測試項定義,確定測試名稱、測試要求、測試策略、優先級和追蹤關系,測試項基本信息見圖3所示。

圖3 測試項基本信息
依據測試需求,設計軟件測試環境,包括軟件項、硬件項和其他項。例如單元測試的靜態測試和動態測試工具,配置項測試的被測產品、仿真系統以及激勵設備等,如表1所示。

表1 軟件測試環境表
規劃測試策略,例如功能測試、性能測試、邊界測試、接口測試以及可靠性測試等,為每位測試項目成員分配測試任務和職責,如表2所示。

表2 軟件測試人員分配表
項目終止準則主要有以下三項:
(1)正常終止條件:在前置條件滿足的情況下,測試用例按照設計步驟全部輸入完畢;
(2)異常終止條件:前提條件不能滿足,導致無法完成輸入;
(3)前提條件可以滿足,但輸入無法完成。
依據測試計劃和軟件設計文件設計測試用例,單元、部件測試采用“先功能后邏輯”的測試策略,即先滿足基于功能的測試(功能測試覆蓋100%),再滿足基于邏輯的測試(語句、分支、調用覆蓋率100%)。配置項、系統測試采用基于功能的測試策略,測試用例主要包括名稱、標識、初始化、前提和約束、輸入、預期輸出、通過準則、追蹤關系、終止條件、用例類型和設計人員等信息,如圖4所示。
依據所設計的測試用例,在測試環境下執行測試用例。測試過程中可增加、刪除、變更測試用例,記錄測試結果,對每個測試用例的執行情況(完整執行、未完整執行和未執行)進行說明,對執行結果進行說明(通過或未通過),如發現軟件缺陷,則填寫軟件問題報告單,如圖5所示。
該階段的主要工作就是基于客觀翔實的記錄,對測試過程中測試用例的設計數目、完整執行數目、部分執行數目、未執行數目、執行結果、軟件缺陷以及進度等信息進行統計與分析,如圖6所示,為最終 對軟件品質進行客觀、公正的評價提供數據支撐。



KTFlow的一個重要功能就是測試報告自動生成功能,其完全符合GJB 2725A-2001《測試實驗室和校準實驗室通用要求》和GJB/Z 141-2004《軍用軟件測試指南》對文檔格式和內容的要求,允許測試團隊根據被測項目特點,定制所需報告的模板,如封面、字體字號、頁眉頁腳、表格式、段落格式、章節編排和內容刪減,能夠完全實現測試過程不同階段對不同報告的要求,可以自動生成測評大綱、測試需求規格說明、測試計劃、測試說明、測試記錄、軟件問題報告單和測試報告,大大提高了嵌入式軟件測試過程的效率和質量。
工程應用中嵌入式軟件測試過程管理是一項復雜的系統工程,其涵蓋了所有軟件測試活動。通過有效利用KTFlow工具,實現了測試活動與工具的有機融合,極大提高了測試管控能力,消除了組織、人員間的障礙,實現了協同工作,確保了測試的充分性。同時也發現了工具存在的一些問題,如對單元、部件測試支持相對較弱,有些測試結果尚需手工輸入,自動化程度偏低的問題,需進行適應性修改,以滿足實際工程需要。
[1]朱少民.全程軟件測試[M].北京:電子工業出版社,2007.
[2]閆宇華,李誼,黃寧,等.GJB 2725A-2001,測試實驗室和校準實驗室通用要求[S].北京:中國人民解放軍總裝備部,2001.
[3]許聚常,朱國慶,尹平,等.GJB/Z141-2004,軍用軟件測試指南[S].北京:中國人民解放軍總裝備部,2004.
[4]陳靜.軟件測試過程模型和管理理念探討[J].艦船電子對抗,2007,30(4):99 -100.
[5]金先仲,任宏光,李建軍,等.空空導彈研制系統工程管理[M].北京:國防工業出版社,2007.