[發明專利]靜態代碼檢測方法和靜態代碼檢測系統、存儲設備有效
| 申請號: | 201810637058.5 | 申請日: | 2018-06-20 |
| 公開(公告)號: | CN108897678B | 公開(公告)日: | 2021-10-15 |
| 發明(設計)人: | 楊學紅 | 申請(專利權)人: | 中國聯合網絡通信集團有限公司 |
| 主分類號: | G06F11/36 | 分類號: | G06F11/36 |
| 代理公司: | 北京天昊聯合知識產權代理有限公司 11112 | 代理人: | 彭瑞欣;羅瑞芝 |
| 地址: | 100033 *** | 國省代碼: | 北京;11 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 靜態 代碼 檢測 方法 系統 存儲 設備 | ||
1.一種靜態代碼檢測方法,其特征在于,包括步驟:
對靜態代碼進行處理,提取變量信息,建立相關變量集合;其中,通過變量關聯或別名分析,將賦值語句或函數調用產生的不同形式的變量歸類在一起;
根據可能產生缺陷的變量進行缺陷歸類,建立缺陷集,所述缺陷集至少包括一個缺陷子集,每一所述缺陷子集包括一個與變量相關的根節點缺陷;
根據所述缺陷子集中所述根節點缺陷的誤報狀況,確認缺陷;
其中,建立缺陷集的步驟包括:將具有依賴性的變量可能引起的相關缺陷歸為一類,建立同類缺陷子集,多個所述缺陷子集形成所述缺陷集;其中,確認缺陷的步驟包括:根據缺陷關聯性進行缺陷誤報確認,若所述缺陷子集中根節點缺陷為誤報,則所述缺陷子集中與所述根節點缺陷相關的所有缺陷均為誤報;并且,確認缺陷的步驟還包括:若所述缺陷子集中根節點缺陷并非為誤報,則向下追溯所述缺陷子集的中間節點,若某一所述中間節點缺陷為誤報,則所述缺陷子集中與所述中間節點缺陷向下相關的所有缺陷均為誤報;否則,確認所述缺陷子集中不存在缺陷。
2.根據權利要求1所述的靜態代碼檢測方法,其特征在于,建立相關變量集合的步驟包括:
對靜態代碼進行詞法分析、語義處理;
根據與變量名相關的名稱,建立所述相關變量集合。
3.根據權利要求2所述的靜態代碼檢測方法,其特征在于,對靜態代碼進行詞法分析為:采用自動化業務流程組合語言進行分析,得到一個文檔對象模型樹,基于該文檔對象模型樹生成控制流圖;
語義處理為:在所述控制流圖的基礎上生成定義使用鏈。
4.根據權利要求2所述的靜態代碼檢測方法,其特征在于,建立相關變量集合的步驟還包括:根據與變量名相關名稱的賦值函數或函數調用關系,進行別名分析,建立所述相關變量集合。
5.一種靜態代碼檢測系統,其特征在于,包括變量提取模塊、缺陷歸類模塊和確認模塊,其中:
所述變量提取模塊,配置為對靜態代碼進行處理,提取變量信息,建立相關變量集合;其中,通過變量關聯或別名分析,將賦值語句或函數調用產生的不同形式的變量歸類在一起;
所述缺陷歸類模塊,配置為根據可能產生缺陷的變量進行缺陷歸類,建立缺陷集,所述缺陷集至少包括一個缺陷子集,每一所述缺陷子集包括一個與變量相關的根節點缺陷;
所述確認模塊,配置為根據所述缺陷子集中所述根節點缺陷的誤報狀況,確認缺陷;其中,所述缺陷歸類模塊具體用于:將具有依賴性的變量可能引起的相關缺陷歸為一類,建立同類缺陷子集,多個所述缺陷子集形成所述缺陷集;其中,所述確認模塊具體用于:根據缺陷關聯性進行缺陷誤報確認,若所述缺陷子集中根節點缺陷為誤報,則所述缺陷子集中與所述根節點缺陷相關的所有缺陷均為誤報;并且,所述確認模塊還用于:若所述缺陷子集中根節點缺陷并非為誤報,則向下追溯所述缺陷子集的中間節點,若某一所述中間節點缺陷為誤報,則所述缺陷子集中與所述中間節點缺陷向下相關的所有缺陷均為誤報;否則,確認所述缺陷子集中不存在缺陷。
6.根據權利要求5所述的靜態代碼檢測系統,其特征在于,所述變量提取模塊包括分析處理單元和集合單元,其中:
所述分析處理單元中,用于對靜態代碼進行詞法分析、語義處理;
所述集合單元,用于根據與變量名相關的程序語句的賦值或函數調用關系,進行別名分析,建立變量集合;
所述缺陷歸類模塊包括建模單元,所述建模單元用于將具有依賴性的變量可能引起的相關缺陷歸為一類,建立同類缺陷子集,多個所述缺陷子集形成所述缺陷集。
7.一種存儲設備,其中存儲有多條指令,其特征在于,所述指令加載并執行如下功能:
對靜態代碼進行處理,提取變量信息,建立相關變量集合;其中,通過變量關聯或別名分析,將賦值語句或函數調用產生的不同形式的變量歸類在一起;
根據可能產生缺陷的變量進行缺陷歸類,建立缺陷集,所述缺陷集至少包括一個缺陷子集,每一所述缺陷子集包括一個與變量相關的根節點缺陷;
根據所述缺陷子集中所述根節點缺陷的誤報狀況,確認缺陷;其中,建立缺陷集的步驟包括:將具有依賴性的變量可能引起的相關缺陷歸為一類,建立同類缺陷子集,多個所述缺陷子集形成所述缺陷集;其中,確認缺陷的步驟包括:根據缺陷關聯性進行缺陷誤報確認,若所述缺陷子集中根節點缺陷為誤報,則所述缺陷子集中與所述根節點缺陷相關的所有缺陷均為誤報;并且,確認缺陷的步驟還包括:若所述缺陷子集中根節點缺陷并非為誤報,則向下追溯所述缺陷子集的中間節點,若某一所述中間節點缺陷為誤報,則所述缺陷子集中與所述中間節點缺陷向下相關的所有缺陷均為誤報;否則,確認所述缺陷子集中不存在缺陷。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于中國聯合網絡通信集團有限公司,未經中國聯合網絡通信集團有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201810637058.5/1.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:日志構建方法和系統
- 下一篇:一種部署服務器操作系統測試環境的方法及系統





