基于監(jiān)督式主題模型和深度學(xué)習(xí)的API缺陷定位與修復(fù)技術(shù)
發(fā)布時間:2021-08-14 07:58
開源軟件開發(fā)過程中,缺乏專門的測試人員、開發(fā)人員流動性大、大量集成第三方庫和框架等特點,使其缺陷修復(fù)、尤其是應(yīng)用編程接口(Application Programming Interfaces,API)相關(guān)缺陷修復(fù)面臨巨大挑戰(zhàn)。具體而言,上述特點導(dǎo)致:1)大部分缺陷報告通常只包含功能失效描述,缺乏功能實現(xiàn)代碼線索;2)參于項目的開發(fā)人員往往缺乏必要的業(yè)務(wù)功能與實現(xiàn)代碼關(guān)聯(lián)知識;3)開發(fā)人員較難掌握種類繁多的第三方庫或框架提供的API正確使用知識。這些因素最終導(dǎo)致,當(dāng)開發(fā)人員試圖處理缺陷報告時,難以定位相關(guān)實現(xiàn)代碼,而對于API相關(guān)缺陷,即使確定了代碼范圍,也難以理解代碼并找到缺陷產(chǎn)生的原因。為此,需要提供一種基于缺陷報告的API缺陷自動修復(fù)技術(shù)幫助開源軟件開發(fā)人員提高缺陷修復(fù)效率。開源代碼托管平臺為開源軟件開發(fā)提供了缺陷跟蹤和代碼庫管理等功能,其缺陷跟蹤系統(tǒng)中積累了大量已修復(fù)缺陷報告和對應(yīng)的代碼變動信息,而其代碼庫中也積累了大量各類API使用代碼。為此,本文基于機(jī)器學(xué)習(xí)的相關(guān)技術(shù)首先從缺陷跟蹤系統(tǒng)積累的數(shù)據(jù)中學(xué)習(xí)出業(yè)務(wù)功能與實現(xiàn)代碼關(guān)聯(lián)知識,幫助開發(fā)人員定位缺陷報告關(guān)聯(lián)的代碼,接著從代碼...
【文章來源】:南京大學(xué)江蘇省 211工程院校 985工程院校 教育部直屬院校
【文章頁數(shù)】:109 頁
【學(xué)位級別】:碩士
【部分圖文】:
圖3-2:缺陷報告和其修復(fù)源文件名的詞共現(xiàn)現(xiàn)象??圖3-2是一個己解決的缺陷報告@的描述文本以及其對應(yīng)的修復(fù)源文件??名
?l?Prediction?Modal?)??Ranked?Results??圖3-4:缺陷定位過程圖??圖3-4展示了基于缺陷報告的缺陷定位方法的整體流程。首先為了得到訓(xùn)??練數(shù)據(jù),需要收集缺陷追蹤系統(tǒng)中狀態(tài)為已解決的缺陷報告以及其對應(yīng)的修復(fù)??關(guān)系,利用已有的數(shù)據(jù)訓(xùn)練出本文所采用的缺陷定位預(yù)測模型。對于用戶輸入??的新的缺陷報告,根據(jù)訓(xùn)練好的缺陷定位預(yù)測模型可以得到排序好的疑似存在??缺陷的源文件列表,下面對方法的數(shù)據(jù)處理以及具體模型進(jìn)行詳細(xì)介紹。??3.2.2數(shù)據(jù)處理??首先需要對數(shù)據(jù)進(jìn)行預(yù)處理,對于每一個項目,可以從對應(yīng)的BugZilla網(wǎng)??站上獲取其所有的缺陷報告,再從收集到的缺陷報告中,篩選出狀態(tài)為Hxed??的缺陷報告來進(jìn)行實驗評估。為了匹配缺陷報告與其對應(yīng)的修復(fù)文件,本文采??取了?Bachmann與Bemsteinln51提出的傳統(tǒng)啟發(fā)式方法:??
于缺陷報告的缺陷定位方法的整體流程陷追蹤系統(tǒng)中狀態(tài)為已解決的缺陷報告據(jù)訓(xùn)練出本文所采用的缺陷定位預(yù)測模據(jù)訓(xùn)練好的缺陷定位預(yù)測模型可以得到,下面對方法的數(shù)據(jù)處理以及具體模型進(jìn)理??進(jìn)行預(yù)處理,對于每一個項目,可以從缺陷報告,再從收集到的缺陷報告中,驗評估。為了匹配缺陷報告與其對應(yīng)的emsteinln51提出的傳統(tǒng)啟發(fā)式方法:??
本文編號:3342090
【文章來源】:南京大學(xué)江蘇省 211工程院校 985工程院校 教育部直屬院校
【文章頁數(shù)】:109 頁
【學(xué)位級別】:碩士
【部分圖文】:
圖3-2:缺陷報告和其修復(fù)源文件名的詞共現(xiàn)現(xiàn)象??圖3-2是一個己解決的缺陷報告@的描述文本以及其對應(yīng)的修復(fù)源文件??名
?l?Prediction?Modal?)??Ranked?Results??圖3-4:缺陷定位過程圖??圖3-4展示了基于缺陷報告的缺陷定位方法的整體流程。首先為了得到訓(xùn)??練數(shù)據(jù),需要收集缺陷追蹤系統(tǒng)中狀態(tài)為已解決的缺陷報告以及其對應(yīng)的修復(fù)??關(guān)系,利用已有的數(shù)據(jù)訓(xùn)練出本文所采用的缺陷定位預(yù)測模型。對于用戶輸入??的新的缺陷報告,根據(jù)訓(xùn)練好的缺陷定位預(yù)測模型可以得到排序好的疑似存在??缺陷的源文件列表,下面對方法的數(shù)據(jù)處理以及具體模型進(jìn)行詳細(xì)介紹。??3.2.2數(shù)據(jù)處理??首先需要對數(shù)據(jù)進(jìn)行預(yù)處理,對于每一個項目,可以從對應(yīng)的BugZilla網(wǎng)??站上獲取其所有的缺陷報告,再從收集到的缺陷報告中,篩選出狀態(tài)為Hxed??的缺陷報告來進(jìn)行實驗評估。為了匹配缺陷報告與其對應(yīng)的修復(fù)文件,本文采??取了?Bachmann與Bemsteinln51提出的傳統(tǒng)啟發(fā)式方法:??
于缺陷報告的缺陷定位方法的整體流程陷追蹤系統(tǒng)中狀態(tài)為已解決的缺陷報告據(jù)訓(xùn)練出本文所采用的缺陷定位預(yù)測模據(jù)訓(xùn)練好的缺陷定位預(yù)測模型可以得到,下面對方法的數(shù)據(jù)處理以及具體模型進(jìn)理??進(jìn)行預(yù)處理,對于每一個項目,可以從缺陷報告,再從收集到的缺陷報告中,驗評估。為了匹配缺陷報告與其對應(yīng)的emsteinln51提出的傳統(tǒng)啟發(fā)式方法:??
本文編號:3342090
本文鏈接:http://www.sikaile.net/kejilunwen/zidonghuakongzhilunwen/3342090.html
最近更新
教材專著