中國船舶重工集團(tuán)公司第七一五研究所 趙旭瑞
針對(duì)目標(biāo)識(shí)別軟件在黑盒測試時(shí)遇到的測試覆蓋范圍小、驗(yàn)證不充分、測試執(zhí)行效率低等問題,將主流的線性腳本、結(jié)構(gòu)化腳本、數(shù)據(jù)驅(qū)動(dòng)、關(guān)鍵字驅(qū)動(dòng)等自動(dòng)化測試方法應(yīng)用其中。根據(jù)被測軟件的關(guān)鍵等級(jí)和測試條件,選擇適合的自動(dòng)化測試方法,提升軟件測試水平,提高被測軟件的質(zhì)量。
目標(biāo)識(shí)別軟件主要實(shí)現(xiàn)從時(shí)域信號(hào)提取跟蹤目標(biāo)特征信息,結(jié)合偵察結(jié)果、定位結(jié)果得出跟蹤目標(biāo)分類結(jié)果及置信度。存在多個(gè)輸入設(shè)備時(shí),還要實(shí)現(xiàn)多目標(biāo)信息的關(guān)聯(lián)。軟件運(yùn)行的網(wǎng)絡(luò)拓?fù)鋱D如圖1所示。主要的性能指標(biāo)是對(duì)不同目標(biāo)分類正確率的要求。

圖1 目標(biāo)識(shí)別軟件網(wǎng)絡(luò)拓?fù)鋱D
對(duì)于常規(guī)采用黑盒方式的配置項(xiàng)級(jí)測試,測試過程主要內(nèi)容為使用軟件開發(fā)組自己提供的幾個(gè)類型的目標(biāo)信號(hào)作為輸入,經(jīng)被測軟件特征分析及自動(dòng)分類處理后,在顯控軟件上查看輸出結(jié)果。功能類測試用例的預(yù)期結(jié)果主要為分類結(jié)果與的目標(biāo)類型一致;不同型號(hào)設(shè)備對(duì)同一目標(biāo)的分類結(jié)果可進(jìn)行融合判決。性能測試用例的預(yù)期結(jié)果主要為統(tǒng)計(jì)多次目標(biāo)分類執(zhí)行結(jié)果,計(jì)算出的分類正確率高于規(guī)定值。
在測試執(zhí)行中,大量的測試規(guī)程都圍繞“模擬某類目標(biāo)、查看預(yù)期分類結(jié)果”這項(xiàng)內(nèi)容,以及排列組合不同類型目標(biāo)得出統(tǒng)計(jì)結(jié)果。手動(dòng)逐項(xiàng)操作并逐個(gè)對(duì)結(jié)果進(jìn)行檢查是一種費(fèi)時(shí)費(fèi)力的做法,且難以保證記錄的準(zhǔn)確性和條件覆蓋的全面性。將測試規(guī)程抽象化,用自動(dòng)化測試的方法實(shí)現(xiàn)測試內(nèi)容的重復(fù)和結(jié)果正確性的比對(duì),可更高效全面地驗(yàn)證被測軟件。隨著測試數(shù)據(jù)的豐富和測試技巧的提升,可逐步使用線性腳本、數(shù)據(jù)驅(qū)動(dòng)、關(guān)鍵字驅(qū)動(dòng)等一系列方法,實(shí)現(xiàn)自動(dòng)化程度的提升。
線性腳本主要用來模擬手動(dòng)執(zhí)行測試時(shí)的動(dòng)作序列,測試執(zhí)行人員通過運(yùn)行腳本便可一鍵執(zhí)行一系列動(dòng)作。對(duì)于目標(biāo)識(shí)別軟件某個(gè)目標(biāo)(或某幾個(gè)組合目標(biāo))分類的線性腳本在設(shè)計(jì)測試的成本和測試執(zhí)行效率之間達(dá)到平衡,實(shí)現(xiàn)軟件測試水平的提升向驗(yàn)證測試規(guī)程,可用圖2所示的流程搭建成線性腳本。

圖2 目標(biāo)分類線性腳本流程圖
該方法是實(shí)現(xiàn)更繁雜腳本、更高層次自動(dòng)化的基礎(chǔ)。優(yōu)點(diǎn)是簡單易學(xué),一些測試工具可以圖形化操作甚至通過錄屏來實(shí)現(xiàn)手動(dòng)操作的流程轉(zhuǎn)化為腳本代碼,對(duì)于編程水平有限的使用者也可以輕松使用。缺點(diǎn)也很明顯,例如加載不同種類的目標(biāo)、存在多個(gè)不同目標(biāo)的組合時(shí)由于不同的約束條件和不同的操作步驟,將對(duì)應(yīng)有多個(gè)不同腳本,腳本的數(shù)量會(huì)較多;重復(fù)多次加載模擬目標(biāo)或者加載不同類型的模擬目標(biāo)時(shí),需要執(zhí)行多次或多個(gè)腳本,對(duì)于性能測試的分類正確率中要求統(tǒng)計(jì)大量多次運(yùn)行結(jié)果的場景,這種方法仍不夠高效。
結(jié)構(gòu)化腳本方法在線性腳本方法的基礎(chǔ)上,引入了腳本庫,便于對(duì)線性腳本的重用。對(duì)于目標(biāo)分類來說,可以將加載不同類型的模擬目標(biāo)分別制成基礎(chǔ)腳本。為了多次運(yùn)行時(shí)統(tǒng)計(jì)結(jié)果,將腳本輸出改為在識(shí)別正確時(shí)對(duì)應(yīng)類型目標(biāo)數(shù)加1,流程如圖3所示。將不同類型目標(biāo)識(shí)別分類的腳本存入腳本庫中,在性能測試的分類正確率計(jì)算腳本中,便可組合調(diào)用,統(tǒng)計(jì)結(jié)果后計(jì)算出識(shí)別率。以基本的A、B兩類目標(biāo)為例,共正身驗(yàn)證100個(gè)樣本,則流程圖如圖4所示。

