基于變異技術(shù)的測試用例自動(dòng)生成及優(yōu)化
發(fā)布時(shí)間:2021-06-14 06:54
軟件測試是一種通過觸發(fā)軟件中存在的缺陷來提高軟件質(zhì)量的技術(shù),其核心關(guān)鍵是尋找一種合適的方法來獲得具有優(yōu)良的糾錯(cuò)能力的高質(zhì)量測試用例集。變異測試是基于缺陷植入的一種測試技術(shù),它不僅可以作為評價(jià)測試用例的標(biāo)準(zhǔn),還能在生成測試用例的過程中指導(dǎo)生成高質(zhì)量測試用例集合。但是,現(xiàn)有變異測試技術(shù)存在眾多的變異算子,使用眾多變異算子會(huì)呈指數(shù)級地生成相應(yīng)數(shù)量的變異體,從而導(dǎo)致昂貴的測試代價(jià),嚴(yán)重影響了將這一技術(shù)用于實(shí)際的測試活動(dòng)中。因此,降低現(xiàn)有的變異測試代價(jià)是非常有必要的。通過在不影響變異得分的情況下約簡變異算子集合,有助于提高生成測試用例的效率。本文基于變異研究新的測試用例生成方法,從而能夠得到較短測試用例長度、較高測試覆蓋率、較高變異得分、較強(qiáng)Bug檢測能力的測試用例最優(yōu)集。首先,針對變異體數(shù)量的問題,本文提出一個(gè)基于Selective Mutation的變異算子選擇策略。從變異測試常用工具M(jìn)ujava的19個(gè)變異算子中,選擇出一個(gè)變異算子子集。該子集僅包含5個(gè)變異算子AOIU、AOIS、ROR、AORS、AORB,使用該子集獲得的測試用例能夠在全集的變異體上獲得95%以上的平均變異得分。因此,使...
【文章來源】:西南科技大學(xué)四川省
【文章頁數(shù)】:56 頁
【學(xué)位級別】:碩士
【部分圖文】:
變異測試流程圖
西南科技大學(xué)碩士學(xué)位論文10寫出的有缺陷代碼與正確代碼的在重要部分都完全一致,僅因?yàn)槭韬鲈斐闪艘恍┚幋a失誤導(dǎo)致了小bug(不考慮代碼的邏輯錯(cuò)誤)。基于這個(gè)理論,變異測試使用變異算子的作用來代替程序員實(shí)際可能會(huì)犯的錯(cuò)誤。耦合效應(yīng)假設(shè)則為若一個(gè)測試用例可以檢測出簡單bug,則該用例也具有檢測到更復(fù)雜的bug的能力。把通過改變程序的語法來生成變異體的操作稱為變異算子(mutantoperators),它定義了如何將語法變化引入到程序之中。例如,算術(shù)變異算子改變程序語法時(shí),例如將+改為-(如圖2-2)。Offutt和King于1987年對Fortran77首次提出了22種變異算子,這些變異算子的簡稱和描述如表2-1所示。在隨后的研究人員對變異算子的設(shè)定中都將這組22個(gè)變異算子作為基礎(chǔ)變異算子。圖2-2一個(gè)變異算子的操作過程表2-1F77定義的常用22種變異算子圖2-1中的等價(jià)變異體指的是在語義上等同于原始程序的變異體。通過去除這些無用類型的變異體,能夠獲得了兩個(gè)重要的好處:首先,降低了執(zhí)行變異所需的效率,其次,提高了變異分?jǐn)?shù)測量的準(zhǔn)確性。一個(gè)簡單的等價(jià)變異體如圖2-3所示。變異算子描述變異算子描述AAR數(shù)組引用替代GLRGOTO標(biāo)簽替代ABS插入絕對值LCR邏輯運(yùn)算符替代ACR數(shù)組引用替代常量ROR關(guān)系運(yùn)算符替代AOR算術(shù)運(yùn)算符替代RSRReturn語句替代ASR數(shù)組引用替代變量SAN語句分析CAR常量替代數(shù)組引用SAR變量替代數(shù)組引用CNR數(shù)組名替代SCR變量替代常量CRP常量替代SDL語句刪除CSR常量替代變量SRC源常量替代DERDo語句修改SVR變量替代DSADATA語句修改UOI一元操作符插入
等價(jià)變異體
本文編號:3229303
【文章來源】:西南科技大學(xué)四川省
【文章頁數(shù)】:56 頁
【學(xué)位級別】:碩士
【部分圖文】:
變異測試流程圖
西南科技大學(xué)碩士學(xué)位論文10寫出的有缺陷代碼與正確代碼的在重要部分都完全一致,僅因?yàn)槭韬鲈斐闪艘恍┚幋a失誤導(dǎo)致了小bug(不考慮代碼的邏輯錯(cuò)誤)。基于這個(gè)理論,變異測試使用變異算子的作用來代替程序員實(shí)際可能會(huì)犯的錯(cuò)誤。耦合效應(yīng)假設(shè)則為若一個(gè)測試用例可以檢測出簡單bug,則該用例也具有檢測到更復(fù)雜的bug的能力。把通過改變程序的語法來生成變異體的操作稱為變異算子(mutantoperators),它定義了如何將語法變化引入到程序之中。例如,算術(shù)變異算子改變程序語法時(shí),例如將+改為-(如圖2-2)。Offutt和King于1987年對Fortran77首次提出了22種變異算子,這些變異算子的簡稱和描述如表2-1所示。在隨后的研究人員對變異算子的設(shè)定中都將這組22個(gè)變異算子作為基礎(chǔ)變異算子。圖2-2一個(gè)變異算子的操作過程表2-1F77定義的常用22種變異算子圖2-1中的等價(jià)變異體指的是在語義上等同于原始程序的變異體。通過去除這些無用類型的變異體,能夠獲得了兩個(gè)重要的好處:首先,降低了執(zhí)行變異所需的效率,其次,提高了變異分?jǐn)?shù)測量的準(zhǔn)確性。一個(gè)簡單的等價(jià)變異體如圖2-3所示。變異算子描述變異算子描述AAR數(shù)組引用替代GLRGOTO標(biāo)簽替代ABS插入絕對值LCR邏輯運(yùn)算符替代ACR數(shù)組引用替代常量ROR關(guān)系運(yùn)算符替代AOR算術(shù)運(yùn)算符替代RSRReturn語句替代ASR數(shù)組引用替代變量SAN語句分析CAR常量替代數(shù)組引用SAR變量替代數(shù)組引用CNR數(shù)組名替代SCR變量替代常量CRP常量替代SDL語句刪除CSR常量替代變量SRC源常量替代DERDo語句修改SVR變量替代DSADATA語句修改UOI一元操作符插入
等價(jià)變異體
本文編號:3229303
本文鏈接:http://sikaile.net/kejilunwen/ruanjiangongchenglunwen/3229303.html
最近更新
教材專著