中國(guó)船舶重工集團(tuán)公司第七一五研究所 趙旭瑞
針對(duì)目標(biāo)識(shí)別軟件在黑盒測(cè)試時(shí)遇到的測(cè)試覆蓋范圍小、驗(yàn)證不充分、測(cè)試執(zhí)行效率低等問(wèn)題,將主流的線性腳本、結(jié)構(gòu)化腳本、數(shù)據(jù)驅(qū)動(dòng)、關(guān)鍵字驅(qū)動(dòng)等自動(dòng)化測(cè)試方法應(yīng)用其中。根據(jù)被測(cè)軟件的關(guān)鍵等級(jí)和測(cè)試條件,選擇適合的自動(dòng)化測(cè)試方法,提升軟件測(cè)試水平,提高被測(cè)軟件的質(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í)測(cè)試,測(cè)試過(guò)程主要內(nèi)容為使用軟件開(kāi)發(fā)組自己提供的幾個(gè)類型的目標(biāo)信號(hào)作為輸入,經(jīng)被測(cè)軟件特征分析及自動(dòng)分類處理后,在顯控軟件上查看輸出結(jié)果。功能類測(cè)試用例的預(yù)期結(jié)果主要為分類結(jié)果與的目標(biāo)類型一致;不同型號(hào)設(shè)備對(duì)同一目標(biāo)的分類結(jié)果可進(jìn)行融合判決。性能測(cè)試用例的預(yù)期結(jié)果主要為統(tǒng)計(jì)多次目標(biāo)分類執(zhí)行結(jié)果,計(jì)算出的分類正確率高于規(guī)定值。
在測(cè)試執(zhí)行中,大量的測(cè)試規(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)確性和條件覆蓋的全面性。將測(cè)試規(guī)程抽象化,用自動(dòng)化測(cè)試的方法實(shí)現(xiàn)測(cè)試內(nèi)容的重復(fù)和結(jié)果正確性的比對(duì),可更高效全面地驗(yàn)證被測(cè)軟件。隨著測(cè)試數(shù)據(jù)的豐富和測(cè)試技巧的提升,可逐步使用線性腳本、數(shù)據(jù)驅(qū)動(dòng)、關(guān)鍵字驅(qū)動(dòng)等一系列方法,實(shí)現(xiàn)自動(dòng)化程度的提升。
線性腳本主要用來(lái)模擬手動(dòng)執(zhí)行測(cè)試時(shí)的動(dòng)作序列,測(cè)試執(zhí)行人員通過(guò)運(yùn)行腳本便可一鍵執(zhí)行一系列動(dòng)作。對(duì)于目標(biāo)識(shí)別軟件某個(gè)目標(biāo)(或某幾個(gè)組合目標(biāo))分類的線性腳本在設(shè)計(jì)測(cè)試的成本和測(cè)試執(zhí)行效率之間達(dá)到平衡,實(shí)現(xiàn)軟件測(cè)試水平的提升向驗(yàn)證測(cè)試規(guī)程,可用圖2所示的流程搭建成線性腳本。
圖2 目標(biāo)分類線性腳本流程圖
該方法是實(shí)現(xiàn)更繁雜腳本、更高層次自動(dòng)化的基礎(chǔ)。優(yōu)點(diǎn)是簡(jiǎn)單易學(xué),一些測(cè)試工具可以圖形化操作甚至通過(guò)錄屏來(lái)實(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ì)于性能測(cè)試的分類正確率中要求統(tǒng)計(jì)大量多次運(yùn)行結(jié)果的場(chǎng)景,這種方法仍不夠高效。
結(jié)構(gòu)化腳本方法在線性腳本方法的基礎(chǔ)上,引入了腳本庫(kù),便于對(duì)線性腳本的重用。對(duì)于目標(biāo)分類來(lái)說(shuō),可以將加載不同類型的模擬目標(biāo)分別制成基礎(chǔ)腳本。為了多次運(yùn)行時(shí)統(tǒng)計(jì)結(jié)果,將腳本輸出改為在識(shí)別正確時(shí)對(duì)應(yīng)類型目標(biāo)數(shù)加1,流程如圖3所示。將不同類型目標(biāo)識(shí)別分類的腳本存入腳本庫(kù)中,在性能測(cè)試的分類正確率計(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)化腳本通過(guò)重用減少修改腳本的工作量,也降低了新建腳本的難度。該方法的應(yīng)用對(duì)腳本庫(kù)的管理和測(cè)試人員技能有一定要求,腳本應(yīng)做好文檔化,測(cè)試人員也應(yīng)具備一定的編輯能力。
數(shù)據(jù)驅(qū)動(dòng)方法是指在線性腳本方法的基礎(chǔ)上,將測(cè)試輸入提取出來(lái)存為一個(gè)或多個(gè)單獨(dú)的數(shù)據(jù)文件,通過(guò)編輯測(cè)試輸入文件來(lái)控制測(cè)試的廣度和深度。此時(shí)在目標(biāo)分類腳本的流程前增加“從數(shù)據(jù)文件中讀取目標(biāo)信息”,數(shù)據(jù)文件中主要設(shè)定加載目標(biāo)的種類、數(shù)量及順序,作為目標(biāo)分類數(shù)據(jù)驅(qū)動(dòng)的控制腳本,如圖5所示。性能測(cè)試的分類正確率便改為在目標(biāo)分類驅(qū)動(dòng)后增加計(jì)算識(shí)別率和驗(yàn)證是否達(dá)標(biāo)的流程,如圖6所示。需要增加測(cè)試的全面性和有效性則通過(guò)增加數(shù)據(jù)文件中的目標(biāo)種類、目標(biāo)數(shù)據(jù)的數(shù)值來(lái)實(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)流程
該方法大大減少增加新測(cè)試用例的成本,使測(cè)試人員不需要過(guò)多依賴技術(shù)測(cè)試分析師(TTA),更適用在關(guān)鍵點(diǎn)、關(guān)鍵區(qū)域進(jìn)行更深入的測(cè)試。在管理輸入的數(shù)據(jù)文件并保證讀取接口的正確性方面需要投入更多精力。
關(guān)鍵字驅(qū)動(dòng)方法是指在數(shù)據(jù)驅(qū)動(dòng)方法的基礎(chǔ)上,將測(cè)試輸入的數(shù)據(jù)文件按具體業(yè)務(wù)提取出關(guān)鍵字,測(cè)試執(zhí)行時(shí)通過(guò)選擇關(guān)鍵字來(lái)對(duì)被測(cè)軟件對(duì)應(yīng)類別進(jìn)行測(cè)試。目標(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ì)的測(cè)試用例由關(guān)鍵字文件來(lái)自動(dòng)生成。
該方法的目的是將測(cè)試的詳細(xì)步驟抽象,將測(cè)試用例的繁雜性隱藏在關(guān)鍵字中,使現(xiàn)場(chǎng)執(zhí)行的難度進(jìn)一步降低,同時(shí)也進(jìn)一步降低新增測(cè)試項(xiàng)的成本。關(guān)鍵字的名稱應(yīng)選擇對(duì)于測(cè)試人員和被測(cè)軟件有意義的字和詞,多用于表示與系統(tǒng)的高層業(yè)務(wù)交互。構(gòu)建關(guān)鍵字驅(qū)動(dòng)的前期需要投入較多精力,在復(fù)雜的大型系統(tǒng)中使用該方法會(huì)得到更大收益。
結(jié)束語(yǔ):目標(biāo)識(shí)別軟件通過(guò)使用線性腳本、結(jié)構(gòu)化腳本、數(shù)據(jù)驅(qū)動(dòng)、關(guān)鍵字驅(qū)動(dòng)等一系列測(cè)試方法,可實(shí)現(xiàn)測(cè)試自動(dòng)化程度的逐步提升。根據(jù)被測(cè)軟件的關(guān)鍵等級(jí)、規(guī)模、測(cè)試輸入數(shù)據(jù)的豐富程度、測(cè)試工具的功能等因素,選擇適合的自動(dòng)化測(cè)試方法,在設(shè)計(jì)測(cè)試的成本和測(cè)試執(zhí)行效率之間達(dá)到平衡,實(shí)現(xiàn)軟件開(kāi)發(fā)的降本增效。