圖3 A類目標(biāo)分類腳本

圖4 分類正確率計(jì)算腳本
結(jié)構(gòu)化腳本通過重用減少修改腳本的工作量,也降低了新建腳本的難度。該方法的應(yīng)用對(duì)腳本庫的管理和測試人員技能有一定要求,腳本應(yīng)做好文檔化,測試人員也應(yīng)具備一定的編輯能力。
數(shù)據(jù)驅(qū)動(dòng)方法是指在線性腳本方法的基礎(chǔ)上,將測試輸入提取出來存為一個(gè)或多個(gè)單獨(dú)的數(shù)據(jù)文件,通過編輯測試輸入文件來控制測試的廣度和深度。此時(shí)在目標(biāo)分類腳本的流程前增加“從數(shù)據(jù)文件中讀取目標(biāo)信息”,數(shù)據(jù)文件中主要設(shè)定加載目標(biāo)的種類、數(shù)量及順序,作為目標(biāo)分類數(shù)據(jù)驅(qū)動(dòng)的控制腳本,如圖5所示。性能測試的分類正確率便改為在目標(biāo)分類驅(qū)動(dòng)后增加計(jì)算識(shí)別率和驗(yàn)證是否達(dá)標(biāo)的流程,如圖6所示。需要增加測試的全面性和有效性則通過增加數(shù)據(jù)文件中的目標(biāo)種類、目標(biāo)數(shù)據(jù)的數(shù)值來實(shí)現(xiàn)。驗(yàn)證“多輸入目標(biāo)信息的關(guān)聯(lián)”功能在該方法下也會(huì)更容易實(shí)現(xiàn)自動(dòng)化,只需要在目標(biāo)分類流程中增加每輪識(shí)別的目標(biāo)結(jié)果與數(shù)據(jù)文件中該輪模擬目標(biāo)信息的比對(duì)即可。

圖5 目標(biāo)分類數(shù)據(jù)驅(qū)動(dòng)流程

圖6 分類正確率數(shù)據(jù)驅(qū)動(dòng)流程
該方法大大減少增加新測試用例的成本,使測試人員不需要過多依賴技術(shù)測試分析師(TTA),更適用在關(guān)鍵點(diǎn)、關(guān)鍵區(qū)域進(jìn)行更深入的測試。在管理輸入的數(shù)據(jù)文件并保證讀取接口的正確性方面需要投入更多精力。
關(guān)鍵字驅(qū)動(dòng)方法是指在數(shù)據(jù)驅(qū)動(dòng)方法的基礎(chǔ)上,將測試輸入的數(shù)據(jù)文件按具體業(yè)務(wù)提取出關(guān)鍵字,測試執(zhí)行時(shí)通過選擇關(guān)鍵字來對(duì)被測軟件對(duì)應(yīng)類別進(jìn)行測試。目標(biāo)識(shí)別軟件可應(yīng)用此方法從需求的不同角度設(shè)置如“A型設(shè)備目標(biāo)分類、B型設(shè)備目標(biāo)分類、水面目標(biāo)識(shí)別率、水下目標(biāo)識(shí)別率”等關(guān)鍵字,更宏觀地驗(yàn)證所關(guān)心的內(nèi)容,而詳細(xì)的測試用例由關(guān)鍵字文件來自動(dòng)生成。
該方法的目的是將測試的詳細(xì)步驟抽象,將測試用例的繁雜性隱藏在關(guān)鍵字中,使現(xiàn)場執(zhí)行的難度進(jìn)一步降低,同時(shí)也進(jìn)一步降低新增測試項(xiàng)的成本。關(guān)鍵字的名稱應(yīng)選擇對(duì)于測試人員和被測軟件有意義的字和詞,多用于表示與系統(tǒng)的高層業(yè)務(wù)交互。構(gòu)建關(guān)鍵字驅(qū)動(dòng)的前期需要投入較多精力,在復(fù)雜的大型系統(tǒng)中使用該方法會(huì)得到更大收益。
結(jié)束語:目標(biāo)識(shí)別軟件通過使用線性腳本、結(jié)構(gòu)化腳本、數(shù)據(jù)驅(qū)動(dòng)、關(guān)鍵字驅(qū)動(dòng)等一系列測試方法,可實(shí)現(xiàn)測試自動(dòng)化程度的逐步提升。根據(jù)被測軟件的關(guān)鍵等級(jí)、規(guī)模、測試輸入數(shù)據(jù)的豐富程度、測試工具的功能等因素,選擇適合的自動(dòng)化測試方法,在設(shè)計(jì)測試的成本和測試執(zhí)行效率之間達(dá)到平衡,實(shí)現(xiàn)軟件開發(fā)的降本增效。