,, ,,
(1.浙江理工大學(xué) 信息學(xué)院, 杭州 310018; 2.山口大學(xué) 東亞研究科, 日本 山口 753-8513)
組合測(cè)試已廣泛應(yīng)用于軟件測(cè)試中,該方法能夠縮減測(cè)試用例的規(guī)模[1]。由于軟件產(chǎn)品更新?lián)Q代的頻率逐漸上升,對(duì)組合測(cè)試用例進(jìn)行完全測(cè)試的成本不斷增加[2]。針對(duì)此問題,將優(yōu)先級(jí)技術(shù)[3-4]引入到組合測(cè)試內(nèi),能夠在軟件測(cè)試過程中,提高測(cè)試效率。Kuhn等人[5]發(fā)現(xiàn)組合測(cè)試中,兩個(gè)參數(shù)相互組合所生成的用例可以檢測(cè)出70%的錯(cuò)誤,90%以上的錯(cuò)誤可由三個(gè)以內(nèi)參數(shù)相互組合找出。圍繞組合測(cè)試用例優(yōu)先級(jí)排序問題已有相應(yīng)研究:Bryce等人[6]利用單一組合覆蓋信息實(shí)現(xiàn)組合測(cè)試用例的排序問題;黃如兵等[7]從多重組合覆蓋情況角度保證測(cè)試的有序進(jìn)行;王子元等[8]提出了以組合權(quán)重和測(cè)試代價(jià)為標(biāo)準(zhǔn)的組合測(cè)試用例優(yōu)先級(jí)排序的方法。
目前,針對(duì)可變力度的組合測(cè)試用例優(yōu)先級(jí)排序方法的研究仍然較少,排序過程中組合力度選取困難,且當(dāng)前固定力度組合測(cè)試用例的優(yōu)先級(jí)排序方法無法滿足復(fù)雜的交互關(guān)系,因此結(jié)合局部組合覆蓋率、測(cè)試用例失效率和測(cè)試用例的重要程度,避免優(yōu)先級(jí)排序因素單一;利用測(cè)試過程中的反饋信息,實(shí)現(xiàn)優(yōu)先級(jí)在線排序;本文提出了一種基于OTT策略思想的可變力度組合測(cè)試用例優(yōu)先級(jí)在線排序方法。
待測(cè)軟件系統(tǒng)(Software Under Test,SUT)中,組合測(cè)試內(nèi)部影響因子的相互關(guān)系并非完全一致,部分影響因子之間的相互作用可能更加緊密[9],僅依靠固定力度的組合測(cè)試優(yōu)先級(jí)排序方法無法滿足影響因子之間這種復(fù)雜的交互關(guān)系。假設(shè)存在n個(gè)影響因素,這些影響因子構(gòu)成一個(gè)有限集合F={f1,f2,…fn},其中每個(gè)影響因素fi的取值為vi={p1,p2,…pj}。那么,SUT的一條測(cè)試用例tc={x1,x2,…xn}(x1∈v1,x2∈v2,…xn∈vn)。為了更好地描述可變力度組合測(cè)試用例優(yōu)先級(jí)排序方法,對(duì)本文出現(xiàn)的相關(guān)概念進(jìn)行如下描述:初始測(cè)試用例序列St0表示組合測(cè)試用例排序之前,測(cè)試用例序列的集合,一般為φ。初始測(cè)試用例集Tt0={tc1,tc2,…tcN}是針對(duì)SUT,根據(jù)組合測(cè)試方法及可變強(qiáng)度覆蓋表VSCA(N,λm,n,F,CA(N′,λs,n′,F′))生成的測(cè)試用例集合。顯然,1≤λm<λs≤|F′| 可變力度的組合測(cè)試用例優(yōu)先級(jí)中,需考慮組合覆蓋率的影響。然而,如何在影響因子集下選取一個(gè)合適的組合力度作為衡量組合覆蓋率的標(biāo)準(zhǔn)成為了難題。研究表明[7]:若選取λm為組合覆蓋力度,當(dāng)覆蓋了所有λm組合后,優(yōu)先級(jí)的選取演變成了隨機(jī)排序方式;若選取λs為組合覆蓋力度,則忽略了影響因子集F′中λm的組合覆蓋情況;若選取的組合覆蓋力度介于λm與λs之間,則面臨了上述兩種問題。故根據(jù)不同的組合覆蓋力度,需考慮不同局部影響因子集下組合測(cè)試用例的組合覆蓋率情況。測(cè)試用例的優(yōu)先級(jí)排序中,用例的缺陷檢測(cè)能力往往是一個(gè)衡量測(cè)試執(zhí)行效率的重要標(biāo)準(zhǔn),大量研究[10-11]中也通過觀察測(cè)試執(zhí)行的失效情況來評(píng)判測(cè)試用例的缺陷檢測(cè)能力。而實(shí)際測(cè)試過程中,測(cè)試人員通常需要根據(jù)需求分析或概要設(shè)計(jì)來分辨測(cè)試用例在此次測(cè)試執(zhí)行過程中的重要程度。為了盡快滿足可變力度的組合覆蓋要求和缺陷的檢測(cè)能力,實(shí)現(xiàn)SUT設(shè)計(jì)文檔的需求,本文引入局部組合覆蓋率、測(cè)試用例失效率和測(cè)試用例重要程度這3個(gè)排序因素確定可變力度的組合測(cè)試用例的優(yōu)先級(jí)問題。 1)局部組合覆蓋率(Locally-Interaction-Coverage Rate,LICR),局部組合覆蓋率是當(dāng)前時(shí)刻下測(cè)試用例在局部影響因子集中覆蓋所有λ元組合,且這些λ元組合尚未被測(cè)試用例序列覆蓋的概率。 LICR(λ,ti,F′)(tc,Sti-1)= (1) 其中:CombSet(λ,F′)(tc)是測(cè)試用例tc在F′中覆蓋所有λ元組合的集合,UncovCombSet(λ,F′)(Sti-1)是測(cè)試用例序列Sti-1在F′中未覆蓋所有λ元組合的集合,n為F′中影響因子的個(gè)數(shù)。當(dāng)F′=F時(shí),局部組合覆蓋率LICR(λ,ti,F′)(tc,Sti-1)即為測(cè)試用例tc在ti時(shí)刻的λ元組合覆蓋率。 為了便于對(duì)局部組合覆蓋率的理解,給出圖1所示的計(jì)算實(shí)例。當(dāng)前存在5個(gè)影響因子F={f1,f2,f3,f4,f5},每個(gè)因素分別有兩種取值。St3中已經(jīng)執(zhí)行了三個(gè)測(cè)試用例,Tt3中余下測(cè)試用例tc1和tc2。t4時(shí)刻,λ=2時(shí),局部影響因子集F′={f1,f3,f4,f5}分別計(jì)算LICR(2,t4,F′)(tc1,St3)和LICR(2,t4,F′)(tc2,St3)。 圖1 局部組合覆蓋率計(jì)算實(shí)例 2)測(cè)試用例失效率(test case failure rate,F(xiàn)R),測(cè)試用例失效率是當(dāng)前時(shí)刻下測(cè)試用例局部影響因子集F′中所有影響因子對(duì)應(yīng)參數(shù)取值失效率的平均值。參數(shù)取值失效率FR(tc,ti,F′)(fk,p)是ti時(shí)刻測(cè)試用例tc在影響因子集F′中,fk對(duì)應(yīng)取值為p的失效率。用m(tc,ti,F′)表示取值失效個(gè)數(shù),即測(cè)試用例tc在局部影響因子集F′中,ti時(shí)刻參數(shù)取值失效率不為0的參數(shù)取值個(gè)數(shù),即FR(tc,ti,F′)(fk,p)≠0的參數(shù)取值個(gè)數(shù)。那么ti時(shí)刻下,測(cè)試用例失效率FR(tc,ti,F′)計(jì)算公式如下: (2) 其中:fk∈F′,∑FR(tc,ti,F′)(fk,p)是計(jì)算局部影響因子集F′中所有fk對(duì)應(yīng)取值為p失效率之和。 表1 某組合空間配置在ti-1時(shí)刻參數(shù)取值失效率的情況 測(cè)試過程中,測(cè)試用例序列和測(cè)試用例集中測(cè)試用例的個(gè)數(shù)不斷發(fā)生變化,使得局部組合覆蓋率也不斷發(fā)生變化。優(yōu)先執(zhí)行局部組合覆蓋率較大的測(cè)試用例,能夠保證盡快滿足組合覆蓋率的要求。若ti-1(i≥1)時(shí)刻所選取的測(cè)試用例為Ati-1,那么在該測(cè)試用例執(zhí)行測(cè)試后,測(cè)試用例序列Sti-1和測(cè)試用例集Tti-1都發(fā)生了改變,進(jìn)而得到每個(gè)測(cè)試用例在當(dāng)前時(shí)刻下的覆蓋組合集CombSet和未覆蓋組合集UncovCombSet,并為下一次求解局部組合覆蓋率做準(zhǔn)備。 其中,ti時(shí)刻的測(cè)試用例序列Sti以ti-1時(shí)刻執(zhí)行的測(cè)試用例Ati-1順序插入到ti-1時(shí)刻的測(cè)試序列Sti-1的形式表示,如公式(3)所示。 Sti=Sti-1?Ati-1,Ati-1∈Tti-1 (3) ti時(shí)刻的測(cè)試用例集Tti通過測(cè)試用例Ati-1從ti-1時(shí)刻的測(cè)試用例集Tti-1中移除得到,如公式(4)所示。 Tti=Tti-1-Ati-1,Ati-1∈Tti-1 (4) ti時(shí)刻,未覆蓋λ元組合集UncovCombSet(λ,F′)(Sti)是通過移除測(cè)試用例Ati-1在ti-1時(shí)刻覆蓋了測(cè)試用例序列Sti尚未覆蓋的λ元組合集而得,如公式(5)所示。 UncovCombSet(λ,F′)(Sti)=UncovCombSet(λ,F′)(Sti-1)- (UncovCombSet(λ,F′)(Sti-1)∩CombSet(λ,F′)(Ati-1)), Ati-1∈Tti-1 (5) 每執(zhí)行一個(gè)測(cè)試用例,都需要對(duì)當(dāng)前測(cè)試用例序列、測(cè)試用例集和每個(gè)測(cè)試用例的局部組合覆蓋率了進(jìn)行更新,執(zhí)行完測(cè)試用例Ati-1后,每個(gè)測(cè)試用例的局部組合覆蓋率的計(jì)算公式如(6)所示。 LICR(λ,ti,F′)(tc,Sti)= (6) 實(shí)際測(cè)試中,當(dāng)前測(cè)試用例的執(zhí)行結(jié)果能夠反饋出SUT存在的問題。研究表明,相同組合影響因子的參數(shù)取值引起的失效,可能隱藏了更多的錯(cuò)誤,并且可以會(huì)檢測(cè)出相同或者類似的錯(cuò)誤[12-13]。測(cè)試用例的執(zhí)行能夠發(fā)現(xiàn)存在的錯(cuò)誤與缺陷,那么測(cè)試用例在當(dāng)前選取的局部影響因子集F′中所覆蓋的參數(shù)取值的失效率需要做出相應(yīng)的調(diào)整,以保證測(cè)試用例失效率能夠?qū)崟r(shí)計(jì)算,確保最終優(yōu)先級(jí)排序的準(zhǔn)確性。若ti-1(i≥1)時(shí)刻,測(cè)試用例Cti-1檢測(cè)出SUT中存在缺陷,測(cè)試結(jié)果只能反應(yīng)軟件失效,但無法判斷究竟是由哪些參數(shù)相互作用引發(fā)的失效。因此,只能對(duì)Cti-1覆蓋部分影響因子集F′中所有參數(shù)取值的失效率相應(yīng)增加,其他參數(shù)取值的失效率保持不變。則ti時(shí)刻,各參數(shù)取值失效率可用以下公式進(jìn)行調(diào)整: (7) 其中:Δc是一個(gè)較小的常量。 若ti-1時(shí)刻,測(cè)試用例Cti-1未檢測(cè)出SUT中存在缺陷,測(cè)試結(jié)果能夠反應(yīng)出當(dāng)前測(cè)試用例中所有參數(shù)取值不會(huì)對(duì)SUT造成缺陷,則該測(cè)試用例覆蓋局部影響因子集F′中所有參數(shù)取值的失效率變?yōu)?,其他參數(shù)取值的失效率保持不變。則ti時(shí)刻,各參數(shù)取值失效率可用以下公式進(jìn)行調(diào)整: (8) 為了便于對(duì)局部影響因子集F′中參數(shù)取值失效率在線調(diào)整的過程,通過以下示例對(duì)其做出解釋。參數(shù)取值失效率情況見表1。若當(dāng)前測(cè)試用例tc={5,1,2,8,4}在ti-1時(shí)刻檢測(cè)出SUT中存在缺陷,測(cè)試時(shí)對(duì)應(yīng)的局部影響因子集F′={f1,f3,f4,f5},此時(shí)需要對(duì)測(cè)試用例tc覆蓋部分影響因子集F′中所有參數(shù)取值的失效率相應(yīng)增加Δc,故這個(gè)組合空間配置參加取值失效率發(fā)生變化,則ti時(shí)刻參數(shù)取值失效率的情況如表2;同理,若tc未檢測(cè)出缺陷,相應(yīng)參數(shù)取值失效率變?yōu)?即可。 表2 某組合空間配置在ti時(shí)刻的參數(shù)取值失效率情況 在組合測(cè)試過程中,由于OTT策略高效、簡(jiǎn)單、便于擴(kuò)展等特點(diǎn)[14],使得該策略在組合測(cè)試中得到了廣泛的應(yīng)用,其在組合測(cè)試用例優(yōu)先級(jí)排序中的作用也不容忽視。張娜等人[15]在固定力度組合測(cè)試用例優(yōu)先級(jí)排序算法中,結(jié)合了OTT策略,使得排序后的測(cè)試用例具有更強(qiáng)的缺陷檢測(cè)能力。為此,有必要進(jìn)一步對(duì)OTT策略在可變力度的組合測(cè)試用例優(yōu)先級(jí)排序中的應(yīng)用進(jìn)行研究。Cohen等人[16]在組合測(cè)試的研究中,利用OTT策略構(gòu)建了Greedy算法的框架。該策略為一維擴(kuò)展機(jī)制,本文結(jié)合該策略構(gòu)建了可變力度組合測(cè)試用例優(yōu)先級(jí)排序的算法框架,即每次選取當(dāng)前優(yōu)先級(jí)最高的測(cè)試用例用于執(zhí)行。本文OTT策略的可變力度組合測(cè)試用例優(yōu)先級(jí)排序算法框架流程圖見圖2。 圖2 OTT策略基本算法框架流程圖 隨著軟件版本更新升級(jí)速度的提升,對(duì)測(cè)試效率的要求也隨之增高。由于資源時(shí)間等的限制,目前的情形無法達(dá)到完全測(cè)試的目標(biāo),那么如何選取測(cè)試用例用于執(zhí)行、測(cè)試用例的執(zhí)行順序顯得尤為重要。本文結(jié)合OTT策略將可變力度的組合測(cè)試用例優(yōu)先級(jí)排序方法轉(zhuǎn)換成綜合考慮多個(gè)優(yōu)先級(jí)排序影響因素共同計(jì)算優(yōu)先級(jí)、每次選取當(dāng)前優(yōu)先級(jí)最高的用例用于執(zhí)行的問題。為了盡快滿足可變力度組合測(cè)試在不同影響因子集下的組合覆蓋率,盡可能選取局部組合覆蓋率較高的測(cè)試用例;同時(shí),提高缺陷檢測(cè)的能力,要求優(yōu)先考慮測(cè)試用例失效率較高的測(cè)試用例;并且,測(cè)試用例的設(shè)計(jì)和生成過程中,本身存在一定的優(yōu)先級(jí),測(cè)試人員可結(jié)合需求設(shè)計(jì)文檔或憑借測(cè)試經(jīng)驗(yàn),給組合測(cè)試用例賦予一定的重要程度。那么,不同參數(shù)取值的重要程度本身存在差異,使用參數(shù)取值重要程度的加權(quán)平均值作為測(cè)試用例重要程度的計(jì)算。根據(jù)OTT策略基本算法框架擴(kuò)展組合測(cè)試用例優(yōu)先級(jí)排序算法,每次選擇出當(dāng)前優(yōu)先級(jí)最高的測(cè)試用例。測(cè)試用例重要程度I(tc,F′)是測(cè)試用例tc的重要程度,即測(cè)試用例在局部影響因子集F′所有影響因子對(duì)應(yīng)取值權(quán)重的平均值。參數(shù)取值重要程度ω(fk,p)是影響因子fk中,取值為p的重要程度。 那么,測(cè)試用例tc在ti時(shí)刻的優(yōu)先級(jí)Pr由測(cè)試用例的局部組合覆蓋率、測(cè)試用例失效率和測(cè)試用例重要程度這三個(gè)排序因素共同決定,并利用權(quán)重因子,以便不同測(cè)試環(huán)境下對(duì)這三個(gè)排序因素比重做出相應(yīng)調(diào)整,保證該方法能夠廣泛的用于軟件測(cè)試中。優(yōu)先級(jí)計(jì)算方法如下所示: Pr(tc,ti)=α·LICR(λ,ti,F′)(tc,Sti-1)+ β·FR(tc,ti,F′)+γ·I(tc,F′) (9) 其中:α、β、γ分別表示局部組合覆蓋率、測(cè)試用例失效率和測(cè)試用例重要程度的權(quán)重因子,實(shí)際測(cè)試過程中可根據(jù)具體情況相應(yīng)調(diào)整,只有保證α+β+γ=1即可。測(cè)試用例的重要程度使用每個(gè)參數(shù)取值重要程度的平均值進(jìn)行計(jì)算。通過上述公式的描述,測(cè)試用例tc在ti時(shí)刻的優(yōu)先級(jí)Pr(tc,ti)實(shí)際可以表示成如下形式: Pr(tc,ti)= (10) 其中:fk∈F′,n為F′中影響因子的個(gè)數(shù),∑ω(fk,p)是計(jì)算計(jì)算局部影響因子集F′中所有fk對(duì)應(yīng)取值為p重要程度之和。 測(cè)試用例tc在ti時(shí)刻優(yōu)先級(jí)Pr計(jì)算過程中,還應(yīng)當(dāng)考慮當(dāng)前影響因子集如何選取的問題,此問題是可變力度的組合測(cè)試用例優(yōu)先級(jí)計(jì)算時(shí)必須著重討論的。ti時(shí)刻,當(dāng)所有λm元組合還未被測(cè)試用例序列Sti-1所覆蓋時(shí),考慮影響因子集F上λm元的組合覆蓋率;若此時(shí)所有λm元組合均被測(cè)試用例序列Sti-1所覆蓋,則不再考慮影響因子集F上λs元組合覆蓋情況,而是僅考慮影響因子集F′上λs元的組合覆蓋率。 基于OTT策略的可變力度組合測(cè)試用例優(yōu)先級(jí)排序算法(Variable Combinatorial Test Case Prioritization Based Strategy of One-test-at-a-time,VCPO)如下所示。 算法1:VCPO算法。 輸入:初始測(cè)試用例集Tt0,組合測(cè)試覆蓋表VSCA(N,λm,n,F,CA(N′,λs,n′,F′))。 輸出:測(cè)試用例序列Sti。 1)St0=φ;i=0; 2)while |Sti|≠Ndo//未達(dá)到測(cè)試目標(biāo) 3)highest=0; 4)TestCase=φ;//當(dāng)前優(yōu)先級(jí)最高的測(cè)試用例集 5)R=F;λ=λm; 6)for each elemente∈(Tti\Sti)do //e在(初始)候選測(cè)試用例集Tti中,但不在測(cè)試用例序列Sti中 7)ifR==F&&λ==λm&&UncovCombSet(λ,R)(St)≠φ //根據(jù)測(cè)試用例序列Sti中覆蓋組合情況,選擇影響因子集和測(cè)試力度 8)R=F;λ=λm; 9)else 10)R=F′;λ=λs; 11)priority=α·LICR(λ,ti+1,R)(e,Sti)+β·FR(e,ti+1,R)+γ·I(e,R); 12)ifpriority≥highestthen 13)TestCase=φ; 14)highest=priority; 15)TestCase=TestCase∪{e}; 16)end if 17)end for 18)tc=random(TestCase); //在TestCase隨機(jī)選取一個(gè)測(cè)試用例 19)執(zhí)行測(cè)試用例tc; 20)iftcis false then //測(cè)試用例檢測(cè)出缺陷,按照公式(7)調(diào)整失效率 21)for each elementfk∈Rdo 22)for each elementp∈fkdo 23)ifp∈tcthen FR(tc,ti+1,R)(fk,p)=FR(tc,ti,R)(fk,p)+Δc; 24)elseFR(tc,ti+1,R)(fk,p)=FR(tc,ti,R)(fk,p); 25)end for 26)end for 27)else //測(cè)試用例未檢測(cè)出缺陷,按照公式(8)調(diào)整失效率 28)for each elementfk∈Rdo 29)for each elementp∈fkdo 30)ifp∈tcthenFR(tc,ti+1,R)(fk,p)=0; 31)elseFR(tc,ti+1,R)(fk,p)=FR(tc,ti,R)(fk,p); 32)end for 33)end for 34)i++; 35)Sti=Sti-1?{tc}; //將測(cè)試用例tc有序插入到測(cè)試用例序列S中 36)Tti=Tti-1-{tc}; //將測(cè)試用例tc從測(cè)試用例集T中刪除 37)UncovCombSet(λ,R)(Sti)=UncovCombSet(λ,R)(Sti-1)-(UncovCombSet(λ,R)(Sti-1)∩CombSet(λ,R)(tc)); 38)end while 39)returnSti; 為了驗(yàn)證所述方法的有效性,選取以下兩個(gè)組合空間配置VSCA1(N,λm,8,435362,CA(N′,λs,7,435361))和VSCA2(N,λm,9,1019181716151413121,CA(N′,λs,5,6151413121)),分別采用Random、ICBP、GISVSP、LISVSP和本文所述方法對(duì)其缺陷檢測(cè)能力進(jìn)行比較。由于實(shí)際測(cè)試過程中,無法執(zhí)行組合測(cè)試用例集里所有的測(cè)試用例,且組合測(cè)試用例集不能檢測(cè)出SUT中所有的缺陷,故缺陷檢測(cè)能力采用文獻(xiàn)[17]提出的標(biāo)準(zhǔn)化的測(cè)試用例序列度量標(biāo)準(zhǔn)(NAPFD)。VSCA1和VSCA2在ACTS工具下生成的測(cè)試用例情況如表3。 表3 ACTS生成的可變力度組合測(cè)試用例集大小 對(duì)于上述方法及組合空間配置的情況,為取得適合本文組合空間配置的權(quán)重因子α、β、γ,多次實(shí)驗(yàn)以調(diào)整優(yōu)先級(jí)。并且在測(cè)試過程中,每組權(quán)重因子下,分別多次模擬測(cè)試,記錄每次測(cè)試的運(yùn)行結(jié)果,用于計(jì)算上述方法的NAPFD值。實(shí)驗(yàn)對(duì)比后,本文對(duì)α、β、γ的取值分別為0.41、0.35、0.24,且對(duì)比每種方法在實(shí)驗(yàn)中NAPFD的最大值和平均值。測(cè)試過程中某個(gè)測(cè)試用例發(fā)現(xiàn)缺陷時(shí),則該測(cè)試用例覆蓋影響因子集中的所有參數(shù)取值失效率需相應(yīng)增加Δc,實(shí)驗(yàn)中Δc的取值為0.1。ICBP方法是固定力度組合測(cè)試用例優(yōu)先級(jí)排序方法,則選取不同組合力度,以觀察力度選取的影響。實(shí)驗(yàn)結(jié)果如表4。 上述表中,ICBP-λ=n為ICBP方法在測(cè)試時(shí),選擇組合力度為n的情況;下劃線、加粗為每行中最大值;下劃線、斜體為每行中次最大值;“-”為不存在的情況,無實(shí)驗(yàn)數(shù)據(jù)。 從表中描述的所有實(shí)驗(yàn)結(jié)果的Max和Avg可以看到,Random、ICBP方法,在可變力度組合測(cè)試的缺陷檢測(cè)能力上幾乎無任何優(yōu)勢(shì)??勺兞Χ鹊慕M合測(cè)試用例優(yōu)先級(jí)排序方法中,GISVSP方法相較于LISVSP方法有更高的最大值;VCPO方法則在最大值和平均值上都占有一定優(yōu)勢(shì),且在每行的最大值和次最大值中都能夠有較高的NAPFD值,因此缺陷檢測(cè)能力相對(duì)較高。 因此可得到如下結(jié)論: 1)Random和固定力度組合測(cè)試優(yōu)先級(jí)排序方法ICBP在可變力度組合測(cè)試優(yōu)先級(jí)排序中不適用,原因在于無法選取合適的組合力度用于測(cè)試; 2)可變力度的組合測(cè)試用例優(yōu)先級(jí)排序方法中,GISVSP方法和LISVSP方法不會(huì)面臨組合力度選取困難的問題,能夠適用于可變力度的組合測(cè)試優(yōu)先級(jí)的排序,但其僅考慮組合覆蓋率的情況,排序因素單一,故缺陷檢測(cè)能力沒有表現(xiàn)為最優(yōu)。 3)可變力度的組合測(cè)試用例優(yōu)先級(jí)排序方法中,VCPO方法能夠解決組合力度選取的難題和排序因素單一的問題,使得排序結(jié)果相對(duì)穩(wěn)定。實(shí)驗(yàn)結(jié)果表明,該方法在大多數(shù)情況下缺陷檢測(cè)能力比其它排序方法更優(yōu)。 目前組合測(cè)試領(lǐng)域中,因?qū)嶋H測(cè)試中各影響因子間相對(duì)復(fù)雜的交互關(guān)系,可變力度的組合測(cè)試備受青睞,眾多研究者關(guān)注于可變力度的組合測(cè)試用例優(yōu)先級(jí)排序的問題。本文提出了一種基于OTT策略的可變力度組合測(cè)試用例優(yōu)先級(jí)排序方法,該方法能夠更為廣泛的適用于可變力度的組合測(cè)試中,且結(jié)合了多個(gè)排序因素,利用在線的測(cè)試反饋信息,在符合實(shí)際的測(cè)試過程的前提下,進(jìn)一步提升了缺陷檢測(cè)能力。 由于測(cè)試過程中,本文提出的方法存在不夠理想的實(shí)驗(yàn)結(jié)果,且α、β、γ的權(quán)重比值需人為分配,實(shí)驗(yàn)中Δc的取值相對(duì)固定,后期希望能夠選取更合適的排序因素且結(jié)合自適應(yīng)的方法進(jìn)行在線調(diào)整權(quán)重因子和Δc的取值。 表4 五種優(yōu)先級(jí)排序算法在不同組合空間配置下的NAPFD(%)2 優(yōu)先級(jí)排序因素在線調(diào)整策略
2.1 局部組合覆蓋率調(diào)整方法設(shè)計(jì)
2.2 測(cè)試用例失效率調(diào)整方法設(shè)計(jì)
3 組合測(cè)試用例優(yōu)先級(jí)排序方法分析
3.1 OTT基本算法框架
3.2 優(yōu)先級(jí)排序方法設(shè)計(jì)
4 實(shí)驗(yàn)與總計(jì)
4.1 實(shí)驗(yàn)數(shù)據(jù)與結(jié)果分析
4.2 總結(jié)