石 磊,林曉欲
(中國空空導(dǎo)彈研究院,洛陽 471009)
隨著計算機技術(shù)的快速發(fā)展,軟件產(chǎn)品在航空武器裝備中的地位越來越重要,軟件測試已成為型號研制不可或缺的活動,但軍工行業(yè)的軟件測試起步較晚,往往關(guān)注于測試技術(shù),而忽視了測試過程管理。實踐表明,軟件測試過程管理是測試項目成功的重要保證,也是保障嵌入式軟件質(zhì)量的有效途徑之一[1]。
為了提高嵌入式軟件測試過程的管控能力,總裝備部發(fā)布了GJB 2725A-2001《測試實驗室和校準實驗室通用要求》[2]和 GJB/Z 141 -2004《軍用軟件測試指南》[3],對嵌入式軟件測試過程提出了明確的管理要求。因此迫切需要一種工具能夠在嵌入式軟件測試過程管理中依據(jù)軍用軟件標準或規(guī)范對軟件測試過程進行管控,實現(xiàn)軍方對航空武器裝備軟件測試過程管理的要求。
現(xiàn)在流行的軟件測試過程模型主要有V模型、W模型和H模型等[4],提供了軟件測試的流程和方法。但實際測試工作復(fù)雜而繁瑣,可能不會有模型完全適用于實際測試工作。尤其是軍用軟件產(chǎn)品測試,其目的是對高可靠性、高安全性、高健壯性的軟件進行有效、充分的驗證,是一項復(fù)雜的系統(tǒng)工程,涉及測試技術(shù)、測試方法、測試資源以及測試管理等諸多方面[5]。
所以,通過對測試過程模型的研究與分析,依據(jù)總裝備部標準或規(guī)范,并結(jié)合實際工程經(jīng)驗,將嵌入式軟件測試過程劃分為5個階段:測試需求分析、測試策劃、測試設(shè)計與實現(xiàn)、測試執(zhí)行和測試總結(jié),其模型如圖1所示。
該模型主要完成如下功能:
(1)梳理測試依據(jù),分析被測對象,對每個測試對象劃分測試類型;
(2)定義測試軟/硬件環(huán)境,合理安排測試的組織、成員與職責(zé),明確測試進度和項目終止準則;
(3)依據(jù)計劃設(shè)計測試用例,描述用例的初始化、輸入、操作、期望輸出、評價準則和通過準則等要素;
(4)在測試環(huán)境下執(zhí)行測試用例,記錄測試結(jié)果;
(5)對測試結(jié)果進行分析,確定軟件缺陷,形成報告。
圖1 嵌入式軟件測試過程模型
下面以實際工程為例來說明KTFlow在嵌入式軟件測試過程管理中的作用。
為便于測試過程管理,需做如下工作:
(1)創(chuàng)建測試項目數(shù)據(jù)庫,定義數(shù)據(jù)庫信息;
(2)創(chuàng)建項目組成員,分配測試角色和權(quán)限,如測試負責(zé)人、分析員、設(shè)計員、執(zhí)行員、綜保人員等;
(3)定制項目信息,包括測試項類型和優(yōu)先級、測試用例和激勵類型、測試類別和級別以及標識定義;
(4)定制測試計劃、說明、記錄、報告和問題單文檔模板,為自動化生成報告做準備。
依據(jù)軟件研制任務(wù)書、軟件需求規(guī)格說明、軟件概要設(shè)計說明和軟件詳細設(shè)計說明,對軟件需求進行逐層分解,細化分解測試依據(jù),描述依據(jù)的出處及其說明。單元測試的依據(jù)為軟件詳細設(shè)計說明,部件測試的依據(jù)為軟件概要設(shè)計說明,配置項測試的依據(jù)為軟件需求規(guī)格說明,系統(tǒng)測試的依據(jù)為軟件研制任務(wù)書,測試依據(jù)見圖2所示。
圖2 測試依據(jù)
梳理測試依據(jù)的主要目的是建立測試依據(jù)與測試項的追蹤關(guān)系,通過輪次定義,明確項目的技術(shù)狀態(tài),確保正確給出測試依據(jù)與測試項的雙向追蹤關(guān)系。測試依據(jù)建立后,對每個被測對象的測試類型進行測試項定義,確定測試名稱、測試要求、測試策略、優(yōu)先級和追蹤關(guān)系,測試項基本信息見圖3所示。
圖3 測試項基本信息
依據(jù)測試需求,設(shè)計軟件測試環(huán)境,包括軟件項、硬件項和其他項。例如單元測試的靜態(tài)測試和動態(tài)測試工具,配置項測試的被測產(chǎn)品、仿真系統(tǒng)以及激勵設(shè)備等,如表1所示。
表1 軟件測試環(huán)境表
規(guī)劃測試策略,例如功能測試、性能測試、邊界測試、接口測試以及可靠性測試等,為每位測試項目成員分配測試任務(wù)和職責(zé),如表2所示。
表2 軟件測試人員分配表
項目終止準則主要有以下三項:
(1)正常終止條件:在前置條件滿足的情況下,測試用例按照設(shè)計步驟全部輸入完畢;
(2)異常終止條件:前提條件不能滿足,導(dǎo)致無法完成輸入;
(3)前提條件可以滿足,但輸入無法完成。
依據(jù)測試計劃和軟件設(shè)計文件設(shè)計測試用例,單元、部件測試采用“先功能后邏輯”的測試策略,即先滿足基于功能的測試(功能測試覆蓋100%),再滿足基于邏輯的測試(語句、分支、調(diào)用覆蓋率100%)。配置項、系統(tǒng)測試采用基于功能的測試策略,測試用例主要包括名稱、標識、初始化、前提和約束、輸入、預(yù)期輸出、通過準則、追蹤關(guān)系、終止條件、用例類型和設(shè)計人員等信息,如圖4所示。
依據(jù)所設(shè)計的測試用例,在測試環(huán)境下執(zhí)行測試用例。測試過程中可增加、刪除、變更測試用例,記錄測試結(jié)果,對每個測試用例的執(zhí)行情況(完整執(zhí)行、未完整執(zhí)行和未執(zhí)行)進行說明,對執(zhí)行結(jié)果進行說明(通過或未通過),如發(fā)現(xiàn)軟件缺陷,則填寫軟件問題報告單,如圖5所示。
該階段的主要工作就是基于客觀翔實的記錄,對測試過程中測試用例的設(shè)計數(shù)目、完整執(zhí)行數(shù)目、部分執(zhí)行數(shù)目、未執(zhí)行數(shù)目、執(zhí)行結(jié)果、軟件缺陷以及進度等信息進行統(tǒng)計與分析,如圖6所示,為最終 對軟件品質(zhì)進行客觀、公正的評價提供數(shù)據(jù)支撐。
KTFlow的一個重要功能就是測試報告自動生成功能,其完全符合GJB 2725A-2001《測試實驗室和校準實驗室通用要求》和GJB/Z 141-2004《軍用軟件測試指南》對文檔格式和內(nèi)容的要求,允許測試團隊根據(jù)被測項目特點,定制所需報告的模板,如封面、字體字號、頁眉頁腳、表格式、段落格式、章節(jié)編排和內(nèi)容刪減,能夠完全實現(xiàn)測試過程不同階段對不同報告的要求,可以自動生成測評大綱、測試需求規(guī)格說明、測試計劃、測試說明、測試記錄、軟件問題報告單和測試報告,大大提高了嵌入式軟件測試過程的效率和質(zhì)量。
工程應(yīng)用中嵌入式軟件測試過程管理是一項復(fù)雜的系統(tǒng)工程,其涵蓋了所有軟件測試活動。通過有效利用KTFlow工具,實現(xiàn)了測試活動與工具的有機融合,極大提高了測試管控能力,消除了組織、人員間的障礙,實現(xiàn)了協(xié)同工作,確保了測試的充分性。同時也發(fā)現(xiàn)了工具存在的一些問題,如對單元、部件測試支持相對較弱,有些測試結(jié)果尚需手工輸入,自動化程度偏低的問題,需進行適應(yīng)性修改,以滿足實際工程需要。
[1]朱少民.全程軟件測試[M].北京:電子工業(yè)出版社,2007.
[2]閆宇華,李誼,黃寧,等.GJB 2725A-2001,測試實驗室和校準實驗室通用要求[S].北京:中國人民解放軍總裝備部,2001.
[3]許聚常,朱國慶,尹平,等.GJB/Z141-2004,軍用軟件測試指南[S].北京:中國人民解放軍總裝備部,2004.
[4]陳靜.軟件測試過程模型和管理理念探討[J].艦船電子對抗,2007,30(4):99 -100.
[5]金先仲,任宏光,李建軍,等.空空導(dǎo)彈研制系統(tǒng)工程管理[M].北京:國防工業(yè)出版社,2007.