亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        面向WS-BPEL程序的變異測試優(yōu)化技術(shù)

        2019-04-18 05:15:34孫昌愛
        計算機(jī)研究與發(fā)展 2019年4期
        關(guān)鍵詞:測試用例二階實例

        孫昌愛 王 真 潘 琳

        1(北京科技大學(xué)計算機(jī)與通信工程學(xué)院 北京 100083)2 (宇航智能控制技術(shù)重點(diǎn)實驗室 北京 100854)

        面向服務(wù)的架構(gòu)(service-oriented architecture, SOA)已經(jīng)成為分布式應(yīng)用程序的主要開發(fā)范式[1].由于單一的Web服務(wù)提供的功能有限,無法滿足復(fù)雜需求,因此需要將多個服務(wù)組裝以實現(xiàn)復(fù)雜的業(yè)務(wù)流程.WS-BPEL(business process execution language for Web service)是一種基于XML的服務(wù)組裝語言[2],可以將多個不同的Web服務(wù)編制起來實現(xiàn)復(fù)雜的業(yè)務(wù)流程.由于被組裝的Web服務(wù)的動態(tài)性、松耦合性、不確定性以及互聯(lián)網(wǎng)環(huán)境的開放性,如何保證WS-BPEL程序的可靠性成為一個挑戰(zhàn)性問題[3].

        變異測試是一種基于故障的軟件測試技術(shù)[4],具有較強(qiáng)的故障檢測能力,廣泛用于評估測試用例集的完備性和測試技術(shù)的有效性[5].然而,由于變異測試產(chǎn)生的變異體數(shù)量龐大、等價變異體識別困難、缺乏相應(yīng)自動化支持工具等原因,變異測試難以在實際中廣泛應(yīng)用.在WS-BPEL變異測試方面,人們提出面向WS-BPEL程序的變異算子[6],為WS-BPEL程序的變異測試提供基礎(chǔ)[7].在課題組前期研究工作中[8-10],我們提出了一種面向WS-BPEL程序的變異測試框架和支持工具,評估了變異算子的有效性和不同變異算子模擬的故障被檢測的難易程度,發(fā)現(xiàn)了部分變異算子之間的包含關(guān)系.

        在前期工作基礎(chǔ)上,本文進(jìn)一步研究如何降低面向WS-BPEL程序的變異測試的開銷問題,從二階變異測試和變異算子優(yōu)先級2個方面探索面向WS-BPEL程序的變異測試優(yōu)化技術(shù).本文的主要貢獻(xiàn)有3個方面:

        1) 提出了2種面向WS-BPEL程序的變異測試優(yōu)化技術(shù),即面向WS-BPEL程序的二階變異優(yōu)化技術(shù)和基于變異算子優(yōu)先級的優(yōu)化技術(shù).

        2) 開發(fā)了面向WS-BPEL程序的變異測試集成化支持工具μBPEL,支持WS-BPEL程序變異測試的全過程,同時支持本文提出的變異測試優(yōu)化技術(shù).

        3) 使用6個WS-BPEL程序?qū)嵗炞C并評估提出的優(yōu)化技術(shù)的有效性.

        1 相關(guān)工作

        介紹變異測試優(yōu)化和WS-BPEL測試相關(guān)的研究工作.

        1.1 變異測試優(yōu)化技術(shù)

        變異測試是一種基于故障的軟件測試技術(shù)[4].對待測程序P植入符合語法規(guī)則的錯誤,將錯誤版本的程序稱為變異體,植入的故障類型稱為變異算子.對于給定的變異體M,如果存在某個測試用例,使得P和M展現(xiàn)出不同的執(zhí)行行為(通常為不同輸出結(jié)果),則稱這個變異體M被“殺死”.如果對于任意的測試用例,P和M的執(zhí)行結(jié)果均相同,則稱該變異體M為等價變異體.

        變異測試具有較強(qiáng)的故障檢測能力[5],可以產(chǎn)生較好的測試效果[11].然而,變異測試存在的主要不足有3個方面:1)變異體數(shù)量龐大導(dǎo)致的計算開銷;2)等價變異體識別困難;3)缺乏自動化支持工具.人們主要從變異體選擇和變異體執(zhí)行2個角度研究變異測試的優(yōu)化技術(shù)[5].

        變異體選擇優(yōu)化關(guān)注如何從生成的大量變異體中選擇出典型的變異體.Mathur和Wong[12]提出一種變異體隨機(jī)選擇方法,對Mothra系統(tǒng)中的22種變異算子產(chǎn)生的變異體,采用不同的比例隨機(jī)選擇變異體.該方法可以大幅度減少測試開銷,同時變異評分并沒有明顯降低.King和Offutt[13-14]提出了一種變異算子選擇方法,根據(jù)FORTRAN語言變異算子的測試有效性對其進(jìn)行選擇,采用選擇后的變異算子能產(chǎn)生數(shù)目較少且更難被殺死的變異體.Hussain[15]根據(jù)測試用例的檢測能力對所有變異體進(jìn)行聚類分析,選擇出變異體.Langdon等人[16]應(yīng)用多目標(biāo)方法指導(dǎo)生成高階變異體,該方法可以有效地產(chǎn)生比一階變異體更難檢測的高階變異體,同時產(chǎn)生等價變異體的概率更小,減少了測試開銷.在前期工作中,我們提出一種路徑感知的變異體精簡方法,利用程序的結(jié)構(gòu)信息設(shè)計變異體精簡策略,有效地減少了變異測試的開銷[17].在WS-BPEL程序的變異測試優(yōu)化技術(shù)方面,我們提出一種基于包含關(guān)系的變異算子優(yōu)化技術(shù)[10],分析WS-BPEL程序的變異算子產(chǎn)生的變異體檢測的包含關(guān)系,進(jìn)行變異算子約簡.

        變異體執(zhí)行優(yōu)化關(guān)注減少變異體的執(zhí)行時間,主要包括變異體檢測優(yōu)化、變異體變異優(yōu)化和并行執(zhí)行變異體優(yōu)化方法[5].Krauser等人[18]提出一種基于SIMD(single instruction multiple data)計算機(jī)的并發(fā)執(zhí)行變異體方法.此方法對變異體的無變異部分執(zhí)行1次,變異的部分進(jìn)行并發(fā)執(zhí)行,有效地減少變異體執(zhí)行時間.

        1.2 WS-BPEL測試技術(shù)

        與傳統(tǒng)程序相比,WS-BPEL程序具有4個新特點(diǎn)[19]:1)WS-BPEL提供一種顯式的集成機(jī)制組裝Web服務(wù),而這樣的集成在傳統(tǒng)程序中是隱式;2)WS-BPEL程序的服務(wù)可以采用不同語言實現(xiàn),而傳統(tǒng)程序中的模塊通常由同一種語言實現(xiàn);3)WS-BPEL程序表示為XML文件,不同于傳統(tǒng)應(yīng)用程序;4)WS-BPEL通過流(flow)活動支持并發(fā)機(jī)制、通過連接(link)支持同步機(jī)制.WS-BPEL程序的新特性,導(dǎo)致了WS-BPEL程序的故障類型不同于傳統(tǒng)應(yīng)用程序.

        人們提出了多種面向WS-BPEL程序的測試技術(shù).文獻(xiàn)[20]將基于WS-BPEL描述的Web服務(wù)組裝轉(zhuǎn)化為擴(kuò)展的著色Petri網(wǎng)(extended colored Petri net, ECPN),提出了一種基于ECPN控制流和數(shù)據(jù)流結(jié)合的測試方法.針對WS-BPEL程序的并發(fā)特點(diǎn),我們提出了一種面向場景的WS-BPEL測試用例生成方法[21],并開發(fā)了相應(yīng)的支持工具[22].Lee和Offutt[23]探索了將變異測試應(yīng)用到Web服務(wù)測試中.Boonyakulsrirung等人[24]提出一種面向WS-BPEL的弱變異測試框架,通過犧牲變異得分來提高變異測試的效率.Estero-Botaro等人[7]使用遺傳算法來獲得變異體集合的子集,選擇出高質(zhì)量的變異體.

        目前,人們已經(jīng)開發(fā)了多個面向WS-BPEL程序的變異測試支持工具.Domínguez-Jiménez等人[25]開發(fā)了WS-BPEL程序變異測試支持工具GAmera,支持變異體生成、測試用例執(zhí)行和測試結(jié)果統(tǒng)計.Boonyakulsrirung和Suwannasart[26]開發(fā)了WeMuTe,支持WS-BPEL程序的弱變異測試.在前期研究工作中,我們開發(fā)了一個面向WS-BPEL程序的變異測試框架,并開發(fā)相應(yīng)支持工具[8-9],支持變異體生成、變異測試的執(zhí)行及結(jié)果分析.

        2 WS-BPEL程序變異測試優(yōu)化技術(shù)

        從二階變異測試和變異算子優(yōu)先級2個方面,分別提出了變異測試的優(yōu)化技術(shù)MuSOM和MuPri.

        2.1 基于二階變異的優(yōu)化技術(shù)MuSOM

        一種減少變異測試中變異體數(shù)量的方法是高階變異體優(yōu)化技術(shù),由高階變異體替代一階變異體進(jìn)行測試.一階變異體指對原始程序應(yīng)用一個變異算子且植入一處錯誤生成的變異體;高階變異體指對原始程序植入多處錯誤生成的變異體.一個高階變異體可以看成由多個一階變異體復(fù)合而成.高階變異體優(yōu)化技術(shù)的提出基于2個推測[5]:1)執(zhí)行一次M階變異體等同于執(zhí)行M個一階變異體;2)高階變異體比一階變異體產(chǎn)生等價變異體的概率小.基于這2個推測可以看出,高階變異體優(yōu)化技術(shù)主要是通過減少待執(zhí)行變異體數(shù)目和等價變異體識別開銷來降低變異測試的開銷.

        本文提出一種面向WS-BPEL程序的二階變異優(yōu)化技術(shù)(簡稱為MuSOM).二階變異體生成算法主要有3種,分別為LastToFirst,DifferentOperators,RandomMix算法[27].其中LastToFirst算法通過首尾組合2個一階變異體的方式生成二階變異體,生成的二階變異體數(shù)量為一階變異體數(shù)量的一半;DifferentOperators算法通過組合不同變異算子生成的一階變異體生成二階變異體,生成的二階變異體數(shù)量不小于生成變異體最多的變異算子產(chǎn)生的一階變異體的數(shù)量;RandomMix算法隨機(jī)組合2個一階變異體生成二階變異體,生成的二階變異體數(shù)量為一階變異體數(shù)量的一半.3種算法的基本思想都是通過一階變異體組合生成二階變異體,但限制生成的二階變異體數(shù)量的策略不同.其中,LastToFirst算法和RandomMix算法生成的二階變異體數(shù)量相對確定(約為一階變異體數(shù)量的50%),而Different-Operators算法生成二階變異體數(shù)量不確定.本文研究的WS-BPEL程序可應(yīng)用的變異算子的種類較少、不同變異算子生成的一階變異體數(shù)量不均衡,DifferentOperators算法不適用.RandomMix算法與LastToFirst算法相似,主要區(qū)別在于一階變異體的選擇次序.因此,本文采用LastToFirst算法生成二階變異體集合.

        LastToFirst算法[27]按照首尾依次組合2個一階變異體的方式生成二階變異體,過程如圖1所示.其中,P指待測程序,M1至Mn代表待測程序P的一階變異體,M1,n及M2,n-1等代表通過首尾依次組合2個一階變異體生成的二階變異體.

        Fig. 1 Procedure of LastToFirst algorithm圖1 LastToFirst 算法生成二階變異體過程

        MuSOM描述的二階變異體生成步驟如下:

        1) 根據(jù)給定WS-BPEL程序P生成一階變異體,得到的變異體集合表示為M1o={M1,M2,…,Mn}.我們按照一階變異體產(chǎn)生的順序?qū)ψ儺愺w命名并編號為1~n(n為一階變異體的總數(shù)).

        2) 將M1o中的一階變異體首尾依次組合生成二階變異體,得到二階變異體集合為M2o={M1,n,M2,n-1,M3,n-2,…}.具體說來,將編號為1與編號為n的一階變異體組合得到二階變異體M1,n,編號為2與編號為n-1的一階變異體組合得到二階變異體M2,n-1,將編號為3與編號為n-2的一階變異體組合得到二階變異體M3,n-2,以此類推,生成二階變異體集合.當(dāng)n為奇數(shù)時,將一階變異體M(n+1)2與M(n+1)2+1組合生成二階變異體.

        2.2 基于變異算子優(yōu)先級的優(yōu)化技術(shù)MuPri

        在變異測試中,有些變異算子生成的變異體可以被絕大多數(shù)測試用例檢測(“殺死”),有些算子生成的變異體只能被特殊的測試用例檢測.若一些較難檢測的變異體都能被給定的測試用例集檢測,那么該測試用例集也能檢測那些容易被測殺的變異體.基于以上猜想,我們從變異體執(zhí)行順序的角度,提出一種基于變異算子優(yōu)先級的變異測試優(yōu)化技術(shù),首先使用可以產(chǎn)生較難檢測變異體的變異算子,然后再使用產(chǎn)生較易檢測變異體的變異算子.

        為了評價變異算子產(chǎn)生的變異體檢測的難易程度,引入變異算子質(zhì)量度量指標(biāo).這里約定P為待測的WS-BPEL程序;TS為測試用例集,TS={t1,t2,…,tn},其中ti為測試用例集中第i個測試用例,n為測試用例集的用例總數(shù);MO表示W(wǎng)S-BPEL的變異算子集合,MO={O1,O2,…,Ok},其中Oi表示第i個變異算子,k為變異算子總數(shù).

        將變異算子質(zhì)量定義為

        (1)

        其中,NOi表示Oi變異算子產(chǎn)生的非等價變異體總數(shù).不難看出,上述定義可從故障檢測率(fault detection rate,FDR)推導(dǎo)而來.故障檢測率FDR定義為測試用例檢測變異體的比例,廣泛用來衡量測試用例的故障檢測能力:

        (2)

        基于變異算子質(zhì)量定義,我們提出一種基于變異算子優(yōu)先級的優(yōu)化技術(shù)(簡稱為MuPri),通過衡量變異算子質(zhì)量,為變異算子分配測試優(yōu)先級.具體過程為:首先,對大量的WS-BPEL程序進(jìn)行變異測試;然后,根據(jù)測試結(jié)果計算變異算子的質(zhì)量,按照質(zhì)量由高到低的順序為其排序,質(zhì)量好的變異算子在變異測試中分配較高的優(yōu)先級,質(zhì)量差的變異算子分配較低的優(yōu)先級,即按照變異算子優(yōu)先級順序指導(dǎo)生成變異體集合.

        算法1. 測試用例排序算法.

        輸入:實例程序P、變異算子集合O、有序的測試用例集TS={t1,t2,…,tm};

        輸出:排序后的測試用例集TS′.

        ① 從O中選擇適用于P的變異算子集合OP;

        ② 對OP中變異算子按算子質(zhì)量由高到低排序,得到變異算子序列OP:OP1,OP2,…,OPn;

        ③ 令i=1,TS′=?;

        ④ WHILEi≤nDO

        ⑤ 生成OPi的一階變異體集合MOi(P)={m1,m2,…,mk};

        ⑥ WHILEMOi(P)≠? DO

        ⑦ 添加一個測試用例t到TS′;

        ⑧ FOR ALLmj∈MOi(P) DO

        ⑨ 以t測試用例執(zhí)行mj;

        ⑩ IFmj被“殺死” THEN

        MuPri技術(shù)不僅可以依據(jù)變異算子的優(yōu)先級,優(yōu)先使用質(zhì)量好的變異算子生成變異體,提高變異體集質(zhì)量,還可以為測試用例集合排序,得到故障檢測效率更高的測試用例集,解決測試用例優(yōu)先級問題.MuPri實現(xiàn)的測試用例排序的過程如算法1所示.

        3 支持工具μBPEL

        Fig. 2 Architecture of μBPEL圖2 μBPEL工具系統(tǒng)結(jié)構(gòu)圖

        在前期工作中[8-9],我們開發(fā)了一個面向WS-BPEL程序的變異測試支持工具μBPEL,支持變異體的生成、測試用例的執(zhí)行和測試結(jié)果驗證.本文通過擴(kuò)展μBPEL進(jìn)一步支持本文提出的變異測試優(yōu)化技術(shù).圖2描述了μBPEL工具的系統(tǒng)結(jié)構(gòu).各個組件的功能描述如下:

        1) 變異體生成.負(fù)責(zé)為待測WS-BPEL程序生成一階或二階變異體.

        ① WS-BPEL解析.解析WS-BPEL程序.

        ② 算子管理器.針對各種變異算子的匹配與操作,實現(xiàn)對相應(yīng)節(jié)點(diǎn)的變異處理.

        ③ XML文件讀/寫.負(fù)責(zé)WS-BPEL程序文件的讀入和變異體輸出.

        ④ 變異體生成.生成一階或二階變異體.

        2) 變異體優(yōu)化.支持變異體隨機(jī)選擇優(yōu)化.

        ① 參數(shù)配置.接收用戶輸入的待優(yōu)化的變異體集合路徑和變異體精簡比例.

        ② 變異體獲取.根據(jù)變異體精簡比例,從變異體集合中隨機(jī)獲取相應(yīng)數(shù)目的變異體.

        3) 測試用例生成.根據(jù)WS-BPEL原始文件,輸出期望的測試用例.課題組前期研發(fā)了2種測試用例生成工具[22],場景用例生成將WS-BPEL程序轉(zhuǎn)換為圖模型,基于給定的覆蓋準(zhǔn)則生成測試場景和數(shù)據(jù);隨機(jī)用例生成根據(jù)用戶輸入的約束條件,隨機(jī)生成滿足條件的測試用例.

        4) 變異測試執(zhí)行.執(zhí)行測試用例并獲取輸出結(jié)果.

        ① 執(zhí)行環(huán)境配置.根據(jù)WS-BPEL的配置信息,獲取WS-BPEL服務(wù)的端口號和操作名稱配置執(zhí)行環(huán)境.

        ② 程序選取.通過用戶輸入的文件路徑,依次獲取原始程序和變異體程序文件.

        ③ 用例讀取.讀入并解析相應(yīng)的測試用例文件,獲取用例輸入變量的類型、數(shù)目、值及用例個數(shù)等信息.

        ④ 待測程序執(zhí)行.調(diào)用WS-BPEL引擎依次對原始程序和變異體執(zhí)行測試用例集并輸出結(jié)果.

        5) 測試結(jié)果評估.負(fù)責(zé)對輸出結(jié)果進(jìn)行統(tǒng)計分析,由結(jié)果統(tǒng)計和報告獲取2個模塊組成.

        ① 結(jié)果統(tǒng)計.對執(zhí)行相同測試用例的原始程序和變異體的輸出結(jié)果逐一進(jìn)行對比.若二者結(jié)果不同,表明該測試用例將變異體“殺死”,標(biāo)記為“T”;否則,記為“F”.依次記錄變異體被測殺的狀態(tài),并統(tǒng)計出針對變異體的每個測試用例集合的故障檢測率信息.

        ② 報告獲取.根據(jù)結(jié)果統(tǒng)計的輸出結(jié)果,計算

        ① http://www.activevos.com/developers/sample-apps

        變異得分并生成報告,包括變異體數(shù)目、被殺死變異體數(shù)目和變異得分信息.

        4 實驗評估

        采用經(jīng)驗研究驗證與評估本文提出的面向WS-BPEL程序的變異測試優(yōu)化技術(shù)的有效性.

        4.1 實驗對象

        實驗對象包括6個WS-BPEL程序?qū)嵗篠upplyChain實例[19](P1)、SmartShelf實例(P2)[19]、SupplyCustomer實例(P3)[2]、LoanApproval實例(P4)[2]、CarEstimate實例(P5)①和TravelAgency[28]實例(P6).表1總結(jié)這些程序?qū)嵗木唧w信息.

        Table 1 WS-BPEL Programs表1 WS-BPEL程序?qū)嵗幕拘畔?/p>

        4.2 實驗指標(biāo)

        本文使用變異得分(mutation score,MS)、故障檢測率FDR(見式(2))、測試用例序列檢測故障的平均百分比(average of the percentage of faults detected,APFD)這3個指標(biāo)度量變異測試優(yōu)化方法的有效性.

        1) 變異得分MS.對于給定的測試用例集TS,殺死變異體數(shù)量與非等價變異體數(shù)量的比例[4],用來衡量測試用例集的充分程度.變異得分計算為

        (3)

        其中,P代表被測程序,Nk表示被殺死的變異體數(shù)量,Nm表示變異體總數(shù)量,Ne代表等價變異體的數(shù)量.變異得分越高,說明測試用例集“殺死”的變異體越多,測試用例集越有效.

        2) 測試用例序列檢測故障的平均百分比APFD.用于評價測試用例集的故障檢測效率,常用于衡量不同測試用例優(yōu)先級技術(shù)的排序效果[29].APFD的計算公式為

        (4)

        其中,TS表示具有特定序列的測試用例集,P表示待測程序,n表示測試用例的個數(shù),m表示被檢測故障的總數(shù),reveal(i,TS)表示最早檢測出第i個故障所執(zhí)行的測試用例的位置.APFD量化了測試用例序列的效率和效能,即APFD的數(shù)值越大,測試用例集故障檢測效率越高.本文采用APFD來度量序列化的測試用例的故障檢測效率.

        4.3 實驗設(shè)置

        討論與2種變異測試優(yōu)化技術(shù)評估相關(guān)的變異體生成和測試用例集.

        1) 一階和二階變異體生成.針對表1中的WS-BPEL程序?qū)嵗?,采用本文開發(fā)的μBPEL工具生成一階變異體集合(記為M1o)和二階變異體集合(記為M2o).表2總結(jié)了生成的一階變異體和二階變異體情況.

        Table 2 First-Order and Second-Order Mutants ofWS-BPEL Programs

        2) 測試用例生成.在前期工作中[10],我們采用等價類劃分[30]、邊界值分析[30]、面向場景測試技術(shù)[22]和隨機(jī)測試技術(shù)[30]這4種技術(shù)生成測試用例.為了減少不同測試用例生成技術(shù)對變異測試結(jié)果的影響,最終生成5組測試用例集,分別記為Tx,Ty,Tz,Tu,Tw,如表3所示.|Tx|,|Ty|,|Tz|,|Tu|,|Tw|表示W(wǎng)S-BPEL程序?qū)嵗龑?yīng)的每組測試用例集的大小.需要指出的是,測試用例集的數(shù)量依賴于程序的規(guī)模和所使用的測試用例生成技術(shù).為了保證實驗的公平性,本文采用這些測試用例集評估優(yōu)化技術(shù)的有效性.

        Table 3 Test Suits of WS-BPEL Programs表3 WS-BPEL實例的測試用例集合

        4.4 優(yōu)化技術(shù)評估結(jié)果與分析

        4.4.1 MuSOM技術(shù)評估結(jié)果

        MuSOM技術(shù)有效性的評估過程描述如下:首先,采用測試用例集Tx對一階變異體集合M1o和二階變異體集合M2o進(jìn)行變異測試,得到能夠殺死所有變異體的測試用例集TC;然后,采用測試用例集TC對一階變異體集合M1o進(jìn)行變異測試,統(tǒng)計變異得分.

        表4總結(jié)了生成的二階變異體集合中的等價變異體情況;圖3統(tǒng)計了一階變異體集合和二階變異體集合的變異得分情況.

        Table 4 Equivalent Mutant of WS-BPEL Programs表4 WS-BPEL程序?qū)嵗牡葍r變異體情況

        Fig. 3 Mutation score of WS-BPEL programs圖3 WS-BPEL程序的一階與二階變異體的變異得分

        上述實驗結(jié)果表明:

        1) 在使用同樣數(shù)目和種類的變異算子情況下,M2o集合數(shù)量約為M1o的一半,相對于一階變異測試,減少了約50%的待測變異體(如表2所示);M2o中的等價變異體數(shù)目(NE)總和為0,而M1o中存在48個等價變異體(如表4所示),主要原因是,與一階變異體相比,二階變異體中植入了多處錯誤,降低了等價變異體的生成概率.由此可見,MuSOM技術(shù)極大地減少了等價變異體的出現(xiàn)概率(一階變異測試中等價變異體約為28%),大幅度降低等價變異體識別帶來的計算開銷.

        2) 在采用相同的測試用例集情況下,二階變異測試的變異得分均為100%,而一階變異測試的變異得分有所不同.其中,P3和P5實例中的變異得分為100%;P1和P6實例中的變異得分分別是97.1%和97.5%,接近于100%;P2和P4實例的變異得分分別是72.6%和73.1%.主要原因是,二階變異體中存在多處錯誤,更容易被檢測出來.相應(yīng)地,在相同測試用例集情況下,二階變異測試的變異得分高于一階變異測試.

        綜上所述,相對于傳統(tǒng)的(一階)變異測試而言,二階變異測試技術(shù)可以減少約50%的變異體和減少約28%的等價變異體識別開銷,同時并沒有大幅度降低衡量測試用例集充分性的能力.

        4.4.2 MuPri技術(shù)評估結(jié)果

        MuPri技術(shù)依據(jù)變異算子質(zhì)量對測試用例集進(jìn)行排序.通過對比排序前后的測試用例集的APFD評估MuPri技術(shù)的有效性.具體步驟有3個:

        1) 變異算子優(yōu)先級排序.首先采用測試用例集Tx,Ty,Tz,Tu,Tw分別執(zhí)行實例程序和其一階變異體集合M1o,計算變異得分(MS)和故障檢測率(FDR).需要說明的是,如下變異算子在實例程序中不適用:EAA,EEU,ELL,EMD,EMF,AFP,AIS,AWR,AJC,APM,APA,XMC,XMT,XTF,XER,XEE;變異算子ECC和EAP產(chǎn)生的均為等價變異體.限于篇幅,我們不列出每個變異算子的變異得分和故障檢測率(參考文獻(xiàn)[9]).

        表5列出了可適用的變異算子優(yōu)先級排序結(jié)果.依據(jù)變異算子質(zhì)量Qo的平均值,對變異算子排序并分配優(yōu)先級.優(yōu)先級的數(shù)值越小,表示該變異算子的優(yōu)先級越高.

        Table 5 Priority of Mutation Operators表5 變異算子優(yōu)先級

        2) 測試用例集排序.針對每個WS-BPEL程序P,首先得到變異得分100%的測試用例集TS,使用變異算子優(yōu)先級得到排序的測試用例集TS′,分別計算測試用例集TS和TS′的APFD值.以SupplyChain程序為例,表5列出了適用的變異算子優(yōu)先級序列為:CDE→CCO→CDC→ERR→AIE→ASF→AEL→CFA→EIN→ASI→ACI.采用測試用例排序過程(算法1)對SupplyChain實例的測試用例集進(jìn)行排序,結(jié)果如表6所示.表6中,“√”表示測試用例集TS中第1個將該變異體“殺死”的用例.最終得到測試用例集TS的順序是“T1→T2→T3”.

        Table 6 Results of Executing Test Suite (TS) on SupplyChain表6 SupplyChain程序執(zhí)行測試用例TS結(jié)果

        Note:“√” means the first test case that kills the mutant.

        使用排序后的測試用例集TS執(zhí)行沒有排序的變異體集合,結(jié)果如表7所示.其中“√”表示第1個將變異體“殺死”的測試用例,Location表示該用例在TS中的位置,“×”表示測試用例不能“殺死”變異體,“~”表示測試用例沒有執(zhí)行.最終計算得到APFD的值是74.5%.類似地,我們可以得到其他WS-BPEL程序優(yōu)化前后的APFD值.

        Table 7 Results of Mutation Testing表7 變異體測試結(jié)果

        Notes:“√” means that the test case kills the mutant; “×” means that the test case cannot kill the mutant; “~” means that the test case is not executed to kill the mutant.

        3) 比較排序前后測試用例集的有效性.表8列出了每個WS-BPEL程序的變異算子優(yōu)化前后的測試用例集的APFD.

        Table 8 Comparison Between APFD of Original Test Suiteand that of Prioritized Test Suite Using MuPri

        上述實驗結(jié)果表明:使用MuPri優(yōu)化技術(shù)后得到的測試用例序列的APFD值都大于或等于優(yōu)化前的APFD值.MuPri優(yōu)化技術(shù)優(yōu)先使用較難被檢測的變異算子生成變異體,采用這樣的變異體集合為測試用例集排序,可以得到故障檢測效率更高的測試用例集.因此,MuPri技術(shù)通過對變異算子進(jìn)行優(yōu)先級排序提高了測試用例集的故障檢測效率.

        5 總 結(jié)

        本文針對WS-BPEL程序的變異測試開銷大的問題,提出了2種面向WS-BPEL程序的變異測試優(yōu)化技術(shù)MuSOM和MuPri.其中,MuSOM從變異體數(shù)量精簡角度,將二階變異應(yīng)用WS-BPEL測試;MuPri提出了變異算子質(zhì)量的概念,通過度量變異算子優(yōu)先級指導(dǎo)變異體的使用順序.開發(fā)了面向WS-BPEL程序的變異測試支持工具μBPEL,該工具實現(xiàn)了本文提出的優(yōu)化技術(shù),有助于對WS-BPEL程序進(jìn)行高效的變異測試.最后,采用6個WS-BPEL程序?qū)嵗炞C并評估了提出的變異測試優(yōu)化技術(shù)的有效性.實驗結(jié)果表明:本文提出的變異測試優(yōu)化技術(shù)極大地降低了WS-BPEL程序的變異測試開銷,提高了變異測試的效率.

        未來將在2個方面進(jìn)一步開展研究工作:1)與其他相關(guān)的優(yōu)化技術(shù)進(jìn)行比較,評估所提出的優(yōu)化技術(shù)的效率;2)擴(kuò)展驗證的WS-BPEL程序集,特別地,目前的程序集適用的變異算子種類較少,需要采用更大規(guī)模的實例程序?qū)?yōu)化技術(shù)進(jìn)行更全面的評估.

        猜你喜歡
        測試用例二階實例
        基于SmartUnit的安全通信系統(tǒng)單元測試用例自動生成
        一類二階迭代泛函微分方程的周期解
        一類二階中立隨機(jī)偏微分方程的吸引集和擬不變集
        二階線性微分方程的解法
        基于混合遺傳算法的回歸測試用例集最小化研究
        一類二階中立隨機(jī)偏微分方程的吸引集和擬不變集
        基于依賴結(jié)構(gòu)的測試用例優(yōu)先級技術(shù)
        完形填空Ⅱ
        完形填空Ⅰ
        軟件回歸測試用例選取方法研究
        av在线观看免费天堂| 一本大道道久久综合av| 亚洲国产成人无码电影| 国产嫖妓一区二区三区无码| 精品福利一区二区三区免费视频 | 日本55丰满熟妇厨房伦| 五月天中文字幕mv在线| 青青青免费在线视频亚洲视频| 精品视频在线观看一区二区三区| 麻豆国产人妻欲求不满谁演的| 欲求不満の人妻松下纱荣子| 一个人午夜观看在线中文字幕| 色欧美与xxxxx| 天天躁日日躁狠狠躁av中文| 亚欧中文字幕久久精品无码| 国产精品久久久在线看| 亚洲综合有码中文字幕| 久久道精品一区二区三区| 狠狠躁夜夜躁人人爽天天不卡软件 | 日韩夜夜高潮夜夜爽无码| 中文字幕亚洲一区二区三区| 亚洲AV无码久久久久调教| 成人免费xxxxx在线视频| 男男性恋免费视频网站| 丰满少妇被粗大猛烈进人高清| 手机在线播放成人av| 亚洲国产视频精品一区二区| 久青草国产视频| 亚洲精品久久中文字幕| 国产精品中文久久久久久久| 中文字幕人妻饥渴浪妇| 亚洲国产一区一区毛片a| 精品女同一区二区三区不卡| 亚洲精品天堂av免费看| 久久精品国产亚洲av瑜伽| 丰满人妻av无码一区二区三区| 亚洲 欧美 日韩 国产综合 在线| 国产91色综合久久高清| 一区二区三区高清视频在线| 台湾佬中文偷拍亚洲综合| 国产亚洲精品国产福利在线观看|