[發明專利]一種測試用例自動生成方法及終端有效
| 申請號: | 202011414946.4 | 申請日: | 2020-12-04 |
| 公開(公告)號: | CN112346997B | 公開(公告)日: | 2022-05-31 |
| 發明(設計)人: | 林亞娜 | 申請(專利權)人: | 福州理工學院 |
| 主分類號: | G06F11/36 | 分類號: | G06F11/36;G06N3/12 |
| 代理公司: | 福州市博深專利事務所(普通合伙) 35214 | 代理人: | 張明 |
| 地址: | 350000 福建*** | 國省代碼: | 福建;35 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 測試 自動 生成 方法 終端 | ||
1.一種測試用例自動生成方法,其特征在于,包括步驟:
S1、獲取被測程序的目標路徑集合;
S2、在所述被測程序的選擇語句或循環語句之前進行插樁;
S3、通過遺傳算法初始化種群,生成第t代測試數據,根據所述第t代測試數據執行所述被測程序,并獲取實際執行路徑A,所述t為正整數;
S4、從所述目標路徑集合獲取與所述實際執行路徑A的路徑元素個數相同的匹配目標路徑C,則所述第t代測試數據的適應度為Fit(t)=C*AT/||A||2;
式中,所述AT是矩陣A的轉置;
S5、按照所述第t代測試數據的適應度執行所述遺傳算法,直至滿足遺傳終止條件,輸出最終的測試數據;
所述步驟S1具體包括以下步驟:
S11、分析所述被測程序,根據所述被測程序中所有選擇語句和循環語句的分支點構建所述被測程序的所有可能路徑集合,以得到所述被測程序的初始路徑集合;
S12、根據兩條所述選擇語句的謂詞相關性判斷不可達路徑,將所述不可達路徑從所述初始路徑集合中刪除,得到所述被測程序的目標路徑集合;
所述步驟S11具體包括以下步驟:
S111、分析所述被測程序,得到所述被測程序中所有選擇語句和循環語句;
S112、將所述選擇語句的真分支和所述循環語句的進入循環分支用正分支數值表示,將所述選擇語句的假分支和所述循環語句的未進入循環分支用負分支數值表示,每條可能路徑中按照分支點的出現先后順序對所述正分支數值或所述負分支數值進行加權處理,得到已加權分支數值,所述分支點的出現越早,則所述已加權分支數值的絕對值越大;
S113、將所述被測程序中每一個選擇語句和每一個循環語句的分支作為一種可能性,以得到所述被測程序的所有可能路徑集合,所述可能路徑集合中的每一條可能路徑均為一個由所述可能路徑上每一個分支點所對應的已加權分支數值組成的矩陣;
所述步驟S5具體包括以下步驟:
S51、判斷是否滿足遺傳終止條件,若是,則輸出所保存的測試數據,否則執行步驟S52;
S52、判斷所述實際執行路徑是否與所述目標路徑集合中的任意一條所述匹配目標路徑完全匹配,若是,則保存所述第t代測試數據并將所述目標路徑集合中完全匹配的所述匹配目標路徑進行刪除,之后返回步驟S51,否則執行步驟S53;
S53、按照所述第t代測試數據的適應度執行所述遺傳算法中的選擇、交叉和變異程序生成下一代測試數據,并根據所述下一代測試數據執行所述被測程序,獲取新的實際執行路徑后執行步驟S4;
所述步驟S12具體包括以下步驟:
S121、依次判斷任意兩條所述選擇語句a和b的謂詞相關性,若為真真相關則執行步驟S122,若為真假相關則執行步驟S123,若為假真相關則執行步驟S124,若為假假相關則執行步驟S125;
S122、將先走所述選擇語句a的真分支且后走所述選擇語句b的假分支的所述可能路徑為不可達路徑;
S123、將先走所述選擇語句a的真分支且后走所述選擇語句b的真分支的所述可能路徑為不可達路徑;
S124、將先走所述選擇語句a的假分支且后走所述選擇語句b的假分支的所述可能路徑為不可達路徑;
S125、將先走所述選擇語句a的假分支且后走所述選擇語句b的真分支的所述可能路徑為不可達路徑;
S126、將所述步驟S122至步驟S125所得到的所述不可達路徑從所述初始路徑集合中刪除,得到所述被測程序的目標路徑集合。
2.根據權利要求1所述的一種測試用例自動生成方法,其特征在于,所述步驟S3和所述步驟S4中的所述實際執行路徑A為一個由所述實際執行路徑A上每一個分支點所對應的已加權分支數值組成的矩陣。
3.根據權利要求1至2任一所述的一種測試用例自動生成方法,其特征在于,所述步驟S4具體包括以下步驟:
S41、從所述目標路徑集合獲取與所述實際執行路徑A的路徑元素個數相同的所有匹配目標路徑C,計算每一個所述匹配目標路徑C與所述實際執行路徑A的適應度:Fit(t)=C*AT/||A||2;
S42、將所有所述匹配目標路徑C與所述實際執行路徑A的適應度求平均值之后得到的數值作為所述第t代測試數據的適應度。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于福州理工學院,未經福州理工學院許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202011414946.4/1.html,轉載請聲明來源鉆瓜專利網。





