文/孫龑 胡玉露
隨著軍用軟件在信息裝備中發(fā)揮的作用越來(lái)越大,對(duì)于軍用軟件質(zhì)量的關(guān)注度也越來(lái)越高。為了規(guī)范我國(guó)軍用軟件的開(kāi)發(fā),相關(guān)部門(mén)頒發(fā)了GJB5000A-2008《軍用軟件研制能力成熟度模型》。面對(duì)更高的要求,如何依照體系高效地開(kāi)展軟件測(cè)試工作,成為每一個(gè)測(cè)試工程師必須面對(duì)的難題。
基于軟件測(cè)試V模型(參見(jiàn)圖 1)的軟件測(cè)試過(guò)程中,將軟件測(cè)試劃分為四個(gè)級(jí)別,分別是單元測(cè)試、部件測(cè)試、配置項(xiàng)測(cè)試(合格性測(cè)試)、系統(tǒng)測(cè)試。而在配置項(xiàng)測(cè)試和系統(tǒng)測(cè)試過(guò)程中,涉及的數(shù)據(jù)量大,數(shù)據(jù)種類(lèi)多,通過(guò)人工整理的方式不僅會(huì)耗費(fèi)大量時(shí)間,而且容易造成數(shù)據(jù)不一致的問(wèn)題。本文基于某型機(jī)軟件測(cè)試工作,依據(jù)GJB5000A體系文件的相關(guān)要求,對(duì)配置項(xiàng)測(cè)試和系統(tǒng)測(cè)試中所需要的數(shù)據(jù)進(jìn)行了研究,依據(jù)數(shù)據(jù)之間的關(guān)系建立數(shù)學(xué)模型,并通過(guò)Excel VBA的手段制作了軟件測(cè)試數(shù)據(jù)自動(dòng)生成工具,實(shí)現(xiàn)了該數(shù)據(jù)模型。通過(guò)這兩個(gè)測(cè)試過(guò)程中數(shù)據(jù)的自動(dòng)生成,實(shí)現(xiàn)了測(cè)試效率的提升。
在某型機(jī)軟件測(cè)試工作中,基于GJB5000A-2008《軍用軟件研制能力成熟度模型》和GJB438B-2009《軍用軟件開(kāi)發(fā)文檔通用要求》,配置項(xiàng)測(cè)試和系統(tǒng)測(cè)試過(guò)程中各需完成12個(gè)表格、150項(xiàng)數(shù)據(jù)的收集和整理:

圖1:軟件測(cè)試V模型
(1)項(xiàng)目基本信息表:包括14項(xiàng)數(shù)據(jù),分別是項(xiàng)目標(biāo)識(shí)、軟件標(biāo)識(shí)、測(cè)試級(jí)別、進(jìn)入測(cè)試的軟件版本、被測(cè)軟件名稱(chēng)、版本日期、默認(rèn)用例設(shè)計(jì)人、默認(rèn)用例設(shè)計(jì)日期、默認(rèn)用例執(zhí)行人、默認(rèn)用例執(zhí)行日期、默認(rèn)故障嚴(yán)重等級(jí)、默認(rèn)故障解決人、默認(rèn)故障解決日期、默認(rèn)故障解決結(jié)論。
(2)需求與測(cè)試項(xiàng)的映射關(guān)系表:包括5項(xiàng)數(shù)據(jù),分別是測(cè)試項(xiàng)名稱(chēng)、測(cè)試項(xiàng)章節(jié)號(hào)、測(cè)試項(xiàng)標(biāo)識(shí)、需求章節(jié)號(hào)、需求章節(jié)名稱(chēng)。
(3)測(cè)試用例表:包括17項(xiàng)數(shù)據(jù),分別是用例編號(hào)、測(cè)試類(lèi)型、正常/異常、測(cè)試項(xiàng)名稱(chēng)、測(cè)試項(xiàng)標(biāo)識(shí)、用例標(biāo)識(shí)號(hào)、測(cè)試說(shuō)明、用例描述、測(cè)試步驟、預(yù)期結(jié)果、設(shè)計(jì)人、設(shè)計(jì)日期、測(cè)試日期、測(cè)試結(jié)果及現(xiàn)象、測(cè)試結(jié)論、故障現(xiàn)象描述、測(cè)試人。
(4)測(cè)試用例個(gè)數(shù)統(tǒng)計(jì)表:包括39項(xiàng)數(shù)據(jù),分別是各種測(cè)試類(lèi)型下正常/異常測(cè)試用例個(gè)數(shù)。
(5)用例到需求的映射表:包括6項(xiàng)數(shù)據(jù),分別是測(cè)試用例標(biāo)識(shí)、測(cè)試項(xiàng)名稱(chēng)、測(cè)試項(xiàng)章節(jié)號(hào)、測(cè)試項(xiàng)標(biāo)識(shí)、需求章節(jié)號(hào)、需求名稱(chēng)。
(6)需求到用例的映射表:包括6項(xiàng)數(shù)據(jù),分別是相關(guān)測(cè)試用例標(biāo)識(shí)、測(cè)試項(xiàng)名稱(chēng)、測(cè)試項(xiàng)章節(jié)號(hào)、測(cè)試項(xiàng)標(biāo)識(shí)、需求章節(jié)號(hào)、需求名稱(chēng)。
(7)測(cè)試說(shuō)明到測(cè)試用例的映射表:包括7項(xiàng)數(shù)據(jù),分別是需求內(nèi)容、相關(guān)測(cè)試用例標(biāo)識(shí)、測(cè)試項(xiàng)名稱(chēng)、測(cè)試項(xiàng)章節(jié)號(hào)、測(cè)試項(xiàng)標(biāo)識(shí)、需求章節(jié)號(hào)、需求名稱(chēng)。
(8)測(cè)試用例到測(cè)試說(shuō)明的映射表:包括7項(xiàng)數(shù)據(jù),分別是需求內(nèi)容、相關(guān)測(cè)試用例標(biāo)識(shí)、測(cè)試項(xiàng)名稱(chēng)、測(cè)試項(xiàng)章節(jié)號(hào)、測(cè)試項(xiàng)標(biāo)識(shí)、需求章節(jié)號(hào)、需求名稱(chēng)。
(9)測(cè)試故障匯總表:包括18項(xiàng)數(shù)據(jù),分別是故障標(biāo)識(shí)號(hào)、被測(cè)軟件名稱(chēng)、被測(cè)軟件標(biāo)識(shí)、版本及日期、測(cè)試項(xiàng)名稱(chēng)、用例標(biāo)識(shí)、測(cè)試級(jí)別、測(cè)試類(lèi)型、故障類(lèi)型、故障嚴(yán)重等級(jí)、故障描述、報(bào)告人、報(bào)告日期、處理意見(jiàn)及方法、解決人、解決日期、回歸測(cè)試方法、結(jié)論。
(10)影響性分析表:包括10項(xiàng)數(shù)據(jù),分別是分析序號(hào)、更改依據(jù)、更改描述、受影響/新增測(cè)試項(xiàng)、受影響/新增測(cè)試用例、測(cè)試類(lèi)型、重用用例個(gè)數(shù)及比率、新設(shè)計(jì)用例個(gè)數(shù)及比率、執(zhí)行用例個(gè)數(shù)及比率、未通過(guò)用例個(gè)數(shù)及比率。
(11)故障個(gè)數(shù)統(tǒng)計(jì)表:包括16項(xiàng)數(shù)據(jù),分別是4種不同故障類(lèi)型下不同等級(jí)的故障個(gè)數(shù)。
(12)用例執(zhí)行情況表:包括5項(xiàng)數(shù)據(jù),分別是用例個(gè)數(shù)、百分比、執(zhí)行用例個(gè)數(shù)、未執(zhí)行用例個(gè)數(shù)、未通過(guò)用例個(gè)數(shù)。
由于軟件測(cè)試工作的特殊性,在配置項(xiàng)測(cè)試和系統(tǒng)測(cè)試的數(shù)據(jù)整理過(guò)程中,存在如下難點(diǎn):
(1)數(shù)據(jù)量大:需整理12個(gè)數(shù)據(jù)表共計(jì)150項(xiàng)數(shù)據(jù),整理工作非常繁重。
(2)數(shù)據(jù)存在關(guān)聯(lián),難以維護(hù):整理的數(shù)據(jù)中存在關(guān)聯(lián)性,導(dǎo)致表格中的數(shù)據(jù)不能獨(dú)立存在,當(dāng)某一個(gè)表格的數(shù)據(jù)發(fā)生變化時(shí),其余表格數(shù)據(jù)必須進(jìn)行同步更新,否則就會(huì)出現(xiàn)前后不一致。
(3)表格填寫(xiě)規(guī)范較多,培訓(xùn)成本較高:為保證數(shù)據(jù)格式的統(tǒng)一性,表格填寫(xiě)過(guò)程中需要對(duì)數(shù)據(jù)進(jìn)行統(tǒng)一化規(guī)定,測(cè)試負(fù)責(zé)人需要經(jīng)過(guò)相關(guān)的學(xué)習(xí)和培訓(xùn)才能掌握對(duì)應(yīng)的填寫(xiě)規(guī)范,培訓(xùn)成本較高。
2.1.1 數(shù)據(jù)類(lèi)型的劃分
對(duì)12個(gè)數(shù)據(jù)表150項(xiàng)數(shù)據(jù)進(jìn)行研究,依據(jù)數(shù)據(jù)特性及關(guān)聯(lián)關(guān)系可將數(shù)據(jù)劃分為四類(lèi):
(1)填寫(xiě)數(shù)據(jù):項(xiàng)目基本信息數(shù)據(jù),必須通過(guò)手工填寫(xiě)。
(2)設(shè)計(jì)數(shù)據(jù):經(jīng)過(guò)設(shè)計(jì)后填入的數(shù)據(jù),必須通過(guò)手工填寫(xiě)。
(3)部分統(tǒng)計(jì)數(shù)據(jù):即依據(jù)填寫(xiě)數(shù)據(jù)和設(shè)計(jì)數(shù)據(jù),通過(guò)固定的映射關(guān)系和計(jì)算可以得到該項(xiàng)數(shù)據(jù)中大部分內(nèi)容的數(shù)據(jù)。
(4)完全統(tǒng)計(jì)數(shù)據(jù):即依據(jù)填寫(xiě)數(shù)據(jù)和設(shè)計(jì)數(shù)據(jù),通過(guò)固定的映射關(guān)系和計(jì)算可以得到該項(xiàng)數(shù)據(jù)中全部?jī)?nèi)容的數(shù)據(jù)。
根據(jù)以上類(lèi)別,將150項(xiàng)數(shù)據(jù)進(jìn)行劃分為填寫(xiě)數(shù)據(jù)18項(xiàng)、設(shè)計(jì)數(shù)據(jù)12項(xiàng)、部分統(tǒng)計(jì)數(shù)據(jù)20項(xiàng)、完全統(tǒng)計(jì)數(shù)據(jù)100項(xiàng):
(1)項(xiàng)目基本信息表:填寫(xiě)數(shù)據(jù)14項(xiàng);其余數(shù)據(jù)無(wú)。
(2)需求與測(cè)試項(xiàng)的映射關(guān)系表:設(shè)計(jì)數(shù)據(jù)5項(xiàng);其余數(shù)據(jù)無(wú)。
(3)測(cè)試用例表:填寫(xiě)數(shù)據(jù)1項(xiàng),包括故障現(xiàn)象描述;設(shè)計(jì)數(shù)據(jù)7項(xiàng),包括測(cè)試類(lèi)型、正常/異常、測(cè)試項(xiàng)名稱(chēng)、測(cè)試說(shuō)明、用例描述、測(cè)試步驟、預(yù)期結(jié)果;部分統(tǒng)計(jì)數(shù)據(jù)6項(xiàng),包括設(shè)計(jì)人、設(shè)計(jì)日期、測(cè)試日期、測(cè)試結(jié)果及現(xiàn)象、測(cè)試結(jié)論、測(cè)試人員;完全統(tǒng)計(jì)數(shù)據(jù)3項(xiàng),包括用例編號(hào)、測(cè)試項(xiàng)標(biāo)識(shí)、用例標(biāo)識(shí)號(hào)。
(4)測(cè)試用例個(gè)數(shù)統(tǒng)計(jì)表:完全統(tǒng)計(jì)數(shù)據(jù)39項(xiàng);其余數(shù)據(jù)無(wú)。
(5)用例到需求的映射表:完全統(tǒng)計(jì)數(shù)據(jù)6項(xiàng);其余數(shù)據(jù)無(wú)。
(6)需求到用例的映射表:完全統(tǒng)計(jì)數(shù)據(jù)6項(xiàng),其余數(shù)據(jù)無(wú)。
(7)測(cè)試說(shuō)明到測(cè)試用例的映射表:完全統(tǒng)計(jì)數(shù)據(jù)7項(xiàng),其余數(shù)據(jù)無(wú)。
(8)測(cè)試用例到測(cè)試說(shuō)明的映射表:完全統(tǒng)計(jì)數(shù)據(jù)7項(xiàng),其余數(shù)據(jù)無(wú)。
(9)測(cè)試故障匯總表:填寫(xiě)數(shù)據(jù)3項(xiàng),包括故障類(lèi)型、處理意見(jiàn)及方法、結(jié)論;部分統(tǒng)計(jì)數(shù)據(jù)6項(xiàng),包括故障嚴(yán)重等級(jí)、報(bào)告人、報(bào)告日期、解決人、解決日期、回歸測(cè)試方法;完全統(tǒng)計(jì)數(shù)據(jù)9項(xiàng),包括故障編號(hào)、被測(cè)軟件名稱(chēng)、被測(cè)軟件標(biāo)識(shí)、版本及日期、測(cè)試項(xiàng)名稱(chēng)、用例標(biāo)識(shí)、測(cè)試級(jí)別、測(cè)試類(lèi)型、故障描述;填寫(xiě)數(shù)據(jù)無(wú)。
(10)影響性分析表:部分統(tǒng)計(jì)數(shù)據(jù)7項(xiàng),包括受影響/新增測(cè)試項(xiàng)、受影響/新增測(cè)試用例、測(cè)試類(lèi)型、重用個(gè)數(shù)及比率、新設(shè)計(jì)個(gè)數(shù)及比率、執(zhí)行個(gè)數(shù)及比率、未通過(guò)個(gè)數(shù)及比率;完全統(tǒng)計(jì)數(shù)據(jù):3項(xiàng),包括序號(hào)、更改依據(jù)、更改描述;其余數(shù)據(jù)無(wú)。
(11)故障個(gè)數(shù)統(tǒng)計(jì)表:完全統(tǒng)計(jì)數(shù)據(jù)16項(xiàng);其余數(shù)據(jù)無(wú)。
(12)用例執(zhí)行情況表:部分統(tǒng)計(jì)數(shù)據(jù)1項(xiàng),包括未執(zhí)行用例個(gè)數(shù);完全統(tǒng)計(jì)數(shù)據(jù)4項(xiàng),包括測(cè)試類(lèi)型、用例個(gè)數(shù)、百分比、執(zhí)行用例個(gè)數(shù)、未通過(guò)用例個(gè)數(shù)。
2.1.2 映射關(guān)系的建立
完成對(duì)150項(xiàng)數(shù)據(jù)的分類(lèi),建立填寫(xiě)數(shù)據(jù)、設(shè)計(jì)數(shù)據(jù)與部分統(tǒng)計(jì)數(shù)據(jù)、完全統(tǒng)計(jì)數(shù)據(jù)之間的關(guān)系,經(jīng)過(guò)研究,將表格內(nèi)數(shù)據(jù)關(guān)系主要分為如下四類(lèi):
(1)直接映射關(guān)系:即源數(shù)據(jù)和目標(biāo)數(shù)據(jù)之間的數(shù)值相同,例如項(xiàng)目基本信息表中的默認(rèn)用例設(shè)計(jì)人與測(cè)試用例表中的設(shè)計(jì)人為直接映射關(guān)系。
(2)計(jì)算映射關(guān)系:即源數(shù)據(jù)經(jīng)過(guò)直接計(jì)算得到目標(biāo)數(shù)據(jù)的值,例如測(cè)試用例表中的測(cè)試結(jié)果及現(xiàn)象與測(cè)試用例表中的故障現(xiàn)象描述。
(3)直接統(tǒng)計(jì)映射關(guān)系:即目標(biāo)數(shù)據(jù)經(jīng)過(guò)某一個(gè)表格中的某幾項(xiàng)源數(shù)據(jù)經(jīng)過(guò)統(tǒng)計(jì)計(jì)算得到。
(4)間接統(tǒng)計(jì)映射關(guān)系:即目標(biāo)數(shù)據(jù)經(jīng)過(guò)某幾個(gè)表格的某幾項(xiàng)源數(shù)據(jù)經(jīng)過(guò)統(tǒng)計(jì)計(jì)算得到。

