• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      蛻變測(cè)試技術(shù)綜述

      2024-10-10 00:00:00朱小艷江明月
      軟件工程 2024年10期

      關(guān)鍵詞:蛻變測(cè)試;蛻變關(guān)系;Oracle問(wèn)題;蛻變測(cè)試應(yīng)用

      中圖分類號(hào):TP399 文獻(xiàn)標(biāo)志碼:A

      0引言(Introduction)

      軟件測(cè)試旨在檢測(cè)程序中的缺陷或錯(cuò)誤,是軟件開發(fā)過(guò)程中一項(xiàng)重要但成本高昂的活動(dòng)。軟件測(cè)試工作要求盡可能地實(shí)現(xiàn)測(cè)試流程的自動(dòng)化,旨在提升測(cè)試速度、降低成本并增強(qiáng)可靠性。為此,需要構(gòu)建預(yù)期輸出以區(qū)分被測(cè)系統(tǒng)正確和錯(cuò)誤的行為。然而,針對(duì)一些復(fù)雜的程序,預(yù)測(cè)其正確的輸出相當(dāng)困難,這被稱為軟件測(cè)試的Oracle問(wèn)題[1],是軟件測(cè)試面臨的基本挑戰(zhàn)。

      為了緩解軟件測(cè)試中的Oracle問(wèn)題,CHEN等[1]提出蛻變測(cè)試(Metamorphic Testing, MT)技術(shù),其與傳統(tǒng)測(cè)試技術(shù)的不同之處在于,它不關(guān)注對(duì)被測(cè)軟件每個(gè)單獨(dú)輸出的驗(yàn)證,而是著重檢查其多次執(zhí)行的輸入和輸出之間的關(guān)系,因此可以有效解決預(yù)期輸出難以構(gòu)造的問(wèn)題。

      蛻變測(cè)試技術(shù)自提出以來(lái),相關(guān)文獻(xiàn)不斷涌現(xiàn),涵蓋了豐富的技術(shù)、應(yīng)用和評(píng)估研究。然而,大部分文獻(xiàn)尚未經(jīng)過(guò)系統(tǒng)的回顧,這在一定程度上阻礙了對(duì)現(xiàn)有技術(shù)的分析和新研究方向的確定。為此,本文調(diào)研了自2016年以來(lái)與蛻變測(cè)試相關(guān)的研究工作。從蛻變測(cè)試原理和過(guò)程、蛻變關(guān)系及蛻變測(cè)試應(yīng)用3個(gè)方面對(duì)其國(guó)內(nèi)外研究現(xiàn)狀進(jìn)行了梳理和分析,歸納總結(jié)了適用于各個(gè)領(lǐng)域的6種蛻變關(guān)系模式,并對(duì)蛻變測(cè)試技術(shù)的未來(lái)發(fā)展方向提出了展望。

      1 蛻變測(cè)試原理(Metamorphic testing principles)

      1.1 基本概念和原理

      蛻變測(cè)試技術(shù)是一種基于屬性的驗(yàn)證方法,它獨(dú)辟蹊徑,從大多數(shù)其他測(cè)試策略未曾涉足的角度來(lái)處理軟件測(cè)試領(lǐng)域中的問(wèn)題。蛻變測(cè)試并不關(guān)注每個(gè)單獨(dú)輸出的正確性,而是著眼于程序的多次執(zhí)行;它的核心在于檢查多次執(zhí)行的輸入和輸出之間的關(guān)系是否滿足程序功能的預(yù)期屬性,這些屬性也稱為蛻變關(guān)系(Metamorphic Relation,MR)。蛻變關(guān)系將現(xiàn)有測(cè)試用例(原始輸入)轉(zhuǎn)換為新的測(cè)試用例(衍生輸入)。若程序在原始測(cè)試用例和衍生測(cè)試用例中的行為違反了蛻變關(guān)系,則表明該程序存在缺陷。下面對(duì)蛻變測(cè)試中蛻變關(guān)系、原始輸入/衍生輸入給出具體定義。

      定義1.2原始輸入/衍生輸入[2]:使用蛻變關(guān)系(r,rf )檢測(cè)程序P時(shí),起初給定的測(cè)試用例,即從現(xiàn)有數(shù)據(jù)集中選擇的或利用測(cè)試用例生成技術(shù)產(chǎn)生的測(cè)試用例,稱為原始輸入;由原始輸入依據(jù)關(guān)系r 轉(zhuǎn)化生成的新測(cè)試用例,稱為基于蛻變關(guān)系(r,rf )的衍生輸入。

      1.2 蛻變測(cè)試過(guò)程

      基于蛻變測(cè)試原理可知,應(yīng)用蛻變測(cè)試的過(guò)程可以分為以下3個(gè)步驟,蛻變測(cè)試過(guò)程如圖1所示。

      (1)識(shí)別和定義蛻變關(guān)系

      一般來(lái)說(shuō),蛻變關(guān)系的識(shí)別可以通過(guò)參考系統(tǒng)的需求或基于用戶對(duì)系統(tǒng)的期望實(shí)現(xiàn)。蛻變關(guān)系(r,rf )描述了如何從給定的原始輸入中構(gòu)造衍生輸入。蛻變關(guān)系的識(shí)別和定義是應(yīng)用蛻變測(cè)試的關(guān)鍵步驟,它直接影響最終的測(cè)試效果。

      (2)測(cè)試用例生成

      原始輸入x0可以從現(xiàn)有數(shù)據(jù)集中篩選,也可以利用測(cè)試用例生成策略(如隨機(jī)測(cè)試)生成符合蛻變關(guān)系限制條件的原始輸入,然后依據(jù)構(gòu)造的蛻變關(guān)系r 將原始輸入自動(dòng)轉(zhuǎn)化為衍生輸入r(x0)。

      (3)測(cè)試用例執(zhí)行

      在待測(cè)程序P 上執(zhí)行原始輸入和衍生輸入,然后檢查原始輸出P(x0)和衍生輸出P(r(x0))之間是否違反了相應(yīng)的蛻變關(guān)系rf 。若違反,則表明程序P 中存在錯(cuò)誤或偏離用戶期望。

      2.2 蛻變關(guān)系的使用情況

      實(shí)驗(yàn)中使用的蛻變關(guān)系的數(shù)量是衡量蛻變測(cè)試所需工作量的重要指標(biāo)。本文對(duì)現(xiàn)有文獻(xiàn)中蛻變關(guān)系的使用情況進(jìn)行了統(tǒng)計(jì)分析,結(jié)果如圖2所示。從圖2中可以看出,有50%的研究使用了1~4個(gè)蛻變關(guān)系,37%的研究使用了5~9個(gè)蛻變關(guān)系,呈現(xiàn)10個(gè)及10個(gè)以上蛻變關(guān)系的研究只占13%。SEGURA等[4]總結(jié)了1998年至2015年發(fā)表的蛻變測(cè)試相關(guān)論文中蛻變關(guān)系的使用情況。與之相比發(fā)現(xiàn),近年來(lái)的研究中使用1~4個(gè)蛻變關(guān)系的比例由24%提升至50%,而使用10個(gè)及10個(gè)以上蛻變關(guān)系的比例由37%降至13%,表明相對(duì)于蛻變關(guān)系的數(shù)量,近年來(lái)的研究更加注重蛻變關(guān)系的有效性。LE等[5]基于蛻變測(cè)試技術(shù)開發(fā)了一種測(cè)試編譯器的工具,并在流行的GCC(GNU Compiler Collection)等編譯器中檢測(cè)到100多個(gè)錯(cuò)誤。盡管在此之前,TAO等[6]也曾利用蛻變測(cè)試對(duì)編譯器進(jìn)行驗(yàn)證,但只在GCC等編譯器中檢測(cè)到了一個(gè)錯(cuò)誤。檢測(cè)到的錯(cuò)誤數(shù)量的巨大差異也強(qiáng)調(diào)了蛻變關(guān)系的選擇對(duì)蛻變測(cè)試故障檢測(cè)有效性的顯著影響。

      蛻變關(guān)系通常是基于被測(cè)試系統(tǒng)的必要屬性定義的。由于這些屬性通常數(shù)量巨大,因此幾乎不可能獲得代表所有這些屬性的完整蛻變關(guān)系集。然而,LIU等[7]的實(shí)證研究表明,僅使用少數(shù)幾個(gè)蛻變關(guān)系就能在故障檢測(cè)方面非常接近預(yù)言機(jī)制。他們測(cè)試了6種不同的程序后發(fā)現(xiàn),蛻變測(cè)試平均只需3~6個(gè)不同的蛻變關(guān)系即可揭示至少90%的故障。這表明適度數(shù)量的蛻變關(guān)系(少于10個(gè))通常足以應(yīng)用于蛻變測(cè)試并獲得預(yù)期結(jié)果。此外,與為應(yīng)用程序提出具體的蛻變關(guān)系相比,近期的研究更傾向于設(shè)計(jì)蛻變關(guān)系模式。一個(gè)蛻變關(guān)系模式可以推導(dǎo)出許多具體的蛻變關(guān)系,這也是影響蛻變關(guān)系數(shù)量統(tǒng)計(jì)結(jié)果的重要因素。

      2.3 蛻變關(guān)系模式

      應(yīng)用蛻變測(cè)試的一個(gè)挑戰(zhàn)是識(shí)別有效的蛻變關(guān)系。在早期的蛻變測(cè)試研究中,蛻變關(guān)系通常是針對(duì)研究問(wèn)題單獨(dú)識(shí)別的。這些蛻變關(guān)系通常只考慮了一種特定類型的被測(cè)軟件,因此缺乏通用性,無(wú)法涵蓋其他應(yīng)用類型的功能和特性。為了能夠系統(tǒng)地識(shí)別蛻變關(guān)系,ZHOU 等[8]提出了“蛻變關(guān)系模式(Metamorphic Relation Pattern,MRP)”的概念,作為表征一組(可能無(wú)限多)蛻變關(guān)系的抽象。

      使用蛻變關(guān)系模式對(duì)于識(shí)別蛻變關(guān)系具有巨大的幫助。這是因?yàn)椤澳J健蹦軌蛞龑?dǎo)測(cè)試人員搜索具有某種結(jié)構(gòu)的蛻變關(guān)系,使得蛻變關(guān)系的識(shí)別比從頭開始時(shí)容易。ZHOU 等[8]觀察到,對(duì)稱性是現(xiàn)實(shí)世界固有的、普遍的、深刻的屬性。計(jì)算機(jī)系統(tǒng)通常通過(guò)模擬、建?;?qū)W習(xí)現(xiàn)實(shí)世界的方法解決問(wèn)題,因此對(duì)稱性也是許多計(jì)算機(jī)系統(tǒng)普遍需要的屬性。于是他們進(jìn)一步提出“對(duì)稱性”蛻變關(guān)系模式的概念,它被定義為“theexistence of different viewpoints from which the system appears thesame”,即存在不同的角度去測(cè)試系統(tǒng),并且此時(shí)系統(tǒng)行為應(yīng)該是相似的?!皩?duì)稱性”蛻變關(guān)系模式具有通用性,適用于各個(gè)領(lǐng)域。需要注意的是,在“對(duì)稱性”蛻變關(guān)系模式的定義中,“the system appears the same”并不意味著軟件系統(tǒng)的原始輸出和衍生輸出必須具有相同或等價(jià)的關(guān)系。他們使用“對(duì)稱性”蛻變關(guān)系模式,在商業(yè)網(wǎng)站、導(dǎo)航軟件、人臉識(shí)別、視頻分析軟件等多個(gè)不同的應(yīng)用領(lǐng)域進(jìn)行了深入的研究,結(jié)果表明,該模式可以有效地幫助用戶檢測(cè)到先前未知的故障。

      蛻變關(guān)系模式可以形成層次結(jié)構(gòu),較高級(jí)別的蛻變關(guān)系模式更抽象,而較低級(jí)別的蛻變關(guān)系模式則更具體。之后,WU等[9]提出了“噪聲”蛻變關(guān)系模式作為“對(duì)稱性”蛻變關(guān)系模式的子模式,它被定義為“the requirement that a reliable systemshould be able to perform its functions when a low level ofinterference (noise) is present”,即當(dāng)輸入數(shù)據(jù)或環(huán)境中存在低水平的干擾(噪聲)時(shí),不應(yīng)該對(duì)可靠系統(tǒng)的輸出產(chǎn)生強(qiáng)烈的影響。本文基于收集的文獻(xiàn),對(duì)其中使用的蛻變關(guān)系進(jìn)行了分類、統(tǒng)計(jì)和分析,總結(jié)出“添加”“移除”“修改”“排列”“分區(qū)”“連接”6種蛻變關(guān)系模式。相較于“噪聲”蛻變關(guān)系模式,這6種蛻變關(guān)系模式的抽象程度更低,但它們同樣適用于各個(gè)領(lǐng)域,可結(jié)合被測(cè)軟件的特征實(shí)例化為具體形式的蛻變關(guān)系。以下是對(duì)這6種蛻變關(guān)系模式的定義,并舉例說(shuō)明如何將它們實(shí)例化。

      (1)“添加”蛻變關(guān)系模式

      該模式通過(guò)在原始測(cè)試用例中添加一個(gè)或多個(gè)數(shù)據(jù),構(gòu)建衍生測(cè)試用例。例如,在對(duì)機(jī)器學(xué)習(xí)無(wú)監(jiān)督聚類程序的研究中,該模式可以實(shí)例化為“添加一個(gè)或多個(gè)重復(fù)的點(diǎn),不應(yīng)該對(duì)聚類結(jié)果產(chǎn)生影響”。

      (2)“移除”蛻變關(guān)系模式該模式通過(guò)在原始測(cè)試用例中移除一個(gè)或多個(gè)數(shù)據(jù),構(gòu)建衍生測(cè)試用例。例如,在測(cè)試機(jī)器翻譯系統(tǒng)時(shí),該模式可以實(shí)例化為“刪除原始句子中的關(guān)鍵詞或短語(yǔ),得到的翻譯應(yīng)與原本的不同”。

      (3)“修改”蛻變關(guān)系模式該模式通過(guò)在原始測(cè)試用例中修改部分?jǐn)?shù)據(jù),構(gòu)建衍生測(cè)試用例。例如,自動(dòng)駕駛領(lǐng)域通常利用圖像變換技術(shù)生成模擬真實(shí)駕駛場(chǎng)景的合成圖像,因此該模式可以實(shí)例化為“在原始圖像上添加雨霧效果,汽車駕駛行為不應(yīng)該有明顯變化”。

      (4)“排列”蛻變關(guān)系模式該模式通過(guò)改變?cè)紲y(cè)試用例中數(shù)據(jù)的順序,構(gòu)建衍生測(cè)試用例。例如,在測(cè)試導(dǎo)航軟件時(shí),該模式可以實(shí)例化為“交換起點(diǎn)和終點(diǎn),導(dǎo)航系統(tǒng)輸出的路徑代價(jià)(時(shí)間、距離等)應(yīng)該不變”。

      (5)“分區(qū)”蛻變關(guān)系模式前4種模式都是對(duì)一個(gè)原始測(cè)試用例施加某種操作來(lái)構(gòu)建衍生測(cè)試用例。與之不同,“分區(qū)”蛻變關(guān)系模式是對(duì)一個(gè)原始測(cè)試用例按照某種分區(qū)策略進(jìn)行劃分,從而構(gòu)建多個(gè)衍生測(cè)試用例。同樣以導(dǎo)航軟件為例,假設(shè)a1 到an 的最優(yōu)路線需要經(jīng)過(guò)a2、a3、…、an-1,以途經(jīng)地劃分原始測(cè)試用例,則該模式可以實(shí)例化為“a1 到an 的路徑代價(jià)應(yīng)該等于a1 到a2、a2到a3、…、an-1到an的路徑代價(jià)之和”。

      (6)“連接”蛻變關(guān)系模式

      與“分區(qū)”蛻變關(guān)系模式相反,該模式是把多個(gè)原始測(cè)試用例結(jié)合在一起構(gòu)建一個(gè)衍生測(cè)試用例。以自然語(yǔ)言推理模型為例,它旨在判斷能否從一個(gè)給定的前提p 中推導(dǎo)出假設(shè)h。假設(shè)前提p1 可以推導(dǎo)出h(記為p1→h),前提p2 也可以推導(dǎo)出h(記為p2→h),則該模式可以實(shí)例化為“將兩個(gè)前提p1 和p2 結(jié)合起來(lái)構(gòu)成新的前提p,則p 能推導(dǎo)出h,即令p1∧p2=p,則p→h”。

      對(duì)于上述6種模式,本文并沒(méi)有指定被測(cè)系統(tǒng)的輸出應(yīng)該如何變化。這是因?yàn)橥懽冴P(guān)系模式具有通用性,衍生輸出與原始輸出之間可能存在等價(jià)、相反、包含等多種關(guān)系,所以需要結(jié)合被測(cè)試對(duì)象的特征說(shuō)明這些關(guān)系。

      3 蛻變測(cè)試應(yīng)用(Metamorphic testing application)

      3.1 功能測(cè)試

      蛻變測(cè)試技術(shù)提出至今,其主要的一個(gè)應(yīng)用仍舊是解決Oracle問(wèn)題,進(jìn)而對(duì)軟件功能進(jìn)行驗(yàn)證和確認(rèn)。表1匯總了使用蛻變測(cè)試進(jìn)行功能驗(yàn)證的應(yīng)用領(lǐng)域。

      (1)機(jī)器學(xué)習(xí)

      近年來(lái),隨著人工智能技術(shù)的發(fā)展,機(jī)器學(xué)習(xí)變得越來(lái)越流行。然而,Oracle問(wèn)題的存在使得這類軟件的可靠性難以保證。因此,應(yīng)用蛻變測(cè)試評(píng)估機(jī)器學(xué)習(xí)系統(tǒng)的趨勢(shì)也越來(lái)越明顯。為了提高機(jī)器翻譯系統(tǒng)的可靠性和準(zhǔn)確性,鐘文康等[10]利用蛻變測(cè)試技術(shù),分別研究了單詞粒度、短語(yǔ)粒度、句子粒度對(duì)機(jī)器翻譯的影響,達(dá)到了不借助參考譯文也能評(píng)估翻譯質(zhì)量的目的。ZHANG等[11]利用句法剪枝技術(shù)構(gòu)建等價(jià)蛻變關(guān)系,在谷歌翻譯和微軟翻譯上發(fā)現(xiàn)了超過(guò)5000個(gè)譯文錯(cuò)誤。自動(dòng)駕駛和無(wú)人機(jī)系統(tǒng)的安全性一直備受關(guān)注。ZHANG等[12]研究了一種名為DeepRoad的系統(tǒng)化的測(cè)試工具,它基于生成對(duì)抗網(wǎng)絡(luò)的技術(shù)合成能夠準(zhǔn)確反映真實(shí)世界的駕駛場(chǎng)景,并利用蛻變關(guān)系檢測(cè)自動(dòng)駕駛系統(tǒng)的錯(cuò)誤行為。WU等[13]為無(wú)人機(jī)系統(tǒng)設(shè)計(jì)了3種蛻變關(guān)系,并基于網(wǎng)格搜索算法驗(yàn)證其路徑規(guī)劃的正確性。為了更加深入地了解問(wèn)答系統(tǒng)對(duì)于自然語(yǔ)言的理解能力,CHEN等[14]根據(jù)多種語(yǔ)言學(xué)特性為問(wèn)答系統(tǒng)設(shè)計(jì)蛻變關(guān)系。實(shí)驗(yàn)結(jié)果表明,該方法不僅可以揭示傳統(tǒng)驗(yàn)證所掩蓋的問(wèn)題,還為更具體地理解問(wèn)答系統(tǒng)的語(yǔ)言能力提供了幫助。盡管像“亞馬遜”和“谷歌”等大公司已將基于深度學(xué)習(xí)的目標(biāo)檢測(cè)器商業(yè)化,但是它仍然會(huì)產(chǎn)生不正確的結(jié)果。為此,WANG等[15]專門為目標(biāo)檢測(cè)系統(tǒng)設(shè)計(jì)了名為MetaOD的自動(dòng)化測(cè)試框架。他們通過(guò)在背景圖像中插入額外的對(duì)象實(shí)例來(lái)合成自然外觀的圖像,然后在排除對(duì)插入對(duì)象的預(yù)測(cè)結(jié)果后,檢查原始圖像和合成圖像目標(biāo)識(shí)別結(jié)果的等價(jià)性。MetaOD在TensorFlow API提供的4種商業(yè)目標(biāo)檢測(cè)服務(wù)和四種預(yù)訓(xùn)練模型上進(jìn)行了評(píng)估,結(jié)果發(fā)現(xiàn)了數(shù)以萬(wàn)計(jì)的檢測(cè)失敗。為了衡量情感分析系統(tǒng)的公平性,ASYROFI等[16]通過(guò)識(shí)別并替換敏感信息,有效地揭示了情感分析系統(tǒng)中存在的偏見問(wèn)題。

      (2)Web服務(wù)和應(yīng)用軟件

      蛻變測(cè)試技術(shù)也廣泛用于驗(yàn)證Web服務(wù)和應(yīng)用軟件的正確性。SEGURA等[17]提出了一種檢測(cè)RESTful風(fēng)格Web應(yīng)用故障的蛻變測(cè)試方法,并有效地揭示了學(xué)術(shù)平臺(tái)、社交媒體平臺(tái)中的錯(cuò)誤。OpenStreetMap是由許多互不相關(guān)的用戶合作創(chuàng)建的免費(fèi)世界地圖,由于其開放性,很容易包含錯(cuò)誤信息。為此,ALMENDROS-JIMéNEZ等[18]基于蛻變測(cè)試思想開發(fā)了一個(gè)自動(dòng)檢測(cè)OpenStreetMap中錯(cuò)誤信息的框架。為了評(píng)估該框架的實(shí)用性,他們將其用于分析不同大洲4個(gè)城市的地圖,并成功發(fā)現(xiàn)了大量的錯(cuò)誤信息。為了評(píng)估內(nèi)容審核軟件對(duì)有毒信息(例如仇恨言論、惡意廣告等)的檢測(cè)能力,WANG等[19]設(shè)計(jì)了3個(gè)擾動(dòng)級(jí)別(字符、單詞和句子)的11種蛻變關(guān)系。實(shí)驗(yàn)結(jié)果表明,該方法在測(cè)試“谷歌”“百度”和“華為”提供的商業(yè)審核軟件時(shí),對(duì)錯(cuò)誤的識(shí)別率分別高達(dá)83.9%、51%和82.5%。為了緩解測(cè)試量子計(jì)算平臺(tái)的Oracle 問(wèn)題,PALTENGHI等[20]利用量子特有的屬性設(shè)計(jì)蛻變關(guān)系,并在流行的Qiskit平臺(tái)上發(fā)現(xiàn)了13個(gè)錯(cuò)誤,其中9個(gè)錯(cuò)誤已經(jīng)得到確認(rèn)。

      (3)編譯器

      為了對(duì)DL(Deep Learning)編譯器的正確性建立更深層次的理解,XIAO 等[21]為DL 編譯器設(shè)計(jì)了一個(gè)名為MTDLComp的蛻變測(cè)試框架。該框架不僅發(fā)現(xiàn)了DL編譯器中的4個(gè)錯(cuò)誤,還為改進(jìn)DL編譯器提供了指導(dǎo)。

      (4)其他

      TOLKSDORF等[22]首次將蛻變測(cè)試運(yùn)用到調(diào)試器上,其方法的核心思想是對(duì)被調(diào)試的代碼和調(diào)試操作進(jìn)行轉(zhuǎn)換,確保原始輸入和轉(zhuǎn)換后輸入的行為只能在特定的方式上有所不同。例如,添加一個(gè)斷點(diǎn)不應(yīng)該改變被調(diào)試的程序的控制流。他們將這種方法應(yīng)用于JavaScript調(diào)試器中發(fā)現(xiàn)了8個(gè)以前未知的錯(cuò)誤,并且都得到了開發(fā)人員的確認(rèn)。ZHANG等[23]介紹了測(cè)試網(wǎng)絡(luò)掃描儀的7種蛻變關(guān)系,表明蛻變測(cè)試具有評(píng)估和比較掃描儀的潛力。

      3.2 性能測(cè)試

      如“3.1”節(jié)所述,蛻變測(cè)試技術(shù)自提出以來(lái),其大多數(shù)應(yīng)用都集中在對(duì)功能故障的檢測(cè)上。然而,蛻變測(cè)試在檢測(cè)性能錯(cuò)誤方面的適用性仍然是一個(gè)值得深入探索的話題。SEGURA等[24]首次提出可以使用蛻變測(cè)試揭示性能故障,并提出了“性能蛻變測(cè)試”的概念。其中,蛻變關(guān)系是根據(jù)對(duì)程序的輸入進(jìn)行某些更改時(shí)被測(cè)程序的性能(如執(zhí)行時(shí)間)如何變化來(lái)定義的。為了驗(yàn)證該想法的可行性,他們分別在圖片加載、定位程序等一些常見應(yīng)用上進(jìn)行了實(shí)驗(yàn),結(jié)果證實(shí)了蛻變測(cè)試在自動(dòng)檢測(cè)性能錯(cuò)誤方面的潛力。JOHNSTON等[25]通過(guò)比較被測(cè)軟件的連續(xù)運(yùn)行情況,提出蛻變關(guān)系可用于改進(jìn)性能測(cè)試。為此,他們探究了蛻變關(guān)系在頁(yè)面加載時(shí)間方面的應(yīng)用。通過(guò)觀察加載時(shí)間的直方圖,發(fā)現(xiàn)并修復(fù)Adobe平臺(tái)啟動(dòng)標(biāo)簽管理器時(shí)的一個(gè)錯(cuò)誤。RIGGER等[26]通過(guò)比較數(shù)據(jù)庫(kù)管理系統(tǒng)在兩個(gè)語(yǔ)義等效查詢上運(yùn)行的時(shí)間差異,揭示潛在的性能錯(cuò)誤。該方法最終在CockroachDB和PostgreSQL中發(fā)現(xiàn)了39個(gè)潛在的性能錯(cuò)誤,其中6個(gè)性能錯(cuò)誤已經(jīng)得到了開發(fā)人員的確認(rèn)。

      3.3 其他方面

      除了功能測(cè)試和性能測(cè)試,研究人員還探索了蛻變測(cè)試在其他方面的應(yīng)用。例如,ZHOU 等[8]指出蛻變關(guān)系也可基于用戶的期望進(jìn)行定義,而非僅局限于基于開發(fā)人員的算法。這種方法更能反映用戶的真實(shí)需求,從而使蛻變測(cè)試成為一種面向用戶的方法,幫助他們更好地理解目標(biāo)軟件,并利用其滿足自身的特定需求。XU等[27]報(bào)告了機(jī)器學(xué)習(xí)中蛻變關(guān)系的一種新用途,即使用蛻變關(guān)系增強(qiáng)機(jī)器學(xué)習(xí)算法本身,而不是僅僅用于測(cè)試。他們利用圖像分離和遮擋的特性,生成蛻變關(guān)系調(diào)整機(jī)器學(xué)習(xí)系統(tǒng)的輸入和輸出,從而構(gòu)建更加精確的二元分類模型。YAN等[28]觀察到有時(shí)違反蛻變關(guān)系所反映的問(wèn)題可能不在于被測(cè)軟件,而在于測(cè)試用例本身(特定的輸入可能無(wú)效或質(zhì)量差)。這一觀察表明,蛻變關(guān)系可用于驗(yàn)證或者評(píng)估數(shù)據(jù)的質(zhì)量,而不是驗(yàn)證軟件的正確性。為了評(píng)估這一觀點(diǎn)的有效性,YAN等[28]使用了機(jī)器翻譯數(shù)據(jù)集進(jìn)行試驗(yàn),結(jié)果表明,該方法可以有效地識(shí)別數(shù)據(jù)集中翻譯不正確的語(yǔ)句。

      4 未來(lái)研究方向(Future research direction)

      關(guān)于蛻變測(cè)試的研究雖然歷史較短,但得到了學(xué)術(shù)界持續(xù)的關(guān)注,并取得了大量的研究成果。除了上文梳理的研究角度,蛻變測(cè)試技術(shù)未來(lái)的研究方向還包括如下內(nèi)容。

      (1)蛻變關(guān)系系統(tǒng)的識(shí)別。盡管已經(jīng)為各種應(yīng)用領(lǐng)域確定了許多蛻變關(guān)系,但是大多數(shù)都是以臨時(shí)和任意的方式識(shí)別的。雖然ZHOU等[8]提出了以蛻變關(guān)系模式幫助識(shí)別蛻變關(guān)系,但是相關(guān)研究仍處于初級(jí)階段。研究不同蛻變關(guān)系模式之間的關(guān)系并為其構(gòu)建家譜將是未來(lái)的一個(gè)重要研究方向。

      (2)蛻變關(guān)系的優(yōu)先級(jí)。在某些情況下,使用所有可用的蛻變關(guān)系可能成本過(guò)高,因此必須選擇它們的子集。了解如何優(yōu)先考慮最有效的蛻變關(guān)系非常重要。為此,研究人員提出使用代碼覆蓋率或測(cè)試用例相似性的方法[29-30],并取得了較好的結(jié)果。

      (3)蛻變測(cè)試工具。就目前而言,如果從業(yè)者想要應(yīng)用蛻變測(cè)試,由于沒(méi)有公開可用和維護(hù)的工具,因此他們通常需要自己開發(fā)相關(guān)工具。這成為蛻變測(cè)試在實(shí)證研究和實(shí)踐中廣泛應(yīng)用的一個(gè)重要障礙。

      5 結(jié)論(Conclusion)

      蛻變測(cè)試技術(shù)作為一種有效的測(cè)試技術(shù)正日趨成熟。本文對(duì)近年來(lái)與蛻變測(cè)試相關(guān)的研究工作進(jìn)行了調(diào)研和總結(jié),特別關(guān)注蛻變關(guān)系的研究現(xiàn)狀和蛻變測(cè)試在不同領(lǐng)域的應(yīng)用。此外,文章還展望了蛻變測(cè)試技術(shù)未來(lái)的研究方向,旨在為蛻變測(cè)試的研究構(gòu)建一個(gè)比較完整的全景圖,并為相關(guān)研究人員提供參考和借鑒。

      作者簡(jiǎn)介:

      朱小艷(1997-),女,碩士生。研究領(lǐng)域:軟件測(cè)試。

      江明月(1985-),女,博士,副教授。研究領(lǐng)域:軟件工程,軟件調(diào)試與修復(fù)。

      红河县| 莆田市| 济宁市| 香港| 交城县| 宜川县| 壤塘县| 开江县| 寿光市| 高唐县| 新田县| 涿鹿县| 泗洪县| 灵山县| 于都县| 铁岭县| 姚安县| 诸暨市| 永寿县| 阳春市| 临猗县| 麻江县| 松潘县| 长葛市| 合作市| 孙吴县| 重庆市| 平定县| 荥经县| 原阳县| 仙桃市| 蒙自县| 九龙县| 沁源县| 满城县| 拜城县| 云南省| 福泉市| 常德市| 永春县| 容城县|