[發明專利]一種代碼方法級別的軟件缺陷定位方法有效
| 申請號: | 202010087773.3 | 申請日: | 2020-02-12 |
| 公開(公告)號: | CN111309607B | 公開(公告)日: | 2023-06-02 |
| 發明(設計)人: | 李斌;陳天浩;孫小兵;倪珍 | 申請(專利權)人: | 揚州大學 |
| 主分類號: | G06F11/36 | 分類號: | G06F11/36;G06F11/07;G06F16/35 |
| 代理公司: | 南京理工大學專利中心 32203 | 代理人: | 馬魯晉 |
| 地址: | 225009*** | 國省代碼: | 江蘇;32 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 代碼 方法 級別 軟件 缺陷 定位 | ||
1.一種代碼方法級別的軟件缺陷定位方法,其特征在于,所述方法包括以下步驟:
步驟1,構建并訓練seq2seq模型;
步驟2,基于seq2seq模型構建缺陷定位模型;
步驟3,構建所述缺陷定位模型的訓練樣本;
步驟4,利用所述訓練樣本訓練所述缺陷定位模型;
步驟5,利用訓練后的缺陷定位模型預測缺陷報告中的缺陷方法;
步驟1中所述seq2seq模型包括一個編碼器和一個解碼器,其中編碼器包括依次設置的輸入層、嵌入層、門控循環神經網絡GRU層,解碼器包括一個全連接層實現注意力機制、一個GRU層和一個softmax層;
步驟1中所述訓練seq2seq模型,具體是利用項目代碼庫中包含方法注釋的缺陷方法對seq2seq模型進行訓練;
步驟2中所述缺陷定位模型包括:
一個代碼編碼器,用于將方法代碼轉換為向量;
一個缺陷報告編碼器,用于將缺陷報告轉換為向量;
一個融合層,用于融合上述兩個向量,獲得兩個向量的關聯程度;
步驟2所述基于seq2seq模型構建缺陷定位模型,具體包括:
步驟2-1,提取所述seq2seq模型中的編碼器作為代碼編碼器,且參數固定;
步驟2-2,構建一個缺陷報告編碼器,其結構與所述代碼編碼器一致,但參數隨機初始化;
步驟2-3,構建一個融合層,該融合層包括多層全連接層,其參數隨機初始化,且輸入為兩個向量,分別為代碼編碼器的輸出、缺陷報告編碼器的輸出,輸出為0到1之間的值,表示所述兩個向量的關聯程度即缺陷報告與方法代碼的關聯程度。
2.根據權利要求1所述的代碼方法級別的軟件缺陷定位方法,其特征在于,步驟3構建所述缺陷定位模型的訓練集,具體為:提取已經修復的缺陷報告及其中修改的、未修改的方法代碼,生成若干組訓練樣本;每組訓練樣本包括3個數據:修改的或未修改的方法代碼、缺陷報告、方法代碼與缺陷報告的關聯程度。
3.根據權利要求2所述的代碼方法級別的軟件缺陷定位方法,其特征在于,步驟3構建所述缺陷定位模型的訓練樣本,具體過程包括:
步驟3-1,提取一個處于Fixed的缺陷報告,該缺陷報告中提到的缺陷已經被修復;
步驟3-2,獲取為修復步驟3-1中缺陷報告的缺陷而更改的文件的前后版本;
步驟3-3,利用gumtree獲取兩個文件在AST層面發生的變更,并找出發生更改的結點的祖先結點中類型值為“MethodDeclaration”的結點;
步驟3-4,將缺陷修復前的文件中類型值為“MethodDeclaration”的結點轉為代碼,獲得的代碼即為修復缺陷所需修改的方法代碼;
步驟3-5,從缺陷修復前的文件中隨機抽取若干個未需修改的方法代碼;
步驟3-6、將步驟3-4和步驟3-5獲得的方法代碼均轉成標記序列;
步驟3-7,將步驟3-1的缺陷報告轉為單詞序列;
步驟3-8,利用步驟3-6的標記序列、步驟3-7的單詞序列分別構建代碼語料庫和文本語料庫,語料庫中的每個標記或單詞都有一個唯一對應的one-hot向量即獨熱向量表示;
步驟3-9,針對每個需修改的方法代碼,將需修改的方法代碼對應的標記序列、缺陷報告對應的單詞序列以及標簽1組合為一個正訓練樣本;針對每個未需修改的方法代碼,將未需修改的方法代碼對應的標記序列、缺陷報告對應的單詞序列以及標簽0組合為一個負訓練樣本。
4.根據權利要求3所述的代碼方法級別的軟件缺陷定位方法,其特征在于,步驟3-6還包括:利用詞法分析工具進行代碼分詞,將標記序列中使用駝峰命名法和下劃線命名法的標記拆分為單個單詞。
5.根據權利要求4所述的代碼方法級別的軟件缺陷定位方法,其特征在于,步驟3-7所述將步驟3-1的缺陷報告轉為單詞序列,具體過程包括:對缺陷報告依次執行分詞、去除標點符號、拆分駝峰命名法和下劃線命名法的單詞、轉為小寫處理,以此將缺陷報告轉為單詞序列。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于揚州大學,未經揚州大學許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202010087773.3/1.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:一種調整座椅使用狀態的智能控制方法
- 下一篇:信息顯示方法、裝置及電子設備





