[發明專利]程序模糊測試方法、裝置、設備及存儲介質有效
| 申請號: | 202211085263.8 | 申請日: | 2022-09-06 |
| 公開(公告)號: | CN115357513B | 公開(公告)日: | 2023-06-13 |
| 發明(設計)人: | 張超;秦世松;趙博棟 | 申請(專利權)人: | 清華大學 |
| 主分類號: | G06F11/36 | 分類號: | G06F11/36 |
| 代理公司: | 北京同立鈞成知識產權代理有限公司 11205 | 代理人: | 榮甜甜;劉芳 |
| 地址: | 10008*** | 國省代碼: | 北京;11 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 程序 模糊 測試 方法 裝置 設備 存儲 介質 | ||
1.一種程序模糊測試方法,其特征在于,包括:
獲取被測程序;
根據所述被測程序,獲取所述被測程序的斷點;所述斷點的位置為所述被測程序的輸入類系統調用的位置;
根據所述斷點,獲取所述被測程序觸發斷點時的目標函數調用棧信息,所述目標函數調用棧信息用于指示函數名稱、函數調用順序;
獲取所述被測程序的候選目標集合,所述被測程序的候選目標集合用于指示所述被測程序中的I/O操作循環結構;
根據所述目標函數調用棧信息,以及,所述被測程序的候選目標集合,獲取所述被測程序的代碼插樁位置;
根據所述代碼插樁的位置,對所述被測程序進行插樁處理,得到代碼插樁后的被測程序,代碼插樁在所述被測程序的源代碼中的位置為網絡數據I/O交互同步點的位置;
利用M個測試用例,對所述代碼插樁后的被測程序進行模糊測試,所述M為大于或等于1的整數,每個所述測試用例包括至少兩條I/O交互請求消息,所述代碼插樁用于發送反饋信息,所述反饋信息用于指示發送所述I/O交互請求消息;
根據所述模糊測試的執行情況,獲取所述代碼插樁后的被測程序的模糊測試的結果。
2.根據權利要求1所述的方法,其特征在于,所述獲取所述被測程序的候選目標集合包括:根據所述被測程序的源代碼,獲取所述被測程序的候選目標集合,所述候選目標集合包括至少一個元素,每個元素包括:被測程序的一個所述I/O操作循環結構,以及,包含所述I/O操作循環結構的函數信息。
3.根據權利要求1或2所述的方法,其特征在于,所述根據所述函數調用棧信息,以及,所述被測程序的候選目標集合,獲取所述被測程序的代碼插樁的位置,包括:
根據所述目標函數調用棧信息,與所述候選目標集合中的元素進行匹配,將第一個匹配到的函數的位置作為所述被測程序的網絡協議I/O交互同步點的位置;
輸出所述被測程序的網絡協議I/O交互同步點的位置。
4.根據權利要求1或2所述的方法,其特征在于,所述獲取測試用例,包括:
獲取測試用例池中的M個初始測試用例,所述測試用例池中包括N個初始測試用例,所述N為大于或等于M的整數;
對M個初始測試用例中至少一個初始測試用例進行變異處理,得到所述M個測試用例。
5.根據權利要求1或2所述的方法,其特征在于,所述獲取所述代碼插樁后的被測程序的模糊測試的結果之后,還包括:
獲取所述測試用例對于所述被測程序的代碼覆蓋率;
若所述代碼覆蓋率大于或等于代碼覆蓋率閾值,將所述測試用例作為新初始測試用例更新至所述測試用例池。
6.一種程序模糊測試裝置,其特征在于,包括:
第一獲取模塊,用于獲取被測程序;根據所述被測程序,獲取所述被測程序的斷點;所述斷點的位置為所述被測程序的輸入類系統調用的位置;根據所述斷點,獲取所述被測程序觸發斷點時的目標函數調用棧信息,所述目標函數調用棧信息用于指示函數名稱、函數調用順序;獲取所述被測程序的候選目標集合,所述被測程序的候選目標集合用于指示所述被測程序中的I/O操作循環結構;根據所述目標函數調用棧信息,以及,所述被測程序的候選目標集合,獲取所述被測程序的代碼插樁位置;根據所述代碼插樁的位置,對所述被測程序進行插樁處理,得到代碼插樁后的被測程序,代碼插樁在所述被測程序的源代碼中的位置為網絡數據I/O交互同步點的位置;
處理模塊,用于利用M個測試用例,對所述代碼插樁后的被測程序進行模糊測試,所述M為大于或等于1的整數,每個所述測試用例包括至少兩條I/O交互請求消息,所述代碼插樁用于發送反饋信息,所述反饋信息用于指示發送所述I/O交互請求消息;
第二獲取模塊,用于根據所述模糊測試的執行情況,獲取所述代碼插樁后的被測程序的模糊測試的結果。
7.一種電子設備,其特征在于,包括:處理器,以及存儲器;所述處理器與所述存儲器通信連接;
所述存儲器存儲計算機執行指令;
所述處理器執行所述存儲器存儲的計算機執行指令,以實現如權利要求1-5中任一項所述的方法。
8.一種計算機可讀存儲介質,其特征在于,所述計算機可讀存儲介質中存儲有計算機執行指令,所述計算機執行指令被處理器執行時用于實現如權利要求1至5任一項所述的程序模糊測試方法。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于清華大學,未經清華大學許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202211085263.8/1.html,轉載請聲明來源鉆瓜專利網。





