[發明專利]一種代碼風險的檢測方法及裝置有效
| 申請號: | 201210529531.0 | 申請日: | 2012-12-10 |
| 公開(公告)號: | CN103870382B | 公開(公告)日: | 2018-11-09 |
| 發明(設計)人: | 于金倫;萬東海;葉茂 | 申請(專利權)人: | 百度在線網絡技術(北京)有限公司 |
| 主分類號: | G06F11/36 | 分類號: | G06F11/36 |
| 代理公司: | 北京鴻德海業知識產權代理事務所(普通合伙) 11412 | 代理人: | 倪志華 |
| 地址: | 100085 北京*** | 國省代碼: | 北京;11 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 代碼 風險 檢測 方法 裝置 | ||
本發明提供了一種代碼風險的檢測方法及裝置,該方法包括:掃描單元從預設的代碼文件中提取函數和類;代碼分析單元依據預設的函數風險閾值和類風險閾值分別對所述函數和所述類進行分析,得到存在風險的函數信息和類信息;文件分析單元依據預設的文件風險閾值對獲取的代碼文件和代碼文件的修改記錄進行分析,得到存在風險的代碼文件信息;報告生成單元依據所述存在風險的函數信息、類信息和代碼文件信息生成代碼風險報告。根據本發明提供的技術方案,能夠有效檢測出軟件產品的代碼中的風險。
【技術領域】
本發明涉及軟件測試技術,尤其涉及一種代碼風險的檢測方法及裝置。
【背景技術】
軟件產品是需要最終交付給用戶,由用戶直接或間接的使用軟件產品;其中,代碼用于正確且詳細的描述軟件,是軟件的最終載體,因此代碼的質量對軟件的質量具有重要意義。
代碼風險是區別于代碼中語法錯誤和語義錯誤的一種代碼異常情況,代碼風險并不是一種代碼錯誤,而是從軟件產品的代碼的可靠性、可測性、可讀心和可維護性等角度出發,對不符合條件的代碼給出提示信息的代碼質量的控制手段。
目前的代碼質量檢測工具都是對語法錯誤、語義錯誤或編程規范等進行檢測,并給出檢測結果,例如,PC-Lint是一款C/C++軟件代碼靜態分析工具,能夠檢測出使用未初始化的變量等一般的語法錯誤。Logiscope是用于保證軟件質量和進行軟件測試的測試產品,能夠對代碼中的語法錯誤進行檢測。但是,目前沒有對代碼風險進行檢測的工具和方法。
【發明內容】
本發明提供了一種代碼風險的檢測方法及裝置,能夠有效檢測出軟件產品的代碼中的風險。
本發明的具體技術方案如下:
根據本發明一優選實施例,一種代碼風險的檢測裝置,包括:掃描單元、代碼分析單元、文件分析單元、報告生成單元;其中,
掃描單元,用于從預設的代碼文件中提取函數和類;
代碼分析單元,用于依據預設的函數風險閾值和類風險閾值分別對所述函數和所述類進行分析,得到存在風險的函數信息和類信息;
文件分析單元,用于依據預設的文件風險閾值對獲取的代碼文件和代碼文件的修改記錄進行分析,得到存在風險的代碼文件信息;
報告生成單元,用于依據所述存在風險的函數信息、類信息和代碼文件信息生成代碼風險報告。
上述裝置中,代碼分析單元對函數進行分析具體包括:代碼分析單元對函數的嵌套深度、函數的行數、函數內局部變量個數和圈復雜度進行分析。
上述裝置中,代碼分析單元獲得函數的嵌套深度具體包括:
當識別出函數中一行代碼比前一行代碼縮進時,函數的縮進深度加1;
或,當識別出一組嵌套字符時,函數的嵌套的層級數加1。
上述裝置中,代碼分析單元獲得函數內局部變量的個數具體包括:當在函數的代碼中識別出與預設的局部變量名相同的局部變量時,將函數內局部變量的個數加1。
上述裝置中,代碼分析單元獲得函數的圈復雜度具體包括:在函數中識別出邏輯判斷詞時,在圈復雜度基數上將所述函數的圈復雜度加1。
上述裝置中,代碼分析單元對類進行分析具體包括:代碼分析單元對類的離心耦合度進行分析。
上述裝置中,代碼分析單元獲得類的離心耦合度具體包括:依據識別出的類與類之間的調用關系,得到類調用的外部類的數目,所述類調用的外部類的數目等于離心耦合度。
上述裝置中,文件分析單元對代碼文件進行分析具體包括:代碼分析單元對代碼文件的總行數進行分析。
上述裝置中,文件分析單元獲得代碼文件的總行數具體包括:
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于百度在線網絡技術(北京)有限公司,未經百度在線網絡技術(北京)有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201210529531.0/2.html,轉載請聲明來源鉆瓜專利網。





