基于深度學(xué)習(xí)的細(xì)粒度軟件缺陷預(yù)測研究
發(fā)布時間:2021-10-16 02:08
傳統(tǒng)的缺陷預(yù)測技術(shù)主要集中在對軟件項目中的文件、模塊、包等粗粒度對象進(jìn)行預(yù)測,然而相關(guān)技術(shù)在實際中卻難以應(yīng)用,例如當(dāng)缺陷預(yù)測模型預(yù)測一個較大的文件存在缺陷時,審查所需的時間與精力對于開發(fā)者來說難以接受,且當(dāng)一個文件被多個開發(fā)者修改時,更難以確定合適的開發(fā)者對預(yù)測文件進(jìn)行審查。而現(xiàn)有的細(xì)粒度缺陷預(yù)測方法,包括代碼行級與變更級預(yù)測,對于軟件倉庫語料、變更數(shù)據(jù)有一定的數(shù)量要求,軟件開發(fā)初期難以進(jìn)行有效的缺陷預(yù)測。在細(xì)粒度的預(yù)測要求前提下,本文對于軟件項目初期,提出了一種基于API使用規(guī)范的跨項目可遷移的代碼行級缺陷預(yù)測模型,實現(xiàn)了對軟件項目早期的有效缺陷預(yù)測;對于軟件項目后期,本文提出了一種利用變更信息語義特征與變更度量的變更級缺陷預(yù)測模型,提升了現(xiàn)有變更級預(yù)測模型的能力。本文主要工作與創(chuàng)新點如下:(1)代碼行級缺陷預(yù)測。本文提出了一種基于類API使用規(guī)范的代碼行級缺陷預(yù)測模型。本文首先提出了一種基于抽象語法樹的類API調(diào)用序列提取方法,從源代碼文件中提取指定類的實例的API調(diào)用序列,并基于API調(diào)用序列構(gòu)建語言模型,預(yù)測API序列中的API誤用缺陷,將代碼缺陷定位至使用API的代碼行處;(...
【文章來源】:浙江大學(xué)浙江省 211工程院校 985工程院校 教育部直屬院校
【文章頁數(shù)】:87 頁
【學(xué)位級別】:碩士
【文章目錄】:
摘要
Abstract
第1章 緒論
1.1 引言
1.2 軟件缺陷預(yù)測與研究現(xiàn)狀
1.2.1 軟件缺陷預(yù)測基本內(nèi)容
1.2.2 軟件缺陷預(yù)測研究簡史
1.3 本文研究內(nèi)容
1.3.1 研究目的
1.3.2 本文創(chuàng)新點
1.4 本文組織結(jié)構(gòu)
第2章 相關(guān)技術(shù)分析
2.1 代碼行級缺陷預(yù)測相關(guān)技術(shù)
2.1.1 N-grams語言模型
2.1.2 基于N-grams的代碼行級缺陷預(yù)測方法
2.2 變更級缺陷預(yù)測相關(guān)技術(shù)
2.2.1 變更級度量
2.2.2 變更標(biāo)簽標(biāo)注
2.2.3 變更級缺陷預(yù)測常用機器學(xué)習(xí)算法
2.3 詞嵌入技術(shù)
2.4 循環(huán)卷積神經(jīng)網(wǎng)絡(luò)
2.4.1 循環(huán)神經(jīng)網(wǎng)絡(luò)
2.4.2 循環(huán)卷積神經(jīng)網(wǎng)絡(luò)
2.5 抽象語法樹及其解析
2.6 本章小結(jié)
第3章 基于API使用規(guī)范的代碼行級缺陷預(yù)測
3.1 代碼行級缺陷預(yù)測技術(shù)存在的問題
3.2 基于API使用規(guī)范的代碼行缺陷預(yù)測模型
3.2.1 模型總體框架
3.2.2 模型結(jié)構(gòu)
3.3 基于AST的 API調(diào)用序列提取
3.3.1 Java文件獲取
3.3.2 API調(diào)用序列圖構(gòu)建
3.3.3 API調(diào)用序列提取
3.4 實驗與結(jié)果分析
3.4.1 數(shù)據(jù)集與實驗設(shè)置
3.4.2 實驗結(jié)果與分析
3.4.3 API缺陷實例展示
3.5 本章小結(jié)
第4章 基于變更語義與度量的變更級缺陷預(yù)測
4.1 變更級缺陷預(yù)測存在的問題
4.2 基于變更語義與度量的變更級缺陷預(yù)測模型
4.2.1 模型總體框架
4.2.2 模型結(jié)構(gòu)
4.3 數(shù)據(jù)預(yù)處理
4.3.1 度量數(shù)據(jù)預(yù)處理
4.3.2 變更信息獲取與預(yù)處理
4.4 實驗與結(jié)果分析
4.4.1 數(shù)據(jù)集與實驗設(shè)置
4.4.2 實驗結(jié)果與分析
4.5 本章小結(jié)
第5章 總結(jié)與展望
5.1 本文總結(jié)
5.2 未來展望
參考文獻(xiàn)
讀碩士學(xué)位期間主要的研究成果
致謝
本文編號:3438943
【文章來源】:浙江大學(xué)浙江省 211工程院校 985工程院校 教育部直屬院校
【文章頁數(shù)】:87 頁
【學(xué)位級別】:碩士
【文章目錄】:
摘要
Abstract
第1章 緒論
1.1 引言
1.2 軟件缺陷預(yù)測與研究現(xiàn)狀
1.2.1 軟件缺陷預(yù)測基本內(nèi)容
1.2.2 軟件缺陷預(yù)測研究簡史
1.3 本文研究內(nèi)容
1.3.1 研究目的
1.3.2 本文創(chuàng)新點
1.4 本文組織結(jié)構(gòu)
第2章 相關(guān)技術(shù)分析
2.1 代碼行級缺陷預(yù)測相關(guān)技術(shù)
2.1.1 N-grams語言模型
2.1.2 基于N-grams的代碼行級缺陷預(yù)測方法
2.2 變更級缺陷預(yù)測相關(guān)技術(shù)
2.2.1 變更級度量
2.2.2 變更標(biāo)簽標(biāo)注
2.2.3 變更級缺陷預(yù)測常用機器學(xué)習(xí)算法
2.3 詞嵌入技術(shù)
2.4 循環(huán)卷積神經(jīng)網(wǎng)絡(luò)
2.4.1 循環(huán)神經(jīng)網(wǎng)絡(luò)
2.4.2 循環(huán)卷積神經(jīng)網(wǎng)絡(luò)
2.5 抽象語法樹及其解析
2.6 本章小結(jié)
第3章 基于API使用規(guī)范的代碼行級缺陷預(yù)測
3.1 代碼行級缺陷預(yù)測技術(shù)存在的問題
3.2 基于API使用規(guī)范的代碼行缺陷預(yù)測模型
3.2.1 模型總體框架
3.2.2 模型結(jié)構(gòu)
3.3 基于AST的 API調(diào)用序列提取
3.3.1 Java文件獲取
3.3.2 API調(diào)用序列圖構(gòu)建
3.3.3 API調(diào)用序列提取
3.4 實驗與結(jié)果分析
3.4.1 數(shù)據(jù)集與實驗設(shè)置
3.4.2 實驗結(jié)果與分析
3.4.3 API缺陷實例展示
3.5 本章小結(jié)
第4章 基于變更語義與度量的變更級缺陷預(yù)測
4.1 變更級缺陷預(yù)測存在的問題
4.2 基于變更語義與度量的變更級缺陷預(yù)測模型
4.2.1 模型總體框架
4.2.2 模型結(jié)構(gòu)
4.3 數(shù)據(jù)預(yù)處理
4.3.1 度量數(shù)據(jù)預(yù)處理
4.3.2 變更信息獲取與預(yù)處理
4.4 實驗與結(jié)果分析
4.4.1 數(shù)據(jù)集與實驗設(shè)置
4.4.2 實驗結(jié)果與分析
4.5 本章小結(jié)
第5章 總結(jié)與展望
5.1 本文總結(jié)
5.2 未來展望
參考文獻(xiàn)
讀碩士學(xué)位期間主要的研究成果
致謝
本文編號:3438943
本文鏈接:http://sikaile.net/kejilunwen/ruanjiangongchenglunwen/3438943.html
最近更新
教材專著