關(guān)鍵詞:回歸測(cè)試;覆蓋準(zhǔn)則;鯨魚優(yōu)化算法;擴(kuò)展有限狀態(tài)機(jī)
中圖分類號(hào):TP311.5 文獻(xiàn)標(biāo)志碼:A
0 引言(Introduction)
擴(kuò)展有限狀態(tài)機(jī)[1](EFSM)在刻畫軟件行為和結(jié)構(gòu)方面展現(xiàn)出顯著優(yōu)勢(shì),因此近年來(lái)基于EFSM的測(cè)試用例優(yōu)先排序技術(shù)逐漸成為主流。大多數(shù)測(cè)試用例優(yōu)先排序技術(shù)[2]都基于覆蓋率相關(guān)信息對(duì)測(cè)試用例進(jìn)行排序。然而,過(guò)去的研究大多使用單一覆蓋準(zhǔn)則進(jìn)行排序,少數(shù)研究雖然使用多種覆蓋準(zhǔn)則,但是也都是依靠人工經(jīng)驗(yàn)選擇所使用的覆蓋準(zhǔn)則。這種方式可能受到測(cè)試人員經(jīng)驗(yàn)和知識(shí)的限制,無(wú)法涵蓋所有可能的測(cè)試場(chǎng)景和覆蓋需求,導(dǎo)致選擇的覆蓋準(zhǔn)則可能并不全面或不足以應(yīng)對(duì)所有情況。同時(shí),測(cè)試需求和環(huán)境可能會(huì)隨著時(shí)間的推移而發(fā)生變化,而人工選擇的覆蓋準(zhǔn)則可能難以及時(shí)更新和調(diào)整以適應(yīng)新的需求和變化,導(dǎo)致測(cè)試方法存在局限性和過(guò)時(shí)性。因此,急需尋找一種高效的方法解決此問題。
1 相關(guān)理論(Related theory)
1.1 擴(kuò)展有限狀態(tài)機(jī)模型
擴(kuò)展有限狀態(tài)機(jī)模型是由一個(gè)六元組M =(S,S1,V,I,O,T)組成的,其中S是狀態(tài)集合,S1∈S是模型的初始狀態(tài),狀態(tài)是描述系統(tǒng)在不同時(shí)間點(diǎn)的運(yùn)行狀態(tài)。每個(gè)狀態(tài)都代表系統(tǒng)在特定條件下的一種行為。V是模型變量集合,I和O分別是輸入集合、輸出集合。T是變遷的有限集合,變遷定義了狀態(tài)之間的切換規(guī)則,即系統(tǒng)從一個(gè)狀態(tài)轉(zhuǎn)移到另一個(gè)狀態(tài)的條件和動(dòng)作。
1.4 突變分析
針對(duì)實(shí)驗(yàn)使用的每個(gè)擴(kuò)展有限狀態(tài)機(jī),研究人員使用突變測(cè)試技術(shù)[5]生成相應(yīng)的故障版本,該技術(shù)通過(guò)向正在測(cè)試的EFSM注入故障生成變異體。盡管真實(shí)的有故障EFSM 可能包含多個(gè)故障,但是本文每個(gè)變異體中只植入一個(gè)故障。這樣做是為了便于研究TCP(測(cè)試用例優(yōu)先排序)方法對(duì)每個(gè)真實(shí)故障的檢測(cè)能力,從而避免掩蓋效應(yīng)。
具體而言,本文采用突變操作符模擬真實(shí)的故障。在故障注入過(guò)程中,使用了3種常見類型的突變,即值突變、決策突變和語(yǔ)句突變。值突變涉及修改參數(shù)或常量的值,包括添加或減去值等操作。決策突變涉及更改轉(zhuǎn)換中的條件表達(dá)式,例如將“gt;”替換為“l(fā)t;”。語(yǔ)句突變涉及修改轉(zhuǎn)換中包含的語(yǔ)句,包括添加或刪除語(yǔ)句部分內(nèi)容,重新排列語(yǔ)句的相對(duì)位置等。這些突變涵蓋了經(jīng)典的突變操作符:條件運(yùn)算符替換、關(guān)系運(yùn)算符替換、表達(dá)式值替換、字面值替換、單語(yǔ)句刪除和算術(shù)運(yùn)算符替換。此外,應(yīng)用了單傳遞故障操作符,即將轉(zhuǎn)換的尾狀態(tài)修改為不同狀態(tài),用于生成變異體。這些突變操作是由研究人員先前開發(fā)的EFSM模型解析工具自動(dòng)生成的[6]。對(duì)于正在測(cè)試的EFSM的每個(gè)變異體,需要執(zhí)行該模型的測(cè)試套件以確定測(cè)試是否通過(guò)。具體而言,將正在測(cè)試的模型視為正確版本。測(cè)試用例在其相應(yīng)的變異體上執(zhí)行,并通過(guò)比較它們的輸出的差異得出最終的測(cè)試判定。
3 實(shí)驗(yàn)和結(jié)果(Experiment and result)
3.1 實(shí)驗(yàn)?zāi)繕?biāo)模型
我們?cè)O(shè)計(jì)了一系列的實(shí)驗(yàn),將提出的方法應(yīng)用于實(shí)際的EFSM模型,用來(lái)檢驗(yàn)CWTCP方法的故障檢錯(cuò)率。CWTCP方法利用Python語(yǔ)言實(shí)現(xiàn),實(shí)驗(yàn)運(yùn)行的平臺(tái)是Windows10的64位操作系統(tǒng)。為了使實(shí)驗(yàn)結(jié)果更具一般性,本文選擇了5個(gè)典型的EFSM 模型,分別是Monitor、INRES、Class Ⅱ、OLSR、SCP。以上目標(biāo)模型收集自目前已有的研究,表1列出了5個(gè)目標(biāo)模型對(duì)應(yīng)的屬性,“狀態(tài)數(shù)”欄是指目標(biāo)模型存在的狀態(tài)數(shù)量,“變遷數(shù)”欄是指 EFSM 模型中遷移的數(shù)量,“測(cè)試用例數(shù)”欄是實(shí)驗(yàn)使用的測(cè)試用例數(shù)量,“變異數(shù)”欄是實(shí)驗(yàn)使用的變異體數(shù)量。
3.2 實(shí)驗(yàn)研究問題
RQ1:基于覆蓋準(zhǔn)則的優(yōu)先排序相對(duì)于隨機(jī)排序在故障檢測(cè)率方面是否具有顯著優(yōu)勢(shì)? 這個(gè)問題可以確定在EFSM 模型中引入基于覆蓋準(zhǔn)則的優(yōu)先排序是否有效。
RQ2:CWTCP方法在故障檢測(cè)率方面是否具有顯著優(yōu)勢(shì)? 這個(gè)問題可以確定CWTCP方法是否有效。
3.3 實(shí)驗(yàn)結(jié)果與分析
針對(duì)RQ1,以APFD值作為故障檢測(cè)能力的評(píng)價(jià)指標(biāo)設(shè)計(jì)了實(shí)驗(yàn)1,其實(shí)驗(yàn)結(jié)果如圖2所示。從圖2中可以直觀地觀察到,在每個(gè)EFSM 中基于覆蓋準(zhǔn)則的平均APFD值均大于隨機(jī)排序?;诟采w準(zhǔn)則的優(yōu)先排序的最小APFD值為0.647,遠(yuǎn)高于隨機(jī)排序(0.386)?;诟采w準(zhǔn)則的平均APFD值為0.892,比隨機(jī)排序高16.4%。在M1中,SC的平均值和最大值表現(xiàn)最好,TC和TPC的表現(xiàn)相似;在M2中,TC的平均值和標(biāo)準(zhǔn)差表現(xiàn)更好;在M3和M4中,TC表現(xiàn)最好;在M5中,TC和TPC表現(xiàn)相似,這可能是因?yàn)槟P妥冞w較少而導(dǎo)致的。
總體看來(lái),TC的最小APFD值比OLP高13.4%,平均APFD值比SC高7.34%,標(biāo)準(zhǔn)差比TPC低9.4%。可以看出,TC在每個(gè)EFSM 中的性能最好,TPC次之,而LFP和OLP具有相似的性能。這些對(duì)比結(jié)果表明,相較于隨機(jī)排序,基于覆蓋準(zhǔn)則的優(yōu)先排序在APFD值方面有了顯著的提升。造成這一差異的原因可能是基于覆蓋準(zhǔn)則的優(yōu)先排序能充分利用了來(lái)自EFSM的信息。因此,將基于覆蓋準(zhǔn)則的優(yōu)先排序技術(shù)引入MBTCP是可行的。
針對(duì)RQ2,以APFD值作為故障檢測(cè)能力的評(píng)價(jià)指標(biāo)設(shè)計(jì)了實(shí)驗(yàn)2,實(shí)驗(yàn)2中,鯨魚優(yōu)化算法的相關(guān)參數(shù)均設(shè)置為與原論文(The Whale Optimization Algorithm)相同,Random為隨機(jī)選擇覆蓋準(zhǔn)則進(jìn)行多輪排序,其實(shí)驗(yàn)結(jié)果如圖3所示。從圖3中可以直觀地觀察到,CWTCP方法相比于隨機(jī)選擇覆蓋準(zhǔn)則,可以有效地提高故障檢錯(cuò)率。CWTCP的最小APFD值為0.797,高于隨機(jī)選擇(0.722),平均APFD值為0.918,比隨機(jī)排序高1.8%。在M1中,CWTCP的最大APFD值為0.951,平均APFD 值為0.904,比Random 高2.2%,平均值比Random高2.6%;在M2和M4中,CWTCP的各項(xiàng)指標(biāo)都比隨機(jī)選擇高;在M5中,CWTCP與隨機(jī)選擇有相同的最大值。這些對(duì)比結(jié)果表明,相較于隨機(jī)選擇,CWTCP在APFD值方面取得了顯著的提升。與隨機(jī)選擇相比,這種差異的根源在于鯨魚優(yōu)化算法的有效性。該算法能夠有效地發(fā)現(xiàn)具有顯著差異的覆蓋準(zhǔn)則。因此,在多輪排序中采用不同的覆蓋準(zhǔn)則,可以更有效地提高故障檢測(cè)率。
4 結(jié)論(Conclusion)
本研究提出了一種基于EFSM 模型的測(cè)試用例優(yōu)先排序方法CWTCP,通過(guò)引入鯨魚優(yōu)化算法,該方法能夠有效挑選出差異性較大的覆蓋準(zhǔn)則序列,從而優(yōu)化測(cè)試用例的執(zhí)行順序,并顯著提高了故障檢測(cè)率。該方法的創(chuàng)新性在于將優(yōu)化算法與測(cè)試用例排序相結(jié)合,充分利用了EFSM模型的特性。實(shí)驗(yàn)結(jié)果表明,CWTCP方法相對(duì)于傳統(tǒng)方法具有明顯的優(yōu)勢(shì),為軟件測(cè)試過(guò)程的改進(jìn)提供了有力支持。未來(lái)的研究將重點(diǎn)關(guān)注更多的覆蓋準(zhǔn)則,并探索針對(duì)更大規(guī)模和更復(fù)雜EFSM的測(cè)試用例優(yōu)先排序策略,以進(jìn)一步提升故障檢測(cè)的準(zhǔn)確性和效率。
作者簡(jiǎn)介:
何展翔(1998-),男,碩士生。研究領(lǐng)域:軟件測(cè)試。
舒挺(1979-),男,博士,副教授。研究領(lǐng)域:軟件測(cè)試,網(wǎng)絡(luò)協(xié)議測(cè)試。