圖2:間接統(tǒng)計(jì)映射關(guān)系的目標(biāo)數(shù)據(jù)自動(dòng)生成流程

圖3:數(shù)學(xué)模型(軟件測(cè)試數(shù)據(jù)自動(dòng)生成工具)流程

表1:某型號(hào)某軟件維護(hù)性測(cè)試項(xiàng)目信息

表2:自動(dòng)生成數(shù)據(jù)和人工統(tǒng)計(jì)數(shù)據(jù)的效率比較

表3:比較所用計(jì)算機(jī)配置信息

圖4:宏列表
基于上述研究,本文采用Excel作為基礎(chǔ)制作數(shù)據(jù)自動(dòng)生成工具,對(duì)數(shù)據(jù)之間的映射關(guān)系進(jìn)行實(shí)現(xiàn)。Excel中自帶開(kāi)發(fā)工具VBA,VBA可以直接對(duì)Excel表格進(jìn)行編程,對(duì)不同的數(shù)據(jù)表編制不同的數(shù)據(jù)宏,建立表格中的目標(biāo)數(shù)據(jù)(部分統(tǒng)計(jì)數(shù)據(jù)、完全統(tǒng)計(jì)數(shù)據(jù))與源數(shù)據(jù)之間的映射。使用工具時(shí),在完成源數(shù)據(jù)的填寫(xiě)后,執(zhí)行對(duì)應(yīng)表格的數(shù)據(jù)宏,完成目標(biāo)數(shù)據(jù)的自動(dòng)生成,四種映射關(guān)系下的目標(biāo)數(shù)據(jù)自動(dòng)生成總流程如圖 2所示。
為保證數(shù)據(jù)符合GJB5000A和軟件測(cè)試的要求,在數(shù)學(xué)模型的設(shè)計(jì)中將數(shù)據(jù)約束通過(guò)如下方式來(lái)實(shí)現(xiàn):
(1)對(duì)于填寫(xiě)數(shù)據(jù)和設(shè)計(jì)數(shù)據(jù):通過(guò)選項(xiàng)的形式或在工具中規(guī)定好填寫(xiě)格式,以確保規(guī)范填寫(xiě)。
(2)對(duì)于部分統(tǒng)計(jì)數(shù)據(jù)和完全統(tǒng)計(jì)數(shù)據(jù):將數(shù)據(jù)規(guī)范通過(guò)映射關(guān)系來(lái)實(shí)現(xiàn),通過(guò)計(jì)算、統(tǒng)計(jì)、拼接生成符合規(guī)范的目標(biāo)數(shù)據(jù)。
通過(guò)格式化的輸入約束和依據(jù)規(guī)范的自動(dòng)生成,保證了數(shù)據(jù)填寫(xiě)的規(guī)范性,無(wú)需進(jìn)行過(guò)多的記憶和培訓(xùn)。
在實(shí)現(xiàn)數(shù)學(xué)模型之外,為保證源數(shù)據(jù)和目標(biāo)數(shù)據(jù)的準(zhǔn)確性,在本工具中增加了合法性檢查機(jī)制:
(1)對(duì)于空數(shù)據(jù)的檢查:檢查源數(shù)據(jù)的值是否為空。
(2)對(duì)于數(shù)據(jù)格式的檢查:檢查源數(shù)據(jù)的格式是否正確。
(3)對(duì)于映射關(guān)系的檢查:檢查映射關(guān)系是否正確。
在加入合法性檢查機(jī)制后,數(shù)學(xué)模型(軟件測(cè)試數(shù)據(jù)自動(dòng)生成工具)的基本流程如圖3所示。
為準(zhǔn)確驗(yàn)證軟件測(cè)試數(shù)據(jù)自動(dòng)生成工具的工作效率,在某型機(jī)某軟件系統(tǒng)測(cè)試過(guò)程中,對(duì)自動(dòng)生成數(shù)據(jù)和人工統(tǒng)計(jì)數(shù)據(jù)的效率進(jìn)行了比較。本項(xiàng)目的基本信息如表1所示。自動(dòng)生成數(shù)據(jù)和人工統(tǒng)計(jì)數(shù)據(jù)的效率如表2所示。在本次比較中所使用的計(jì)算機(jī)基本配置信息如表3所示。
根據(jù)比較可以得出,在本次系統(tǒng)測(cè)試的數(shù)據(jù)整理過(guò)程中,通過(guò)工具的使用,相較于人工整理數(shù)據(jù),效率提升了95.66%,達(dá)到了提升測(cè)試效率的目的。
當(dāng)某個(gè)表格某項(xiàng)數(shù)據(jù)進(jìn)行了修改后,只需在工具中重新執(zhí)行對(duì)應(yīng)的宏(參見(jiàn)圖 4),即可實(shí)現(xiàn)所有表格的數(shù)據(jù)更新,保證了數(shù)據(jù)的一致性,避免了因人工統(tǒng)計(jì)而產(chǎn)生的遺漏。
本文通過(guò)對(duì)GJB5000A體系下軟件測(cè)試中配置項(xiàng)測(cè)試和系統(tǒng)測(cè)試的數(shù)據(jù)整理過(guò)程進(jìn)行了研究,對(duì)所需整理的數(shù)據(jù)建立了數(shù)學(xué)模型。利用Excel VBA技術(shù)編寫(xiě)軟件測(cè)試數(shù)據(jù)自動(dòng)生成工具實(shí)現(xiàn)了該模型,并在該模型中增加了數(shù)據(jù)合法性檢查機(jī)制。與原有的人工整理測(cè)試數(shù)據(jù)相比,實(shí)現(xiàn)了如下創(chuàng)新:
(1)提升了軟件測(cè)試效率。借助該Excel VBA工具,測(cè)試人員僅需填寫(xiě)30項(xiàng)數(shù)據(jù),其余120項(xiàng)數(shù)據(jù)均可自動(dòng)生成,減少了人工記錄、整理的工作量。
(2)確保了數(shù)據(jù)的一致性。在測(cè)試數(shù)據(jù)自動(dòng)生成的過(guò)程中,表格的數(shù)據(jù)源統(tǒng)一,當(dāng)使用者修改數(shù)據(jù)后,利用工具進(jìn)行表格的重新生成即可實(shí)現(xiàn)數(shù)據(jù)的同步更新,保證了數(shù)據(jù)的一致性。
(3)降低了培訓(xùn)成本。在實(shí)現(xiàn)的Excel VBA工具中,將體系文件所規(guī)定的命名規(guī)則和約束通過(guò)自動(dòng)化的方式實(shí)現(xiàn),無(wú)需人工記憶掌握,節(jié)省了人員培訓(xùn)成本。