[發明專利]一種測試用例自動生成方法及終端有效
| 申請號: | 202011414946.4 | 申請日: | 2020-12-04 |
| 公開(公告)號: | CN112346997B | 公開(公告)日: | 2022-05-31 |
| 發明(設計)人: | 林亞娜 | 申請(專利權)人: | 福州理工學院 |
| 主分類號: | G06F11/36 | 分類號: | G06F11/36;G06N3/12 |
| 代理公司: | 福州市博深專利事務所(普通合伙) 35214 | 代理人: | 張明 |
| 地址: | 350000 福建*** | 國省代碼: | 福建;35 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 測試 自動 生成 方法 終端 | ||
本發明公開了一種測試用例自動生成方法及終端,其方法包括步驟:獲取被測程序的目標路徑集合;在被測程序的選擇語句或循環語句之前進行插樁;通過遺傳算法初始化種群,生成第t代測試數據,根據第t代測試數據執行被測程序,并獲取實際執行路徑A,t為正整數;從目標路徑集合獲取與實際執行路徑A的路徑元素個數相同的匹配目標路徑C,則第t代測試數據的適應度為Fit(t)=C*AT/||A||2;按照第t代測試數據的適應度執行遺傳算法,直至滿足遺傳終止條件,輸出最終的測試數據。本發明通過對適應度函數的改進,從而加大了測試數據的真實路徑與目標路徑不匹配時的差距,讓遺傳算法加速收斂,自動生成覆蓋目標路徑的測試數據,以提高生成測試數據的效率。
技術領域
本發明涉及測試技術領域,特別涉及一種測試用例自動生成方法及終端。
背景技術
測試用例是指對一項特定的軟件產品進行測試任務的描述,體現測試方案、方法、技術和策略。簡單地認為,測試用例是為某個特殊目標而編制的一組測試輸入、執行條件以及預期結果,用于核實是否滿足某個特定軟件需求。
現有關于生成測試用例方法包括一種新的多路徑覆蓋測試數據進化生成方法,其提出一種用于多路徑覆蓋的測試數據生成方法,首先將被測路徑表示成二進制串,然后采用遺傳算法,綜合考慮每條測試數據穿越的路徑與目標路徑的匹配程度來設計適應度函數,最終生成多條測試數據。
但該方法針對一般復雜度的程序能夠生成適合的測試數據,但在面對復雜系統或較復雜程序的時候,首先,在獲取目標路徑時,沒有考慮過濾不可達路徑,導致對比量的增加;設計遺傳算法的適應度函數存在收斂周期較長,導致自動生成測試用例過程中性能下降,花費時間較多的現象。
發明內容
本發明所要解決的技術問題是:提供一種測試用例自動生成方法及終端,讓遺傳算法加速收斂,提高生成測試數據的效率。
為了解決上述技術問題,本發明采用的技術方案為:
一種測試用例自動生成方法,包括步驟:
S1、獲取被測程序的目標路徑集合;
S2、在所述被測程序的選擇語句或循環語句之前進行插樁;
S3、通過遺傳算法初始化種群,生成第t代測試數據,根據所述第t代測試數據執行所述被測程序,并獲取實際執行路徑A,所述t為正整數;
S4、從所述目標路徑集合獲取與所述實際執行路徑A的路徑元素個數相同的匹配目標路徑C,則所述第t代測試數據的適應度為Fit(t)=C*AT/||A||2;
S5、按照所述第t代測試數據的適應度執行所述遺傳算法,直至滿足遺傳終止條件,輸出最終的測試數據。
為了解決上述技術問題,本發明采用的另一種技術方案為:
一種測試用例自動生成終端,包括存儲器、處理器及存儲在存儲器上并可在處理器上運行的計算機程序,所述處理器執行所述計算機程序時實現上述的一種測試用例自動生成方法。
本發明的有益效果在于:一種測試用例自動生成方法及終端,通過程序插裝的方式獲取測試數據的實際執行路徑,將實際執行路徑與目標路徑進行矩陣運算,以得到適應度,從而加大了測試數據走過的真實路徑與目標路徑不匹配時的差距,讓遺傳算法加速收斂,自動生成覆蓋目標路徑的測試數據,以提高生成測試數據的效率。
附圖說明
圖1為本發明實施例的一種測試用例自動生成方法的主要流程示意圖;
圖2為本發明實施例的一種測試用例自動生成方法的具體流程示意圖;
圖3為本發明實施例的一種測試用例自動生成終端的結構示意圖。
標號說明:
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于福州理工學院,未經福州理工學院許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202011414946.4/2.html,轉載請聲明來源鉆瓜專利網。





