[發明專利]基于程序切片和頻繁模式提取的代碼缺陷檢測方法及裝置有效
| 申請號: | 201210594149.8 | 申請日: | 2012-12-31 |
| 公開(公告)號: | CN103914374B | 公開(公告)日: | 2017-09-22 |
| 發明(設計)人: | 梁彬;邊攀 | 申請(專利權)人: | 梁彬 |
| 主分類號: | G06F11/36 | 分類號: | G06F11/36 |
| 代理公司: | 北京安信方達知識產權代理有限公司11262 | 代理人: | 白瑩,栗若木 |
| 地址: | 100193 北京市海淀區東北*** | 國省代碼: | 北京;11 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 基于 程序 切片 頻繁 模式 提取 代碼 缺陷 檢測 方法 裝置 | ||
技術領域
本發明涉及一種代碼缺陷靜態檢測技術,尤其涉及一種基于程序切片和頻繁模式提取的代碼缺陷檢測方法及裝置。
背景技術
代碼缺陷在軟件尤其是大型軟件中是不可避免的。軟件在發布之前需要進行充分的測試,以排除潛在的缺陷。由于動態測試方法難以覆蓋所有代碼,因此利用靜態分析技術檢測并修補軟件中的代碼缺陷已經成為一種重要的測試手段。
傳統靜態檢測方法通過遍歷程序代碼匹配檢測規則發現代碼缺陷,當規則匹配失敗時說明相應代碼可能存在潛在的缺陷。傳統靜態檢測方法的缺陷檢測能力受限于檢測規則,當缺少檢測規則時,無法發現軟件中相應的代碼缺陷。然而配置完整的規則庫是異常困難的,最主要的原因在于許多特定于應用的隱式編碼規則并未記錄在文檔中,配置此類規則需要對測試目標具有非常深入的了解,這在實際應用中具有一定的局限性。
在靜態檢測中引入數據挖掘的思想能夠在一定程度上彌補傳統靜態分析方法的不足。該方法基于如下合理的假設:在相對成熟的軟件中,大多數代碼是正確的,而異常代碼可能存在潛在的缺陷。在實施時,該方法首先應用數據挖掘技術從軟件代碼中提取頻繁出現的編碼模式,并生成關聯規則,然后檢查軟件中違反關聯規則的代碼,這些違反有可能是潛在的程序缺陷。
與傳統靜態分析相似,上述利用數據挖掘的思想進行缺陷檢測同樣存在嚴重的誤報和漏報問題。其中一個重要的原因是軟件代碼中存在大量的噪聲。而缺陷檢測是一件比較精細的工作,任何噪聲都有可能造成誤報和漏報。一方面,噪聲的存在可能導致發現一些不正確的編碼規則,從而造成誤報;另 一方面,在檢測規則的違反時,檢測算法可能會受到與規則無關的代碼的干擾,將噪聲代碼誤認為規則中的某些項,從而造成漏報?,F有的一些方法主要從精簡檢測結果集或將問題空間局限于特定的缺陷類型入手,提高檢測的精確度。然而這些方法并不能從根本上消除由于噪聲而引起的漏報和誤報。
發明內容
本發明要解決的技術問題是提供一種基于程序切片和頻繁模式提取的代碼缺陷檢測方法及裝置,解決現有技術中因無法消除軟件代碼中噪聲引起的檢測漏報和誤報的問題。
為了解決上述技術問題,本發明提供了一種基于程序切片和頻繁模式提取的代碼缺陷檢測方法,所述方法包括:
自定義或者從目標源程序獲取一個或多個敏感線索,所述敏感線索包含敏感操作和與所述敏感操作相應的參數;
針對每個敏感線索對所述目標源程序應用程序切片技術消除所述目標源程序中與所述敏感線索無關的代碼,生成相應的切片結果集;
根據所述切片結果集提取頻繁模式;
在所述頻繁模式的基礎上生成關聯規則,檢測違反所述關聯規則的代碼并生成缺陷報告。
進一步地,上述方法還可以具有以下特點:
所述從目標源程序獲取敏感線索的方法包括:判斷所述目標源程序中一操作的參數的有效性被驗證的概率大于預設概率時,將此操作及相應的參數作為敏感線索。
進一步地,上述方法還可以具有以下特點:
所述生成切片結果的方法包括:根據所述敏感線索確定切片準則;針對每個切片準則,遍歷所述目標源程序的程序依賴圖,發現并標記與其相關的程序代碼,將被標記的節點確定為相應的切片結果。
進一步地,上述方法還可以具有以下特點:
所述根據敏感線索確定切片準則的方法包括:一節點對應的程序語句調用所述敏感線索的敏感操作時,將此節點和與所述敏感操作的形參對應的實參組成切片準則。
進一步地,上述方法還可以具有以下特點:
所述根據所述切片結果集提取頻繁模式包括:對所述切片結果集應用數據挖掘技術提取所述頻繁模式。
進一步地,上述方法還可以具有以下特點:
所述對所述切片結果集應用數據挖掘技術提取所述頻繁模式的方法包括:規范化變量名及程序語句;將每個切片結果集轉換成數據庫;在每個數據庫上挖掘頻繁模式。
進一步地,上述方法還可以具有以下特點:
所述規范化變量名包括:對于能夠確定變量函數來源的變量使用所述變量的函數來源重命名所述變量,對于不能夠確定變量函數來源的變量使用所述變量的變量類型重命名所述變量;
所述規范化程序語句包括:枚舉程序語句的等價語句集合,用此集合代替所述程序語句。
為了解決上述技術問題,本發明還提供了一種基于程序切片和頻繁模式提取的代碼缺陷檢測裝置,所述裝置包括敏感線索獲取模塊、切片處理模塊、頻繁模式提取模塊、檢測模塊;
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于梁彬,未經梁彬許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201210594149.8/2.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:一種新型隔音面料
- 下一篇:Pt?Al?Hf/Zr涂層及方法





