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

        ?

        基于變異測(cè)試的RESTful Web服務(wù)測(cè)試數(shù)據(jù)優(yōu)化生成方法

        2017-06-13 10:43:58陳文杰
        關(guān)鍵詞:數(shù)據(jù)類型測(cè)試數(shù)據(jù)等價(jià)

        劉 靖 陳文杰

        (內(nèi)蒙古大學(xué)計(jì)算機(jī)學(xué)院, 呼和浩特 010021)

        基于變異測(cè)試的RESTful Web服務(wù)測(cè)試數(shù)據(jù)優(yōu)化生成方法

        劉 靖 陳文杰

        (內(nèi)蒙古大學(xué)計(jì)算機(jī)學(xué)院, 呼和浩特 010021)

        為提升基于REST的Web服務(wù)系統(tǒng)測(cè)試數(shù)據(jù)生成效率及可用性,提出了一種基于變異測(cè)試的測(cè)試數(shù)據(jù)優(yōu)化生成方法.將RESTful Web服務(wù)對(duì)應(yīng)的 Web應(yīng)用描述語(yǔ)言(WADL)增加數(shù)據(jù)類型約束,并利用該約束生成初始測(cè)試數(shù)據(jù).對(duì)約束關(guān)系進(jìn)行變異生成變異體,在消除等價(jià)變異體并利用聚類實(shí)現(xiàn)變異體集約簡(jiǎn)的基礎(chǔ)上,結(jié)合貪心算法優(yōu)化篩選初始測(cè)試數(shù)據(jù),生成無(wú)冗余的RESTful Web服務(wù)可用測(cè)試數(shù)據(jù)集.基于Hadoop平臺(tái)技術(shù),實(shí)現(xiàn)了針對(duì)RESTful Web服務(wù)系統(tǒng)測(cè)試數(shù)據(jù)自動(dòng)生成的支撐軟件.測(cè)試執(zhí)行結(jié)果表明,在有效保證測(cè)試數(shù)據(jù)可用且無(wú)冗余的基礎(chǔ)上,極大縮減了測(cè)試數(shù)據(jù)集規(guī)模和測(cè)試數(shù)據(jù)生成時(shí)間,完成了針對(duì)RESTful Web服務(wù)系統(tǒng)的自動(dòng)化測(cè)試數(shù)據(jù)優(yōu)化生成,提升了測(cè)試生成效率.

        測(cè)試數(shù)據(jù)生成;RESTful Web服務(wù);WADL;變異測(cè)試

        移動(dòng) Web服務(wù)在電子醫(yī)療、突發(fā)災(zāi)害實(shí)時(shí)監(jiān)控等方面具有良好的應(yīng)用前景[1].部署存在功能隱患或行為缺陷的移動(dòng)Web服務(wù),勢(shì)必造成相關(guān)服務(wù)的運(yùn)行錯(cuò)誤和功能失效.因此,在大范圍部署移動(dòng)Web服務(wù)前完成全面的功能測(cè)試是至關(guān)重要的,而自動(dòng)生成無(wú)冗余、有效可用的測(cè)試數(shù)據(jù)是提升Web服務(wù)系統(tǒng)的測(cè)試生成效率、保證測(cè)試整體效果的基礎(chǔ)和關(guān)鍵,能夠有效解決測(cè)試人員在手工生成測(cè)試數(shù)據(jù)時(shí)引入的人為錯(cuò)誤和盲目性,并降低測(cè)試成本.

        實(shí)現(xiàn)移動(dòng)Web服務(wù)可選用SOAP或REST兩種方式.現(xiàn)有相關(guān)研究大都以基于SOAP的WSDL為依據(jù),研究測(cè)試數(shù)據(jù)的生成方法和優(yōu)化選擇.文獻(xiàn)[2]基于服務(wù)合約來(lái)擴(kuò)展WSDL,設(shè)計(jì)雙方設(shè)計(jì)合約并根據(jù)合約各自展開(kāi)測(cè)試,但該方法需要耗費(fèi)大量的計(jì)算資源,且產(chǎn)生測(cè)試數(shù)據(jù)的類型有限.文獻(xiàn)[3]以WSDL中的XSD數(shù)據(jù)描述為基礎(chǔ),運(yùn)用約束滿足問(wèn)題技術(shù)求解可嵌入測(cè)試數(shù)據(jù)的XML測(cè)試執(zhí)行模板.文獻(xiàn)[4]以WSDL等文檔為輸入抽取變量類型等約束,運(yùn)用滿足性模理論求解工具生成滿足不同覆蓋標(biāo)準(zhǔn)的測(cè)試數(shù)據(jù).文獻(xiàn)[5-6]研究了組合Web服務(wù)中的測(cè)試生成及優(yōu)化選擇方法.文獻(xiàn)[7]提出了RESTful Web服務(wù)的測(cè)試框架,為軟件測(cè)試者提供了集成軟件測(cè)試過(guò)程,但并沒(méi)有給出詳細(xì)的測(cè)試數(shù)據(jù)生成方法.RESTful Web服務(wù)更適合部署于移動(dòng)設(shè)備上,響應(yīng)時(shí)間和吞吐量等性能都優(yōu)于SOAP式Web服務(wù)[8].

        本文采用更適合RESTful Web服務(wù)的WADL描述[9]作為測(cè)試數(shù)據(jù)生成的基礎(chǔ),提出了一種基于變異測(cè)試的測(cè)試數(shù)據(jù)優(yōu)化生成方法,并研發(fā)了基于Hadoop的測(cè)試數(shù)據(jù)自動(dòng)生成支撐軟件ATD4MW,采用基于遺傳算法的聚類技術(shù)并結(jié)合貪心算法,生成無(wú)冗余且規(guī)模極大縮減的可用測(cè)試數(shù)據(jù)集.

        1 基于WADL擴(kuò)展的測(cè)試數(shù)據(jù)生成

        WADL描述了RESTful Web服務(wù)系統(tǒng)所支持的所有資源及對(duì)這些資源所執(zhí)行的操作.用戶根據(jù)Web服務(wù)對(duì)應(yīng)的WADL描述了解其包含的所有資源及服務(wù)調(diào)用方法.WADL描述文檔通常包括4個(gè)部分:資源集、資源連接關(guān)系、資源操作方法(對(duì)資源操作的HTTP方法)及資源表述(資源的MIME類型及其XML Schema).本節(jié)首先給出WADL描述擴(kuò)展方法,即如何增加數(shù)據(jù)類型約束,然后利用等價(jià)類劃分及邊界分析、錯(cuò)誤推測(cè)和隨機(jī)生成等方法,實(shí)現(xiàn)了基于約束關(guān)系的初始測(cè)試數(shù)據(jù)自動(dòng)生成.

        1.1 WADL中對(duì)數(shù)據(jù)類型約束的擴(kuò)展

        針對(duì)RESTful Web服務(wù)系統(tǒng)的測(cè)試,主要根據(jù)WADL中param元素的type屬性來(lái)生成測(cè)試數(shù)據(jù).該屬性雖然能夠描述參數(shù)的數(shù)據(jù)類型,但缺少對(duì)類型的約束,因而需要擴(kuò)展WADL,增加類型約束,以便生成更為有效的測(cè)試數(shù)據(jù).由于type中的數(shù)據(jù)類型是在相應(yīng)的XML Schema中描述的,因此需要在XML Schema上添加restriction元素,以精確描述數(shù)據(jù)類型的約束關(guān)系.XML Schema中的基本數(shù)據(jù)類型包括數(shù)值型(Int,Float,Double等)、字符串型(String)及布爾型(Boolean).不同數(shù)據(jù)類型所對(duì)應(yīng)的約束不同.數(shù)值型約束描述了該類型數(shù)據(jù)的最大值和最小值;字符串型約束描述了字符串的精確長(zhǎng)度或最大最小長(zhǎng)度;枚舉型約束描述了一個(gè)由字符串型、布爾型或數(shù)值型元素所組成的元素集合.布爾型數(shù)據(jù)僅包含2個(gè)值,不需要添加額外的約束.

        1.2 測(cè)試數(shù)據(jù)的生成策略

        1.2.1 簡(jiǎn)單類型測(cè)試數(shù)據(jù)

        首先提取加在簡(jiǎn)單數(shù)據(jù)類型上的約束關(guān)系;然后根據(jù)約束條件,利用等價(jià)類劃分及邊界分析、錯(cuò)誤推測(cè)和隨機(jī)生成等方法來(lái)生成測(cè)試數(shù)據(jù).如果數(shù)據(jù)類型的約束條件不完整,則將該類型數(shù)據(jù)的默認(rèn)取值范圍作為補(bǔ)充.對(duì)于數(shù)值型約束,令其最大、最小值分別為VMAX和VMIN,編譯器允許取值的上、下界分別為Bup和Bdown,則可生成的測(cè)試數(shù)據(jù)為rand(Bdown,VMIN),VMIN-1,VMIN,VMIN+1,rand(VMIN,VMAX),VMAX-1,VMAX,VMAX+1,rand(VMAX,Bup),0,-1等,其中rand函數(shù)隨機(jī)生成約束范圍內(nèi)的數(shù)值.對(duì)于字符串型約束,令字符串的最小、最大長(zhǎng)度分別為L(zhǎng)MIN和LMAX,則生成的測(cè)試數(shù)據(jù)為randStr(LMIN-1),randStr(LMIN),randStr(LMIN+1),randStr(rand(LMIN,LMAX)),randStr(LMAX-1),randStr(LMAX),randStr(LMAX+1)、空串等,其中randStr函數(shù)隨機(jī)生成字符長(zhǎng)度約束范圍內(nèi)的字符串.對(duì)于布爾類型,測(cè)試數(shù)據(jù)為T(mén)和F,分別表示布爾類型的真值和假值.枚舉類型一般先選擇集合中的首尾2個(gè)元素,再在剩余數(shù)據(jù)中隨機(jī)選一個(gè)數(shù)據(jù).

        1.2.2 復(fù)合類型測(cè)試數(shù)據(jù)

        復(fù)合類型可基于簡(jiǎn)單類型或已有復(fù)合類型嵌套構(gòu)成,其中子類型元素的組合方式需要由次序指示器指定.次序指示器分為All,Choice和Sequence三種.其中,All指示器規(guī)定復(fù)合類型中所有子元素必須且僅出現(xiàn)一次,可以按照任何次序出現(xiàn),不必與XML Schema中的定義一致;Choice指示器規(guī)定在復(fù)合類型的全部子元素中僅能隨機(jī)出現(xiàn)一個(gè);Sequence指示器規(guī)定復(fù)合類型中每一個(gè)元素必須出現(xiàn)一次,次序與XML Schema中規(guī)定的一樣.在復(fù)合型測(cè)試數(shù)據(jù)的生成中,先確定子類型元素的組合方式.若采用All指示器,先隨機(jī)生成一個(gè)子類型元素的序列,并為序列中的每一個(gè)子類型生成測(cè)試數(shù)據(jù)集,然后根據(jù)序列中元素的次序?qū)ψ蛹?jì)算笛卡爾積,從而得到復(fù)合類型的測(cè)試集.若采用Choice指示器,則在所有子類型中任意指定一個(gè)子類型元素,由此生成的測(cè)試數(shù)據(jù)集即為復(fù)合類型的測(cè)試數(shù)據(jù)集.若采用Sequence指示器,則為所有子元素逐一生成子測(cè)試數(shù)據(jù)集,然后根據(jù)XML Schema中規(guī)定的次序?qū)ψ蛹?jì)算笛卡爾積,從而得到復(fù)合類型的測(cè)試數(shù)據(jù)集.

        1.3 測(cè)試數(shù)據(jù)生成算法

        本文提出了一個(gè)自動(dòng)生成簡(jiǎn)單和復(fù)合類型測(cè)試數(shù)據(jù)的算法.

        算法1 GenTestData輸入:參數(shù)P. 輸出:P的初始測(cè)試數(shù)據(jù)集Tinit.Tinit={}; IF(IsSimpleType(P)){Tp=GetType(P);Rd=InitialRegion(Tp);//返回類型在編譯中能處理的范圍Rs=GetRestriction(Tp);//獲取DataType定義的約束Rd=Rd∩CalRange(Rs);//計(jì)算在該約束下的取值區(qū)間 //采用等價(jià)類劃分及邊界分析、錯(cuò)誤推測(cè)和隨機(jī)方法 //產(chǎn)生簡(jiǎn)單數(shù)據(jù)類型的測(cè)試數(shù)據(jù)Tinit=GenForSimple(Rd);} ELSE {TD={};//保存每個(gè)子元素生成的測(cè)試數(shù)據(jù)集 //按照3種不同復(fù)合類型規(guī)則生成測(cè)試數(shù)據(jù) FOR each SubElement ofPTD=GenTestData(SubElement); IF (IsSequence(P))Tinit=GenSequenceData(TD); ELSE IF (IsAll(P))Tinit=GenAllData(TD); ELSE IF (IsChoice(P))Tinit=GenChoiceData(TD);}

        2 基于變異的測(cè)試數(shù)據(jù)優(yōu)化篩選

        測(cè)試數(shù)據(jù)生成過(guò)程中由All和Sequence指示器構(gòu)成的復(fù)合類型數(shù)據(jù)都需要計(jì)算笛卡爾積,隨著子類型個(gè)數(shù)的不斷增加,最終產(chǎn)生的測(cè)試數(shù)據(jù)集的數(shù)據(jù)量會(huì)呈指數(shù)增長(zhǎng),且包含很多重復(fù)低效的冗余數(shù)據(jù).對(duì)測(cè)試數(shù)據(jù)進(jìn)行篩選,可以消除大量低效冗余的數(shù)據(jù),精簡(jiǎn)測(cè)試數(shù)據(jù)集,從而節(jié)約了測(cè)試時(shí)間和成本.本文利用變異測(cè)試技術(shù),為WADL中數(shù)據(jù)類型增加約束條件,根據(jù)Web服務(wù)的特征設(shè)計(jì)變異算子,再將變異算子作用于被測(cè)Web服務(wù)的程序上得到變異體,通過(guò)運(yùn)行變異體來(lái)篩選出無(wú)冗余且有效可用的測(cè)試數(shù)據(jù).

        2.1 變異體生成

        WADL體現(xiàn)了RESTful Web服務(wù)系統(tǒng)的內(nèi)部邏輯功能,約束的變異等價(jià)于Web服務(wù)內(nèi)部邏輯功能的變異.因此,有效可用的測(cè)試數(shù)據(jù)是指能夠殺死變異體的測(cè)試數(shù)據(jù),這些數(shù)據(jù)能夠識(shí)別Web服務(wù)內(nèi)部邏輯功能錯(cuò)誤.進(jìn)行約束變異的目的是篩選出識(shí)別錯(cuò)誤能力強(qiáng)(即殺死變異體多)的數(shù)據(jù),剔除重復(fù)冗余的數(shù)據(jù).

        設(shè)計(jì)變異算子是變異測(cè)試技術(shù)的關(guān)鍵和基礎(chǔ).在一般的變異測(cè)試執(zhí)行中,變異體的個(gè)數(shù)與程序代碼量的平方成正比,即使最簡(jiǎn)單的一個(gè)程序也會(huì)產(chǎn)生大量的變異體,因此執(zhí)行和存儲(chǔ)變異體會(huì)耗費(fèi)大量的內(nèi)存計(jì)算資源.雖然約束變異測(cè)試的規(guī)模小于一般變異測(cè)試,但如果定義了大量低效的變異算子,仍然會(huì)產(chǎn)生數(shù)量巨大的變異體集合,浪費(fèi)大量的計(jì)算資源.鑒于此,必須定義有效的變異算子來(lái)減少變異體的生成數(shù)量,從而降低測(cè)試開(kāi)銷(xiāo).針對(duì)RESTful Web服務(wù)系統(tǒng)的WADL約束特征,本文定義了7個(gè)相應(yīng)的變異算子(見(jiàn)表1).

        表1 擴(kuò)展WADL的變異算子

        下面舉例說(shuō)明如何運(yùn)用上述變異算子產(chǎn)生相應(yīng)的約束變異體.例如,某Web服務(wù)方法的一個(gè)參數(shù)為x,其約束為Vmin=0,Vmax=30,則參數(shù)x的取值范圍為030}.使用CAD刪除或添加一個(gè)約束,得到變異體集{x>0,x<30}.假設(shè)該方法存在另一個(gè)參數(shù)y,約束為Vmin=5,Vmax=7,則參數(shù)y的取值范圍為5

        2.2 等價(jià)變異體檢測(cè)

        影響變異測(cè)試效果的主要原因是等價(jià)變異體的存在.等價(jià)變異體不僅會(huì)降低變異測(cè)試的充分度,長(zhǎng)期駐留內(nèi)存還會(huì)耗費(fèi)大量的計(jì)算資源.因此,必須剔除變異體集中的等價(jià)變異體,以提高測(cè)試效率和變異充分度.此外,手工檢測(cè)等價(jià)變異體耗時(shí)耗力且容易出錯(cuò),因此需要實(shí)現(xiàn)等價(jià)變異體的自動(dòng)檢測(cè).本文將基于約束的等價(jià)變異體檢測(cè)[10]應(yīng)用于等價(jià)變異體的檢測(cè)中.

        設(shè)M是約束C的一個(gè)變異體,測(cè)試數(shù)據(jù)d要將變異體殺死,必須滿足以下2個(gè)條件:

        1) 必要性條件,即d在變異處使得M和C產(chǎn)生不同的狀態(tài).若狀態(tài)相同,由于M和C僅在變異處不相同,其他地方完全相同,則M和C的最終狀態(tài)必然也相同,那么該測(cè)試數(shù)據(jù)d無(wú)法殺死變異體M.

        2) 可達(dá)性條件,即d在M上運(yùn)行必須能執(zhí)行到變異處,并可以從該變異處執(zhí)行到程序結(jié)束.這是因?yàn)镸和C僅在變異處不同,如果d不能執(zhí)行到變異處,最終狀態(tài)必然相同;此外,即使在變異處產(chǎn)生了不同狀態(tài),如果變異處到程序結(jié)束不可達(dá),即不同狀態(tài)不能傳遞到程序結(jié)束,那么最終狀態(tài)也必然相同.

        假設(shè)存在一個(gè)測(cè)試數(shù)據(jù)集S能夠同時(shí)滿足必要性和可達(dá)性條件.若S不為空集,那么變異體能夠被殺死;若S為空集,則變異體為等價(jià)變異體,在功能上等價(jià)于原始約束.

        2.3 變異體聚類

        運(yùn)用變異算子會(huì)產(chǎn)生大量的變異體.雖然2.2節(jié)中已剔除了等價(jià)變異體,但變異體的數(shù)量仍然十分巨大,其中許多變異體具有相似的功能,無(wú)助于測(cè)試數(shù)據(jù)的篩選,故有必要精簡(jiǎn)變異體集.在測(cè)試數(shù)據(jù)篩選過(guò)程中,需要將數(shù)量龐大的測(cè)試數(shù)據(jù)集輸入到變異體集上,變異體集的執(zhí)行會(huì)耗費(fèi)大量的時(shí)間和計(jì)算機(jī)資源.為了減少變異測(cè)試的代價(jià),需要在不影響檢測(cè)力度的情況下執(zhí)行更少的變異體,對(duì)變異集進(jìn)行約簡(jiǎn).因此,本文采用了一種基于遺傳算法的聚類技術(shù)來(lái)實(shí)現(xiàn)變異體的約簡(jiǎn).

        K-means聚類算法的效果與聚類數(shù)目K相關(guān),但K值較難確定,本文采用遺傳算法自適應(yīng)地產(chǎn)生K值,并求得該K值下較好的聚類中心,以計(jì)算優(yōu)化的聚類結(jié)果.在基于遺傳算法的聚類技術(shù)中,令D為樣本數(shù)據(jù)的數(shù)量,則變異體由長(zhǎng)度為D的2進(jìn)制數(shù)字串來(lái)表示,染色體由長(zhǎng)度為KD的2進(jìn)制數(shù)字串來(lái)表示.適應(yīng)度函數(shù)由每個(gè)變異體到對(duì)應(yīng)聚類中心的距離和來(lái)表示,其值越小越好.隨機(jī)選擇k個(gè)變異體作為初始聚類中心,對(duì)其余變異體進(jìn)行聚類處理,得到的結(jié)果即為種群的個(gè)體,每個(gè)個(gè)體的形成相當(dāng)于當(dāng)前K值下的一次K-means聚類.種群初始化后,通過(guò)不斷進(jìn)化,得到當(dāng)前k值下最好的聚類中心.上述算法思想可描述為如下的GenMutants算法.

        算法2 GenMutants輸入:聚類數(shù)目K;初始染色體集數(shù)量MS;樣本數(shù)據(jù)集DS; 適應(yīng)度距離閾值CS;初始變異體集合Minit.

        輸出:約簡(jiǎn)后的變異體集合Mopt.

        BEGIN:

        Schromes={};//染色體集Scur_opt_means={};//當(dāng)代最優(yōu)的聚類中心 //染色體集初始化 FOR(i=1 toMS)Schromes=Schromes∪concat (EncOneMutant (DS),K,Minit); //產(chǎn)生最佳的染色體 DO {Schromes=Crossover (Schromes);Schromes=Mutation (Schromes);Scur_opt_means=Selection (fitness(Schromes)); Evolve_to_nextGen(); } WHILE (fitness(Scur_opt_means)!=0) //探測(cè)是否有更優(yōu)的染色體 IF (fitness(Scur_opt_means)-fitness(Spre_opt_means)>CS) {K=K+1;Spre_opt_means=Scur_opt_means; goto BEGIN; } ELSE {Vopt_clusters=Clustering_KMeans(K,Scur_opt_means);Mopt=RandomSelect(Vopt_clusters,Minit); }

        2.4 數(shù)據(jù)篩選

        測(cè)試數(shù)據(jù)殺死的變異體越多,識(shí)別錯(cuò)誤的能力越強(qiáng).本文基于貪心算法,提出了一個(gè)優(yōu)化篩選出有效可用且無(wú)冗余的測(cè)試數(shù)據(jù)算法OptmizeTestData.

        算法3 OptmizeTestData輸入:初始測(cè)試數(shù)據(jù)集Tinit,變異體集合M1. 輸出:最終測(cè)試數(shù)據(jù)集Tfinal,被Tfinal殺死的變異體集合M2.S=GetSize(Tinit); FOR (q=1 toS) {Dq=GetData(Tinit,q);//從數(shù)據(jù)集Tinit中獲取第q個(gè)數(shù)據(jù) //在M1上運(yùn)行Dq,返回被殺的變異體集合KMutantqKMutantq=MutationTest(Dq,M1); }Tfinal={};M2={}; DO { //從KMutant-M2集合里選擇殺死變異體個(gè)數(shù)最多的子集KMutantmax=MAX(KMutant-M2); //數(shù)據(jù)Dmax為殺死變異體最多的對(duì)應(yīng)數(shù)據(jù)Tfinal=Tfinal∪Dmax;M2=M2∪KMutantmax; } WHILE (KMutantmaxis not Null)

        KMutant={KMutant1,KMutant2,…,KMutants}為當(dāng)前Tfinal所能殺死的變異體集合.KMutant-M2表示從KMutant中每一個(gè)子集刪去M2中已被殺死的變異體元素,得到當(dāng)前Tfinal尚不能殺死的變異體集合.經(jīng)過(guò)循環(huán)篩選便可得到優(yōu)化后的最終測(cè)試數(shù)據(jù)集.需要說(shuō)明的是,算法OptmizeTestData并不是單純選擇那些殺死變異體最多的測(cè)試數(shù)據(jù).例如,測(cè)試數(shù)據(jù)T1能夠殺死變異體1,2,3,4,9,11;測(cè)試數(shù)據(jù)T2能夠殺死1,2,3,4,9;測(cè)試數(shù)據(jù)T3能夠殺死13,14,17.采用該算法最終選擇的測(cè)試數(shù)據(jù)是T1和T3,而非T1和T2.原因在于,雖然T2殺死變異體的個(gè)數(shù)比T3多,但對(duì)于任意一個(gè)T2殺死的變異體,T1都能將其殺死,而T3能殺死新的變異體,故T3的錯(cuò)誤檢測(cè)能力強(qiáng)于T2.

        3 測(cè)試執(zhí)行實(shí)驗(yàn)及效果分析

        本文以一個(gè)網(wǎng)上購(gòu)物RESTful Web服務(wù)系統(tǒng)為應(yīng)用實(shí)例,采用ATD4MW軟件來(lái)生成該服務(wù)的測(cè)試數(shù)據(jù).該Web服務(wù)系統(tǒng)包含3個(gè)資源:商品資源Pres、用戶資源Ures和購(gòu)買(mǎi)服務(wù)資源Bres.通過(guò)UserRes資源來(lái)管理用戶帳戶,采用Pres資源的GetProduct方法函數(shù)檢索商品,利用Bres資源的BuyProcess方法函數(shù)購(gòu)買(mǎi)商品.下文以BuyProcess方法為例,該方法的輸入數(shù)據(jù)為一組名為Product的復(fù)合類型,包括String類型的商品名稱Pname和Int類型的購(gòu)買(mǎi)數(shù)量Pcount.擴(kuò)展后復(fù)合類型的描述如下:

        實(shí)驗(yàn)執(zhí)行硬件為2.5 GHz i7處理器、4 GB內(nèi)存.共設(shè)計(jì)如下3組實(shí)驗(yàn):① 購(gòu)買(mǎi)1種商品;② 購(gòu)買(mǎi)2種商品;③ 購(gòu)買(mǎi)3種商品.購(gòu)買(mǎi)1,2,3種商品分別需輸入2,4,6個(gè)參數(shù).

        實(shí)驗(yàn)后的測(cè)試生成效果見(jiàn)表2.由表可知,隨著輸入?yún)?shù)個(gè)數(shù)的增加,初始測(cè)試數(shù)據(jù)的個(gè)數(shù)呈指數(shù)增長(zhǎng),但采用本文提出的測(cè)試數(shù)據(jù)優(yōu)化篩選方法可以在保證測(cè)試數(shù)據(jù)可用且無(wú)冗余的基礎(chǔ)上極大地縮小測(cè)試數(shù)據(jù)集,淘汰掉絕大部分冗余數(shù)據(jù).同時(shí),當(dāng)測(cè)試數(shù)據(jù)量較大時(shí),利用ATD4MW的分布式處理可以有效減短數(shù)據(jù)篩選時(shí)間.

        表2 測(cè)試生成效果

        等價(jià)變異檢測(cè)效果見(jiàn)表3.由表可知,隨著輸入?yún)?shù)個(gè)數(shù)的增加,變異充分度出現(xiàn)一定幅度的下降,下降的原因是產(chǎn)生了一定數(shù)量的等價(jià)變異體.等價(jià)變異體的存在不僅會(huì)降低變異測(cè)試的充分度,而且長(zhǎng)期駐留內(nèi)存還會(huì)耗費(fèi)一定的計(jì)算資源和存儲(chǔ)資源,因此需要對(duì)等價(jià)變異體進(jìn)行剔除,使變異充分度得到提升.但變異充分度未達(dá)到100%,原因可能是部分等價(jià)變異體沒(méi)有檢測(cè)到或由于測(cè)試數(shù)據(jù)不夠充分導(dǎo)致該被殺死的變異體沒(méi)有被殺死或誤認(rèn)為等價(jià)變異體.

        表3 變異充分度比較 %

        隨著變異體個(gè)數(shù)的增加,聚類花費(fèi)的時(shí)間也迅速增加.但由表4可知,經(jīng)過(guò)聚類后變異體個(gè)數(shù)減少,會(huì)直接導(dǎo)致變異測(cè)試的時(shí)間開(kāi)銷(xiāo)大為降低,故為聚類操作花費(fèi)的額外時(shí)間開(kāi)銷(xiāo)是可接受的.

        表4 變異體聚類效果

        此外,本文還對(duì)GetProduct檢索商品方法完成了與上述BuyProcess方法相類似的測(cè)試數(shù)據(jù)生成及優(yōu)化過(guò)程,即設(shè)計(jì)出一組檢索1種商品的實(shí)驗(yàn),獲得初始測(cè)試數(shù)據(jù)58個(gè)、篩選后測(cè)試數(shù)據(jù)6個(gè),變異充分度為100%.實(shí)驗(yàn)結(jié)果證明了本文所提方法及支撐工具軟件的有效性和可用性.

        4 結(jié)論

        1) 提出了一種基于變異測(cè)試技術(shù)的RESTful Web服務(wù)測(cè)試數(shù)據(jù)優(yōu)化生成方法,對(duì)服務(wù)WADL 描述增加數(shù)據(jù)類型約束,并對(duì)約束關(guān)系進(jìn)行變異.

        2) 采用聚類技術(shù)完成變異體集的約簡(jiǎn),并利用貪心算法對(duì)初始測(cè)試數(shù)據(jù)進(jìn)行優(yōu)化篩選,從而可生成無(wú)冗余、有效可用的測(cè)試數(shù)據(jù)集,進(jìn)而研發(fā)了基于Hadoop的測(cè)試數(shù)據(jù)自動(dòng)生成支撐軟件ATD4MW,實(shí)現(xiàn)了針對(duì)RESTful Web服務(wù)的無(wú)冗余測(cè)試數(shù)據(jù)集的自動(dòng)生成.

        3) 利用所提的數(shù)據(jù)優(yōu)化生成方法及ATD4MW支撐軟件,在保證測(cè)試數(shù)據(jù)可用且無(wú)冗余的基礎(chǔ)上,能夠極大縮減測(cè)試數(shù)據(jù)集的規(guī)模和測(cè)試數(shù)據(jù)生成時(shí)間.

        References)

        [1]李剛, 孫紅梅, 李智, 等. 資源受限Web服務(wù)[J]. 計(jì)算機(jī)學(xué)報(bào), 2010, 33(2): 193-207. DOI:10.3724/SP.J.1016.2010.00193. Li Gang, Sun Hongmei, Li Zhi, et al. Resource constrained web services[J].ChineseJournalofComputers, 2010, 33(2): 193-207. DOI:10.3724/SP.J.1016.2010.00193.(in Chinese)

        [2]姜瑛, 辛國(guó)茂, 單錦輝, 等. 一種Web服務(wù)的測(cè)試數(shù)據(jù)自動(dòng)生成方法[J]. 計(jì)算機(jī)學(xué)報(bào), 2005, 28(4): 568-577. DOI:10.3321/j.issn:0254-4164.2005.04.015. Jiang Ying, Xin Guomao, Shan Jinhui, et al. A method of automated test data generation for web service[J].ChineseJournalofComputers, 2005, 28(4): 568-577. DOI:10.3321/j.issn:0254-4164.2005.04.015.(in Chinese)

        [3]Vanderveen P, Janzen M, Tappenden A F. A web service test generator[C]//2014IEEEInternationalConferenceonSoftwareMaintenanceandEvolution. Victoria, Canada, 2014: 516-520. DOI:10.1109/icsme.2014.85.

        [4]Zhou L, Xu L, Xu B, et al. Generating test cases for composite web services by parsing XML documents and solving constraints [C]//2015IEEE39thAnnualComputerSoftwareandApplicationsConference. Taichung, China, 2015: 304-309. DOI:10.1109/compsac.2015.51.

        [5]許蕾, 李言輝, 陳林, 等. 一種面向用戶需求的Web服務(wù)測(cè)試方法[J]. 計(jì)算機(jī)學(xué)報(bào), 2014, 37(3): 512-521. DOI:10.3724/SP.J.1016.2014.00512. Xu Lei, Li Yanhui, Chen Lin, et al. A testing method for web services focusing on user requirements[J].ChineseJournalofComputers, 2014, 37(3): 512-521. DOI:10.3724/SP.J.1016.2014.00512.(in Chinese)

        [6]Ji S, Li B, Zhang P. Test case selection for data flow based regression testing of BPEL composite services [C]//2016IEEEInternationalConferenceonServicesComputing(SCC). San Francisco,CA, USA, 2016: 547-554. DOI:10.1109/scc.2016.77.

        [7]Kao C H, Lin C C, Chen J N. Performance testing framework for REST-based web applications[C]//2013 13thInternationalConferenceonQualitySoftware. New York, USA, 2013: 349-354. DOI:10.1109/qsic.2013.32.

        [8]Mizouni R, Serhani M A, Dssouli R, et al. Performance evaluation of mobile web services[C]//2011IEEENinthEuropeanConferenceonWebServices. New Orleans, Louisiana, USA, 2011: 184-191. DOI:10.1109/ecows.2011.12.

        [9]Hadley M J. Web application description language (WADL)[EB/OL]. (2016-01-08)[2016-085-01]. https://wadl.java.net.

        [10]Offutt A J, Pan J. Detecting equivalent mutants and the feasible path problem[C]//11thAnnualConferenceonComputerAssurance. New York, USA, 1996: 224-236.

        Mutation testing based test data optimized generation method for RESTful web service

        Liu Jing Chen Wenjie

        (College of Computer Science, Inner Mongolia University, Hohhot 010021, China)

        To promote the efficiency and feasibility of test data generation for the REST(respresentational state transfer) based web service system, a mutation testing based test data optimized generation method is proposed. The web application description language(WADL) corresponding for the RESTful web service system is extended with data type constrains, and the elementary test data sets are generated according to these constrains. Mutants are then generated by mutation testing towards constrain relationship. The equivalent mutants are eliminated and the mutant set reduction is performed by using clustering technology. The elementary test data sets are optimally selected by using the greedy algorithm to generate non-redundant and feasible test data sets for the RESTful web service system. A supporting software for automatic test date generation for the RESTful web service systems is developed based on Hadoop platform technology. The test execution results show that the scale of test data sets and test generation time are greatly reduced with the guarantee of non-redundancy and availability of the test data. The automatic and optimal test data generation for RESTful web service systems is achieved and the test generation is improved.

        test data generation; RESTful web service; web application description language(WADL); mutation testing

        10.3969/j.issn.1001-0505.2017.03.010

        2016-10-05. 作者簡(jiǎn)介: 劉靖(1981—),男,博士,副教授,liujing@imu.edu.cn.

        國(guó)家自然科學(xué)基金資助項(xiàng)目(61262017, 61662051)、內(nèi)蒙古自然科學(xué)基金資助項(xiàng)目(2015MS0611).

        劉靖,陳文杰.基于變異測(cè)試的RESTful Web服務(wù)測(cè)試數(shù)據(jù)優(yōu)化生成方法[J].東南大學(xué)學(xué)報(bào)(自然科學(xué)版),2017,47(3):472-477.

        10.3969/j.issn.1001-0505.2017.03.010.

        TP393

        A

        1001-0505(2017)03-0472-06

        猜你喜歡
        數(shù)據(jù)類型測(cè)試數(shù)據(jù)等價(jià)
        詳談Java中的基本數(shù)據(jù)類型與引用數(shù)據(jù)類型
        如何理解數(shù)據(jù)結(jié)構(gòu)中的抽象數(shù)據(jù)類型
        測(cè)試數(shù)據(jù)管理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)
        n次自然數(shù)冪和的一個(gè)等價(jià)無(wú)窮大
        中文信息(2017年12期)2018-01-27 08:22:58
        基于自適應(yīng)粒子群優(yōu)化算法的測(cè)試數(shù)據(jù)擴(kuò)增方法
        空間co-location挖掘模式在學(xué)生體能測(cè)試數(shù)據(jù)中的應(yīng)用
        體育科技(2016年2期)2016-02-28 17:06:21
        收斂的非線性迭代數(shù)列xn+1=g(xn)的等價(jià)數(shù)列
        環(huán)Fpm+uFpm+…+uk-1Fpm上常循環(huán)碼的等價(jià)性
        關(guān)于環(huán)Fpm+uFpm上常循環(huán)碼的等價(jià)性
        影響《標(biāo)準(zhǔn)》測(cè)試數(shù)據(jù)真實(shí)性的因素及破解策略
        體育師友(2011年5期)2011-03-20 15:29:51
        日本高清视频wwww色| 久久久噜噜噜久久中文字幕色伊伊| 在线不卡av天堂| 精品亚洲一区二区视频| 久久久亚洲一区二区三区| 亚洲精品第四页中文字幕| 又大又长粗又爽又黄少妇视频 | 欧美精品日韩一区二区三区 | 久久一区二区三区不卡| 人日本中文字幕免费精品| 丰满少妇作爱视频免费观看 | 亚洲av精品一区二区三区| 大学生被内谢粉嫩无套| av大片在线无码永久免费网址| av资源在线永久免费观看| 中文字幕人乱码中文字幕乱码在线| 日本中文一区二区在线| 国产男小鲜肉同志免费| 亚洲成人电影在线观看精品国产 | 国产精品久久久天天影视| 一个人看的视频www免费| 国产成人亚洲综合无码DVD| 国产一区二区三区特区| 国产精品私密保养| 亚洲美免无码中文字幕在线| 官网A级毛片| 国产一区二区三区日韩在线观看| 亚洲日韩av一区二区三区中文| 五月天激情综合网| 日本一区二区三区在线观看免费| 久久精品国产av一级二级三级| 国产一区二区精品久久| 第十色丰满无码| 亚洲女同系列在线观看| 色噜噜久久综合伊人一本| 无码专区中文字幕DVD| 亚洲av一区二区网址| 三级网站亚洲三级一区| 国产69精品久久久久app下载| 久久精品国产亚洲av成人| 成人精品国产亚洲av久久|