[發明專利]一種基于Csmith隨機生成器生成C程序測試用例的方法及裝置在審
| 申請號: | 202211487167.6 | 申請日: | 2022-11-25 |
| 公開(公告)號: | CN115687154A | 公開(公告)日: | 2023-02-03 |
| 發明(設計)人: | 王麗一;武穎穎;胡夏暉;尉紅梅;姜軍;吳偉 | 申請(專利權)人: | 無錫江南計算技術研究所 |
| 主分類號: | G06F11/36 | 分類號: | G06F11/36 |
| 代理公司: | 浙江千克知識產權代理有限公司 33246 | 代理人: | 汪丹琪 |
| 地址: | 214100 江蘇*** | 國省代碼: | 江蘇;32 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 基于 csmith 隨機 生成器 生成 程序 測試 方法 裝置 | ||
1.一種基于Csmith隨機生成器生成C程序測試用例的方法,其特征在于,包括如下步驟:
S1:獲取預設概率信息表,通過預設概率信息表獲取預設參數;
S2:生成器根據預設參數進行初始化;
S3:生成器基于初始化信息生成包括main函數、變量類型、其他函數的測試用例程序,在生成main函數時輸出測試用例程序的輔助信息;
S4:過濾器對生成的程序片段進行安全檢查;
S5:生成器在過濾器對所有程序片段檢查完畢后整理并輸出生成的測試用例程序,并根據生成的測試用例程序計算非指針全局變量的校驗和,并打印校驗和。
2.如權利要求1所述的一種基于Csmith隨機生成器生成C程序測試用例的方法,其特征在于,步驟S1中具體包括:
S11:獲取概率信息表的所有屬性值;
S12:根據歷史數據對能高效生成測試用例的屬性值進行標記;
S13:對標記的屬性值進行聚類分析獲取預設概率信息表;
S14:判斷是否接收到輸入的用戶參數,如果判斷未接收到用戶參數,則將預設概率信息表中的屬性值作為預設參數,如果判斷接收到用戶參數,則通過預設概率信息表對用戶參數進行比對;
S15:如果用戶參數中包括預設概率信息表中的所有屬性值,則將用戶參數作為預設參數,如果用戶參數不包括預設概率信息表中的所有屬性值,則輸出輸入參數錯誤。
3.如權利要求1或2所述的一種基于Csmith隨機生成器生成C程序測試用例的方法,其特征在于,步驟S3中的變量類型包括簡單數據類型、未定義浮點型數據、結構體、聯合聲明、全局變量和向前聲明。
4.如權利要求1或2所述的一種基于Csmith隨機生成器生成C程序測試用例的方法,其特征在于,步驟S3中生成其他函數具體包括:隨機選擇返回值類型,收集指向信息和union信息,生成函數的參數列表,生成函數體,在生成函數體時收集當前環境的影響值、當前上下文環境、擴展的調用鏈表三類信息,在函數體中如果調用其他函數時為調用的函數定義函數參數并生成函數體。
5.如權利要求4所述的一種基于Csmith隨機生成器生成C程序測試用例的方法,其特征在于,步驟S4中過濾器對生成的程序片段進行安全檢查具體包括:獲取待檢查的程序片段;過濾器對當前生成的程序片段的合法性進行判斷,如果判斷該程序片段會導致永真循環或者該程序片段對應的循環數據超過數據的閾值,則過濾器返回程序錯誤,生成器拋棄該程序片段并回滾回到上一下檢查的程序片段對應的序列點,如果判斷該程序片段沒有問題,則繼續獲取后面的待檢查的程序片段。
6.如權利要求1或2所述的一種基于Csmith隨機生成器生成C程序測試用例的方法,其特征在于,步驟S5中具體包括:生成器依次輸出結構體、聯合聲明、全局變量、向前聲明、其他函數、總結性信息;在頂層函數完全生成時生成器輸出一個main函數;main函數調用頂層生成函數,計算非指針全局變量的校驗和,打印校驗和。
7.如權利要求5所述的一種基于Csmith隨機生成器生成C程序測試用例的方法,其特征在于:如果在過濾器檢查生成的程序中發現有未被實現的函數時生成器為該函數生成函數體。
8.一種基于Csmith隨機生成器生成C程序測試用例的裝置,其特征在于:包括
參數獲取模塊,用以獲取預設概率信息表,通過預設概率信息表獲取預設參數;
生成器,用以根據預設參數進行初始化,基于初始化信息生成包括main函數、變量類型、其他函數的測試用例程序,在生成main函數時輸出測試用例程序的輔助信息;
過濾器,對生成的程序片段進行安全檢查;
生成器,用以在過濾器對所有程序片段檢查完畢后整理并輸出生成的測試用例程序,并根據生成的測試用例程序計算非指針全局變量的校驗和,并打印校驗和。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于無錫江南計算技術研究所,未經無錫江南計算技術研究所許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202211487167.6/1.html,轉載請聲明來源鉆瓜專利網。





