[發明專利]模糊測試的種子處理、模糊測試方法、系統和存儲介質有效
| 申請號: | 202010723505.6 | 申請日: | 2020-07-24 |
| 公開(公告)號: | CN111881039B | 公開(公告)日: | 2022-04-26 |
| 發明(設計)人: | 魯輝;張鑫國;田志宏;殷麗華;孫彥斌;蘇申;楊佳庚 | 申請(專利權)人: | 廣州大學 |
| 主分類號: | G06F11/36 | 分類號: | G06F11/36 |
| 代理公司: | 廣州嘉權專利商標事務所有限公司 44205 | 代理人: | 胡輝 |
| 地址: | 510006 廣東*** | 國省代碼: | 廣東;44 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 模糊 測試 種子 處理 方法 系統 存儲 介質 | ||
1.一種模糊測試的種子處理方法,其特征在于,包括以下步驟:
獲取各程序塊的靜態權重;
在模糊測試中對各程序塊的運行次數進行統計,在每次模糊測試中根據所述統計中各程序塊的運行次數得到各程序塊的動態權重;
根據所述靜態權重和動態權重對種子庫中的種子進行評分;
選擇種子進行變異,其中,獲得測試用例,種子評分越高被選擇的概率越高;
統計代碼覆蓋率,根據測試用例的代碼覆蓋率將測試用例更新到種子庫中;
其中,所述獲取各程序塊的靜態權重,包括:
對被測程序進行插樁,對所述被測程序的控制流圖進行分析,得到所述被測程序的各程序塊的靜態權重;
其中,所述對所述被測程序的控制流圖進行分析,得到所述被測程序的各程序塊的靜態權重,包括:
遍歷程序控制流圖的代碼塊,計算各邊的轉移概率;
再次遍歷程序控制流圖的代碼塊,以計算各代碼塊的數學期望;
將所述各代碼塊的數學期望取倒數作為靜態權重;
其中,所述再次遍歷程序控制流圖的代碼塊,以計算各代碼塊的數學期望,包括:
建立序列;
將代碼塊的后置塊存入所述序列,并取出處理以實現深度優先遍歷;
所述處理包括:
計算代碼塊的數學期望,其中,第一代碼塊的數學期望=第一代碼塊的前置塊的數學期望*所述前置塊到第一代碼塊的邊的轉移概率;
當第一代碼塊的前置塊數學期望為空,且第一代碼塊的前置塊是第一代碼塊的孩子塊,則標記第一代碼塊為循環入口,標記第一代碼塊的前置塊到該塊的邊為回邊,將進入第一代碼塊的后置塊作為下一個訪問塊,將序列的長度減一作為循環的標志,將第一代碼塊的前置塊的數學期望作零以計算第一代碼塊的數學期望;
當第一代碼塊的前置塊數學期望為空,且第一代碼塊的前置塊不是第一代碼塊的孩子塊,則不計算第一代碼塊的數學期望,將第一代碼塊存入加入至所述序列對應循環標志的位置;
當第一代碼塊的后置塊存在數學期望,且第一代碼塊到第一代碼塊的后置塊的邊的轉移概率為正,則計算常數表示第一代碼塊的后置塊的前置塊到第一代碼塊的后置塊的邊的轉移概率,將第一代碼塊的后置塊加入到所述序列中,將第一代碼塊的后置塊的孩子塊的數學期望刪除,并將第一代碼塊對應的回邊標記刪除;
所述常數=1/((E(第一代碼塊的后置塊)-E(第一代碼塊)*W(各前置塊到第一代碼塊的轉移概率))/E(第一代碼塊的后置塊)),其中,E表示數學期望。
2.根據權利要求1所述的模糊測試的種子處理方法,其特征在于,所述在模糊測試中對各程序塊的運行次數進行統計,在每次模糊測試中根據所述統計中各程序塊的運行次數得到各程序塊的動態權重,包括:
通過插樁的方式對模糊測試中各程序塊的運行次數進行統計;
結合所述統計和預設公式對各程序塊的運行概率進行計算;
將程序塊的運行概率取反作為程序塊的動態權重。
3.根據權利要求2所述的模糊測試的種子處理方法,其特征在于,所述預設公式為包括第一子函數和第二子函數的分段函數;
當代碼塊的運行次數小于等于第一閾值,則采用第一子函數計算代碼塊的運行概率;
當代碼塊的運行次數大于第一閾值,則采用第二子函數計算代碼塊的運行概率。
4.一種模糊測試方法,其特征在于,包括以下步驟;
在進行模糊測試時,執行如權利要求1所述的種子處理方法。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于廣州大學,未經廣州大學許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202010723505.6/1.html,轉載請聲明來源鉆瓜專利網。





