[發明專利]一種軟件測試用例有序生成方法有效
| 申請號: | 202110051697.5 | 申請日: | 2021-01-14 |
| 公開(公告)號: | CN112699054B | 公開(公告)日: | 2022-02-18 |
| 發明(設計)人: | 黨向盈;阮少偉;徐瑋瑋;鮑蓉;申珅;厲丹 | 申請(專利權)人: | 徐州工程學院 |
| 主分類號: | G06F11/36 | 分類號: | G06F11/36;G06N3/12 |
| 代理公司: | 徐州市三聯專利事務所 32220 | 代理人: | 陳帥 |
| 地址: | 221000 *** | 國省代碼: | 江蘇;32 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 軟件 測試 有序 生成 方法 | ||
1.一種軟件測試用例有序生成方法,其特征在于包括以下步驟:
S1:排序變異體;
S2:構建測試用例生成數學模型;
S3:基于遺傳算法有序生成測試用例;
其中,所述的步驟S1中排序變異體的方法為:
設某一測試程序為G,程序的輸入為X,s為G中某一原語句,對其實施變異之后,得到變異語句s';滿足變異測試的必要條件“s!=s'”,其中“!=”為不等于符號,即是滿足弱變異測試準則,那么條件語句“if s!=s'”和它的真分支,基于弱變異測試準則稱為變異分支,它對應的變異體記為Mi;一個變異體對應一個變異分支;按照同樣的方法,得到所有變異體的集合,記為M={M1,M2,…,Mn},n為變異體的個數;將這些變異分支插入G中對應原語句前面,形成的新被測程序,記為G';X運行G',如果“if s!=s'”的真分支被執行,那么,基于弱變異準則Mi被殺死;
為了反映X殺死變異體Mi情況,定義一個隨機變量μi(X),
為了計算μi(X),采用數理統計的方法;首先,需要得到一個測試用例集,為此,在程序G輸入域內隨機生成R個樣本,記為X1,X2,...,XR;將Xk,k=1,2,…,R執行程序,考察在弱變異測試準則下它是否能殺死Mi,然后計算μi(Xk)的值;
假設變異體Mi,Mj,i,j=1,2,...,n,i≠j是兩個不同的變異體,定義兩個隨機變量μi(Xk)和μj(Xk),它們分別反映Mi,Mj被殺死的可能性;當Mi被殺死的情況下,Mj被殺死的情況,表示為,當μi(Xk)=1時,μj(Xk)=1的概率:
Mi和Mj之間的殺死相關度,記為αi,j,由上式表示為:
由上式可知,αi,j∈[0,1];對于所有變異體M1,M2,…,Mn之間的殺死相關度,建立變異體殺死相關矩陣Λ,記為:
M1 M2 Mj Mn
設與Mi相關的變異體的個數記為ηi;閾值記為T;Mi對應的組記為Pi;
基于Λ,變異體排序的步驟如下:
A1:ηi=0,i=1,2,...,n;
A2:考察Λ中Mi,i=1,2,...,n對應的行,Mi與每一個Mj,Mj∈M,j=1,2,...,n,Mj≠Mi的αi,j值,如果αi,j≥T,ηi=ηi+1,并將Mj放入Mi組內即Pi=Pi∪Mj;
A3:基于η1,η2,…,ηn降序排列M1,M2,…,Mn;輸出排序后的變異體,記為M’1,M’2,…,M’n;
A4:輸出排序后的變異體集合M'={M’1,M’2,…,M’n},M’i對應的組為其中ρi為組內變異體數目;
所述的步驟S2中構建測試用例生成數據模型的方法為:
對于M’i,設目標函數為fi(X),其中X為決策變量,即為程序的輸入;當X能殺死M’i,fi(X)=0;否則fi(X)=1;因此,當且僅當fi(X)取最小值0時,M’i被X殺死;通過這種方式,殺死M’i的問題轉化為求fi(X)最小值問題,表示為:
minfi(X)
然而,由上式可知fi(X)的取值只有0和1兩種,為了提供更多的信息指導種群進化,需要增加一個約束函數;
在殺死Mi'之前,測試用例必須先覆蓋變異語句s′;因此,基于分支覆蓋的約束函數,表示為:
gi(X)=Appr(s′,X)+(1-1.001-dist(s′,X))
其中Appr(s′,X)是X對于s′的層接近度,dist(s',X)為分支距離;由上式可知,當且僅當時gi(X)=0時,X能覆蓋s′;
根據X,fi(X)和gi(X),建立殺死Mi'的數學模型為:
min fi(X)
所述的步驟S3中基于遺傳算法有序生成測試用例的方法為:
基于強變異準則,采用遺傳算法生成測試用例;為了引導種群進化,需要計算進化個體的適應值;對于M’i,考慮到數學模型中包括一個目標函數和一個約束函數,適應值函數fiti(X),表示為:
其中,是很小的正整數,它的作用確保括號里的值大于0;由上式可知,當且僅當fiti(X)=0時,X能殺死了M’i;
在遺傳算法中,進化個體為X1 X2,…,XSize,其中Size為子種群中進化個體的數目;算法的輸出為生成的測試用例集;終止條件有兩個,一個是殺死所有變異體的測試用例找到;另一個是種群進化到最大進化代數g;
生成測試用例的步驟:
B1:設變量i=1;
B2:如果或者Mi'被殺死,那么,i=i+1;
B3:初始化種群和算法中的各種參數;設變量count=1;
B4:X1 X2,…,XSize執行M’i;判定終止條件是否滿足,如果滿足,轉B11;
B5:判斷X1 X2,…,XSize是否殺死M’i,如果是,移除M’i,并保存殺死它的測試用例,轉B6;否則,轉B8;
B6:X1 X2,…,XSize繼續執行P’i中其它變異體;判斷這些變異體是否都被殺死,如果是,
B7:將Pi’中被殺死的變異體,從P’j≠Pi’,j=1,2,…,n中移除;如果P’j中所有變異體都被殺死,那么i=i+1;轉B2;
B8:計算所有個體的適應值;
B9:實施選擇、交叉和變異操作;生成新進化個體,不引起混淆,仍記為X1 X2,…,XSize;
B10:count=count+1;轉B4;
B11:輸出測試用例集。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于徐州工程學院,未經徐州工程學院許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202110051697.5/1.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:一種融入模糊聚類的軟件測試方法
- 下一篇:多功能兜蘭栽培裝置





