[發(fā)明專利]基于語義度量值的源項目選擇軟件缺陷預測方法在審
| 申請?zhí)枺?/td> | 202210276660.7 | 申請日: | 2022-03-21 |
| 公開(公告)號: | CN114579468A | 公開(公告)日: | 2022-06-03 |
| 發(fā)明(設計)人: | 文萬志;朱寧波;張瑞年;于夢;李治賢;高欣欣;朱文濤;沈陳強;王則林 | 申請(專利權)人: | 南通大學 |
| 主分類號: | G06F11/36 | 分類號: | G06F11/36;G06F40/30;G06K9/62 |
| 代理公司: | 南通一恒專利商標代理事務所(普通合伙) 32553 | 代理人: | 梁金娟 |
| 地址: | 226019 *** | 國省代碼: | 江蘇;32 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 基于 語義 度量 項目 選擇 軟件 缺陷 預測 方法 | ||
1.一種基于語義度量值的源項目選擇軟件缺陷預測方法,其特征在于,包括如下步驟:
S1、使用AST構建源代碼的抽象語法樹;
S2、將抽象語法樹轉換成向量;
S3、計算源代碼的語義度量值;
S4、融合語義度量值和傳統(tǒng)度量值;
S5、使用源項目選擇策略SPGather對項目集選擇;
S6、使用遷移學習縮小源域和目標域的數(shù)據(jù)差異;
S7、構建分類模型方法集CMMS;
S8、構建基于語義度量值的源項目選擇缺陷預測方法BSCPM。
2.根據(jù)權利要求1所述的基于語義度量值的源項目選擇軟件缺陷預測方法,其特征在于,所述步驟S1使用AST構建源代碼的抽象語法樹的步驟如下:
S1.1、詞法分析:將源代碼按照預定的規(guī)則合并成一個個的標識tokens,同時,移除空白符、注釋;最后,將之前得到的token合并為一個列表;列表中每一個元素是一個字典,字典中存儲標識符對應的值以及值所屬于的數(shù)據(jù)類型,當編譯器遇到空格、操作符或者特殊符號時停止遍歷節(jié)點;
S1.2、語法分析:將步驟S1.1所得到的列表信息轉換成樹形的形式,同時驗證語法結構,若語法結構存在錯誤,編譯器拋出語法錯誤;編譯器在轉換樹形結構的過程中自動刪除沒有必要的tokens,比如不完整的括號;
S1.3、將項目中的所有實例按步驟S1.1和步驟S1.2處理,包括源項目和目標項目,每個源代碼文件解析為抽象語法樹。
3.根據(jù)權利要求1所述的基于語義度量值的源項目選擇軟件缺陷預測方法,其特征在于,所述步驟S2將抽象語法樹轉換成向量的步驟如下:
S2.1、計算詞語在文章中出現(xiàn)的頻率:TF=該詞在文章中出現(xiàn)的總次數(shù)/該文章總次數(shù),詞頻可以反應出該詞與文章的相關性,為了防止詞頻偏向長文件,需將所有詞的頻率統(tǒng)一進行歸一化處理,假設文章中的某詞出現(xiàn)的次數(shù)較少,那么它的TF值較小,反之,值越大;
S2.2、計算逆向文件詞頻:IDF=log10,該指標反應出某詞出現(xiàn)的普遍性,假設某詞在所有文章中出現(xiàn)的次數(shù)較少,那么它的IDF值較大,反之,值越小;
S2.3、計算文章中所有詞的TF-IDF值:TF-IDF=TF*IDF,該值與一個詞在文檔中的出現(xiàn)次數(shù)成正比,與該詞在整個語言中的出現(xiàn)次數(shù)成反比;
S2.4、將步驟S1中每個代碼示例得到抽象語法樹節(jié)點列表按S2.1、S2.2、S2.3順序處理,得到每個代碼實例的向量。
4.根據(jù)權利要求1所述的基于語義度量值的源項目選擇軟件缺陷預測方法,其特征在于,所述步驟S3計算源代碼的語義度量值的步驟如下:
S3.1、每個文件AST節(jié)點數(shù)量Ast-num:該值大小反應的是AST方法對每個源代碼類實例提取節(jié)點向量的節(jié)點數(shù)量大小,若某代碼片段的抽象語法樹中節(jié)點數(shù)量越多,表明該段代碼語法結構越復雜,那么出現(xiàn)缺陷的概率就越大;
S3.2、每個文件歷史版本的缺陷情況Pro-bug:某項目之前版本的代碼缺陷情況影響后面版本的軟件缺陷情況,若該項目之前版本中軟件缺陷較多,那么后面版本的出現(xiàn)缺陷概率就越大;
S3.3、抽象語法樹節(jié)點向量的節(jié)點相似率Code-simi:使用公共子序列算法計算出兩個項目中同名的代碼文件對應抽象語法樹中相同節(jié)點的個數(shù),統(tǒng)計當前版本和之前版本同名的代碼文件中的相同AST節(jié)點數(shù)量,記為a;統(tǒng)計之前版本AST的所有節(jié)點數(shù)量,記為b;Code-simi=a/b,節(jié)點相似率越大則當前版本的軟件缺陷情況和之前的版本的軟件缺陷情況越相似;
S3.4、抽象語法樹節(jié)點向量的余弦相似度Cosine-simi:該指標通過計算兩個向量之間的余弦值度量兩個向量之間的相似性;將之前版本表示的向量記為A,將當前版本對應的向量記為B,那么Cosine-simi=(A*B)/(||A||*||B||),若以前版本沒有當前版本的代碼文件時,那么余弦相似度為0。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于南通大學,未經(jīng)南通大學許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業(yè)授權和技術合作,請聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202210276660.7/1.html,轉載請聲明來源鉆瓜專利網(wǎng)。





