[發明專利]一種多任務軟件測試用例進化生成方法在審
| 申請號: | 202110028394.1 | 申請日: | 2021-01-14 |
| 公開(公告)號: | CN112732577A | 公開(公告)日: | 2021-04-30 |
| 發明(設計)人: | 黨向盈;鞏敦衛;姚香娟;鮑蓉;姜代紅;阮少偉;陳磊;厲丹;李子龍;包季楠;袁偲朕 | 申請(專利權)人: | 徐州工程學院 |
| 主分類號: | G06F11/36 | 分類號: | G06F11/36;G06N3/12 |
| 代理公司: | 徐州市三聯專利事務所 32220 | 代理人: | 陳帥 |
| 地址: | 221000 *** | 國省代碼: | 江蘇;32 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 任務 軟件 測試 進化 生成 方法 | ||
1.一種多任務軟件測試用例進化生成方法,其特征在于:該方法包括以下步驟:
S1:基于所屬路徑執行的相關性分組變異分支,即靜態分析變異分支與程序路徑的執行相關性,將所屬執行路徑相同的變異分支分為同一組,具體為:
設被測程序為G,G的可執行路徑集合為P={P1,P2,…},記路徑其中si為Pi上的某一語句,si+1為si的后繼語句;對si實施變異,得到變異分支Mj,Mj的真分支表示為Mj(1);
S1.1:通過靜態分析判斷Mj(1)與si+1的執行關系;如果Mj(1)執行,si+1也能執行,那么在Pi上將Mj,Mj(1)插入si的前面,得到路徑能夠判斷P′i也是可執行性路徑;
S1.2:如果Mj(1)執行,si+1一定不執行,那么在P中尋找路徑Pj,Pj包含si,且si的后繼語句sj≠si+1。然后,通過靜態分析判斷Mj(1)執行與sj執行關系;如果Mj(1)執行,sj也能執行,在Pj上將Mj(1)插入到si前面,得到P′j;
S1.3:對Pi上的其他語句實施變異,得到一些變異分支,按照S1.1和S1.2中的方法判斷執行關系,插入到Pi或其他路徑上;對于P′i,對應的變異分支集合,記為其中|P′i|為變異分支個數,則P′i可以表示為
S1.4:對P中不同路徑的語句實施變異,將這些生成的變異分支插入到G,得到新的被測程序G',并得到包含變異分支的新路徑集合P'={P′1,P′2,…,P′q},q為路徑的個數,所有變異分支基于所屬路徑的執行關系被分成q組;
S2:構建變異測試用例生成多任務優化模型,即對多組變異分支建立基于路徑覆蓋的變異測試用例生成多任務優化模型,具體方法為:
將生成殺死的測試用例問題轉化為覆蓋路徑P′i的測試用例問題,覆蓋P′i的測試用例生成的優化模型,可以表示為:
max(fi(X))
s.t.X∈D(X)
其中D(X)為X所形成的取值域;fi(X)為目標函數,它可以定義為路徑的相似度;
對于q條路徑,建立一種多任務優化模型,可以表示為:
S3:生成多任務覆蓋路徑的變異測試用例,即利用多種群遺傳算法求解步驟S2中構建的模型,進化生成測試用例,具體算法為:
設種群為U={U1,U2,…,Uq},子種群Ui對應子任務Ti,負責生成覆蓋路徑P′i的測試用例,在各自的任務內,生成初始種群、計算進化個體適應值、實施選擇、交叉,以及變異等遺傳操作;
Step 1:設算法所需控制參數的值;
Step 2:初始化q個子種群;
Step 3:判斷是否滿足終止條件,若是,轉Step 7;
Step 4:對于P′i,計算Ui,i=1,2,…,q中的進化個體的適應值fi(Ui);
Step 5:判斷Ui中的個體是否為子任務Ti的覆蓋P′i的測試用例?若是,保存該個體及其覆蓋的路徑P′i,終止Ui的進化,刪除子任務Ti的優化問題;
Step 6:比較Ui中不同進化個體的性能,進行選擇、交叉,以及變異等遺傳操作,產生新的種群,轉Step 3;
Step 7:停止進化,輸出測試用例集。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于徐州工程學院,未經徐州工程學院許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202110028394.1/1.html,轉載請聲明來源鉆瓜專利網。





