[發明專利]基于相似度集成的軟件缺陷定位方法在審
| 申請號: | 202010720348.3 | 申請日: | 2020-07-24 |
| 公開(公告)號: | CN112000802A | 公開(公告)日: | 2020-11-27 |
| 發明(設計)人: | 燕雪峰;程莎莎 | 申請(專利權)人: | 南京航空航天大學 |
| 主分類號: | G06F16/35 | 分類號: | G06F16/35;G06F11/36;G06F16/33;G06F40/30;G06N3/04;G06N3/08 |
| 代理公司: | 南京蘇高專利商標事務所(普通合伙) 32204 | 代理人: | 柏尚春 |
| 地址: | 211106 江*** | 國省代碼: | 江蘇;32 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 基于 相似 集成 軟件 缺陷 定位 方法 | ||
本發明公開了基于相似度集成的軟件缺陷定位方法,包括以下步驟:輸入待測軟件的源文件與缺陷報告;對源文件與缺陷報告進行數據預處理;計算源文件與缺陷報告的表面文本相似度;計算源文件與缺陷報告的語義相似度;分析源文件與缺陷報告的文本屬性;構建特征矩陣,將特征矩陣輸入DNN進行相似度集成,對DNN模型進行訓練;對于新的缺陷報告,獲得表面文本相似度、語義相似度和文本屬性,構建特征矩陣,利用訓練好的DNN模型,得出含有缺陷的源文件列表。本發明解決源文件和缺陷報告中噪聲過濾不完整以及兩者之間存在的詞匯不匹配導致基于信息檢索的軟件缺陷定位中相似度計算困難問題;提高了軟件缺陷定位的準確性,具有較強的普適性。
技術領域
本發明涉及軟件缺陷定位,特別涉及基于相似度集成的軟件缺陷定位方法。
背景技術
軟件缺陷定位是根據源文件與給定缺陷報告的相關性對源文件進行排序,開發人員通過排序列表逐一核查來找到含有缺陷的源文件,然而軟件在開發生命周期中會產生大量的缺陷報告,所以缺陷定位的有效性和及時性將會影響軟件的可靠性和可用性。
目前通常利用基于信息檢索的軟件缺陷進行定位分析,這類方法主要依賴源代碼的文本信息,利用缺陷報告來定位相關源文件。這類方法側重于自然語言文本的術語權重,沒有考慮到源代碼和缺陷報告語料中存在大量無語義詞匯噪聲,會導致經過向量表示的代碼向量緯度高、稀疏性強的問題;同時,這類方法沒有分析缺陷報告與源文件之間的語義相似性,忽略了自然語言描寫的缺陷報告和編程語言編寫的源文件之間存在的詞匯不匹配問題。
發明內容
發明目的:針對以上問題,本發明目的是提供一種準確度高、普適性強的基于相似度集成的軟件缺陷定位方法。
技術方案:本發明所述的一種基于相似度集成的軟件缺陷定位方法,包括以下步驟:
(1)輸入待測軟件的源文件與缺陷報告;
(2)對源文件與缺陷報告進行數據預處理;
(3)計算源文件與缺陷報告的表面文本相似度;
(4)計算源文件與缺陷報告的語義相似度;
(5)分析源文件與缺陷報告的文本屬性;
(6)結合表面文本相似度、語義相似度和文本屬性,建立特征矩陣,將特征矩陣輸入深度神經網絡(DNN)進行相似度集成,對DNN模型進行訓練;
(7)對于新的缺陷報告,通過步驟3-5獲得表面文本相似度、語義相似度和文本屬性,構建特征矩陣,利用步驟6中訓練好的DNN模型,得出含有缺陷的源文件列表。
所述步驟(2)過程如下:首先,提取缺陷報告中的摘要、詳細描述和已修復的源文件,利用抽象語法樹(AST)提取源文件中的類名、方法名、變量、注釋信息,然后對缺陷報告與源文件進行文本規范化、去除停用詞、獲取詞根,對源文件和缺陷報告的術語進行詞性標注(POS),僅保留詞性為名詞、動詞、形容詞、副詞的詞匯。
所述步驟(3)過程如下:
收集預處理后的源文件與缺陷報告,利用詞頻-逆文檔頻率計算每個單詞的權重,表達式為:
式中,tfi,s是指源文件s中出現術語i的次數,#src_files是指語料庫中源文件個數,dfi是指含有術語i的文檔數量;
由于較大的源文件有更高的出錯概率,源文件長度計算公式為:
式中λ參數用于調整對較大文件的偏愛程度,λ0;|s|為源文件中術語個數;
利用余弦距離與源文件長度計算源文件與缺陷報告表面文本相似度:
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于南京航空航天大學,未經南京航空航天大學許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202010720348.3/2.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:一種食品加工自動串肉串設備
- 下一篇:一種濾油器加壓裝置





