• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    基于模板的軟件缺陷修復(fù)推薦方法

    2022-05-10 08:45:42薄莉莉朱軒銳孫小兵
    小型微型計算機系統(tǒng) 2022年5期
    關(guān)鍵詞:細(xì)粒度源代碼開發(fā)人員

    薄莉莉,朱軒銳,孫小兵

    1(揚州大學(xué) 信息工程學(xué)院,江蘇 揚州 225127)

    2(江蘇省知識管理與智能服務(wù)工程研究中心,江蘇 揚州 225127)

    3(計算機軟件新技術(shù)國家重點實驗室(南京大學(xué)),南京 210023)

    1 引 言

    軟件缺陷種類繁多,產(chǎn)生原因多樣,造成結(jié)果復(fù)雜多變.往往缺陷的修復(fù)歷經(jīng)不止一次的操作.通常,針對缺陷修復(fù)的問題,使用bug修復(fù)模板可以更快速地輔助開發(fā)人員解決缺陷問題.

    早期的研究提出基于軟件缺陷模式產(chǎn)生有效的模板補丁來更準(zhǔn)確、更快速地修復(fù)bug.例如:Kim等人[1]首先提出了基于模板的自動程序修復(fù)(APR),從超過6萬個人工補丁中學(xué)習(xí)并發(fā)現(xiàn)了一些常用的修復(fù)模板,這些模板能夠被補丁所接受,并修復(fù)bug.Osman等人[2]提出了一種從代碼更改歷史中提取bug修復(fù)模式的方法,統(tǒng)計修復(fù)模式,討論最常見的模式出現(xiàn)的原因.根據(jù)修復(fù)模式,可以更好地理解bug修復(fù),提出更有效的bug解決方法.Negara等人[3]第一次提出從細(xì)粒度的代碼修改序列中識別未知的頻繁代碼修改模式,并分析修改模式,歸納了10種高級程序轉(zhuǎn)換模式.Zhao等人[4]開發(fā)了一種代碼更改自動分類工具CTforC,它依據(jù)代碼更改將其分成5種更改類型和9種更改子類型.雖然這些方法在修復(fù)bug方面有一定的幫助,剖析了較常用的修復(fù)模式,但是修復(fù)模板涉及人工手動分析,模板較單一,能提供的修復(fù)信息適合有針對性的代碼修復(fù).

    目前,深度學(xué)習(xí)技術(shù)廣泛應(yīng)用于缺陷定位、缺陷預(yù)測和缺陷修復(fù)等方面[5-7].Tufano等人[8]提出使用深度學(xué)習(xí)的方法從真實程序的錯誤代碼和修復(fù)代碼中自動學(xué)習(xí)并生成突變體.他們利用RNN Encoder-Decoder構(gòu)造一個神經(jīng)機器轉(zhuǎn)換(NMT)模型,能夠確定在哪以及怎樣突變源代碼,創(chuàng)造了第一個用于自動化的從現(xiàn)有bug修復(fù)中學(xué)習(xí)變體的方法.在文獻(xiàn)[9]中,他們還對NMT模型進行了經(jīng)驗性的研究,通過定性分析表明,該模型能夠?qū)W習(xí)和復(fù)制各種有意義的代碼更改,尤其是重構(gòu)和bug修復(fù)操作.

    為了提供細(xì)粒度的代碼更改,更好地幫助開發(fā)人員理解bug、解決bug問題.本文構(gòu)建了一種自動識別細(xì)粒度更改操作的方法,通過分析常用的細(xì)粒度代碼更改操作并形成修復(fù)模板以運用到缺陷修復(fù)中.通過研究軟件bug模式,開發(fā)人員可以在測試過程中更快地對bug進行修復(fù);也可以在開發(fā)過程中考慮采用什么樣的開發(fā)技術(shù)預(yù)防這些bug模式的再次出現(xiàn),從而提高軟件開發(fā)和測試團隊的整體水平.

    2 技術(shù)基礎(chǔ)

    2.1 細(xì)粒度代碼更改

    為了提高軟件的質(zhì)量,必須盡早的理解bug.了解bug修復(fù)的更改操作,可以更好地理解bug的本質(zhì).在bug修復(fù)的類型中,有很多基于細(xì)粒度更改操作的擴展研究,可以使開發(fā)人員更好地了解代碼更改的性質(zhì).Negara等人[3]首先提出從細(xì)粒度的代碼更改序列中識別先前未知的頻繁更改操作模式,并分析修改模式,歸納了10種高級程序轉(zhuǎn)換模式,并利用23位開發(fā)人員收集的真實代碼進行評估,結(jié)果表明10種高級程序轉(zhuǎn)換模式是有效的,并適用于大部分?jǐn)?shù)據(jù).Osman等人[2]發(fā)現(xiàn)缺少null的檢查和初始化都是反復(fù)出現(xiàn)的錯誤,提出了一種自動提取錯誤修復(fù)模式的新方法.Campos等人[10]從提交修復(fù)操作的歷史庫中找到最常使用的更改操作模式,能夠有效地用于bug修復(fù).

    2.2 GumTree

    GumTree[11]是一個可以生成源代碼編輯腳本的工具,編輯腳本表示兩個版本的源代碼之間的差異.傳統(tǒng)上,使用diff命令生成編輯腳本[12].而GumTree將兩個版本的源代碼作為輸入,并生成一個編輯腳本,該編輯腳本包含抽象語法樹(Abstract Syntax Tree,AST)的插入、刪除、更新和移動的節(jié)點,因此被用于許多更高級別的應(yīng)用程序或進一步的研究中[13-16].GumTree的匹配算法包含兩個階段.第1個階段,GumTree匹配兩個AST的子樹.第2個階段,如果節(jié)點具有相同的類型并且節(jié)點的兩個子樹之間的Jaccard相似度超過閾值,則匹配子樹中的節(jié)點.通過經(jīng)驗研究評估,GumTree可以有效地計算AST上的細(xì)粒度編輯腳本,并且比傳統(tǒng)的diff命令更易于理解.

    由于GumTree比diff命令的解析粒度更細(xì),考慮了語法信息,因此運用GumTree剖析bug修復(fù)中使用到的細(xì)粒度更改操作.通過對細(xì)粒度更改操作進行經(jīng)驗性的研究,提取修復(fù)模板.

    3 方 法

    為了提高軟件缺陷修復(fù)效率,本文提出一種軟件缺陷修復(fù)推薦技術(shù).方法流程如圖1所示.根據(jù)bug源代碼,首先定義適用于軟件缺陷的修復(fù)模板,然后利用基于樹的卷積神經(jīng)網(wǎng)絡(luò)(Tree Based Convolutional Neural Networks,TBCNN)對bug源代碼進行分類,并根據(jù)每一類別推薦軟件缺陷修復(fù)模板.

    圖1 方法流程圖

    3.1 軟件bug修復(fù)模板構(gòu)建

    bug與其對應(yīng)的源代碼之間有很強的關(guān)聯(lián)[17].源代碼是半結(jié)構(gòu)化的文本,可以確定性地解析成抽象語法樹(AST),AST中的每個節(jié)點都是程序源代碼中的抽象組件.利用Java的AST可以從源碼中提取語義信息.

    本文利用GumTree工具,獲取代碼的buggy版本及其對應(yīng)的fixed版本的兩棵AST樹之間的差異,從而識別修復(fù)過程中已定義的17種細(xì)粒度的更改操作.該方法主要依賴GumTree解析代碼,節(jié)點識別來判斷具體的修復(fù)更改操作.首先從Github上爬取bug的源代碼文件,由于本文的細(xì)粒度的更改操作針對Java語言結(jié)構(gòu),所以僅挖掘源文件中后綴名為.Java的文件并且將其作為GumTree的輸入.然后通過GumTree解析buggy版本和fixed版本的差異語句,通過節(jié)點ID對應(yīng),找到具體的修改節(jié)點.差異語句中表示了從buggy版本到fixed版本所修復(fù)語句的操作,利用差異語句中的節(jié)點ID對應(yīng)AST樹上的節(jié)點,很容易找到具體的修復(fù)節(jié)點.最后對該節(jié)點進行祖先遍歷判斷其細(xì)粒度更改操作的類型.通過對祖先節(jié)點的搜索,可以清楚地了解到修改的節(jié)點具體所屬的代碼位置,從而可以準(zhǔn)確判斷出該節(jié)點的細(xì)粒度更改操作類型.其中刪除語句對應(yīng)buggy版本的AST,插入語句對應(yīng)fixed版本的AST,而移動語句則需要對應(yīng)buggy版本和fixed版本的兩個AST.例如:某一GumTree解析后的差異語句是“Insert MethodInvocation(358) into InfixExpression:+(359) at 1”,即根據(jù)ID對應(yīng)到fixed版本的AST樹,追蹤其父節(jié)點并判斷類型,意為“添加一個方法調(diào)用”.在判斷每一個差異語句之后,對于每一個bug修復(fù),產(chǎn)生一個對應(yīng)的修復(fù)節(jié)點序列.即,解析每一個GumTree輸出的差異語句,并轉(zhuǎn)換成我們之前研究[18]中預(yù)先定義的17種細(xì)粒度更改操作,形成更改操作序列.根據(jù)該序列,可以清晰地知道每一次修復(fù)基于代碼所做的更改操作.

    由于在軟件開發(fā)和維護過程中通常進行軟件重用,軟件項目中的源代碼包含具有一定相似程度的代碼片段,會導(dǎo)致在源代碼上進行重復(fù)/相似的更改以及bug修復(fù),這一點在先前的研究中[19-21]也得到了證實.本文首先提取方法級的更改操作序列,然后利用序列分析每一個序列中使用的細(xì)粒度更改操作.提取方法級的更改操作序列主要有4個方面的原因:1)方法很有可能執(zhí)行一個單獨的任務(wù);2)方法級提供了足夠有意義的上下文,例如變量、參數(shù)和方法調(diào)用.較小的代碼切片缺少必要的上下文.3)文件或類級別的粒度可能太大.4)任意長度的代碼切片(例如diff中的塊)可能會使模板更加復(fù)雜.此外,現(xiàn)有研究表明[10],缺陷主要發(fā)生在if相關(guān)語句、方法調(diào)用相關(guān)語句和賦值語句.因此,基于以上考慮,通過對代碼的理解并分析其他常見的軟件缺陷補丁中使用的修復(fù)模板,本文總結(jié)了8個修復(fù)模板.利用每個語句級別上重復(fù)使用的細(xì)粒度更改操作,構(gòu)建修復(fù)模板,使得開發(fā)人員更有效地進行bug修復(fù).

    在Github上,每個項目都經(jīng)過多次缺陷修復(fù)的提交.將本文的模板和每次提交中的代碼進行類型匹配,確認(rèn)模板是在缺陷代碼中進行修復(fù)的,最終得出有效的細(xì)粒度修復(fù)模板.最后對該模板進行統(tǒng)計學(xué)分析,確保該模板是有效的,并且可以提高修復(fù)效率.下面將對每一種模板進行介紹.

    模板1.IC-AS(if條件語句下賦值語句的修改)if條件的改動往往也會牽引該程序結(jié)構(gòu)中其他語句的改動,if條件語句下的賦值語句也隨之修改.示例如表1第2行所示.

    表1 軟件缺陷修復(fù)模板示例

    模板2.WS-FC(while語句中方法調(diào)用的修改)while語句是常用的程序結(jié)構(gòu),方法調(diào)用亦是經(jīng)常容易修改的細(xì)粒度更改操作,因此將其作為一個常用的修復(fù)模板.示例如表1第3行所示.

    模板3.IC-FC(if條件下的方法調(diào)用的修改)if語句是java語言中最常用的程序結(jié)構(gòu),方法調(diào)用修改的頻率較高,因此將其作為一個常用的修復(fù)模板.示例如表1第4行所示.

    模板4.FS-FC(for條件下的方法調(diào)用的修改)for語句是java語言中常用的程序結(jié)構(gòu)之一,方法調(diào)用是最常見的修改,因此將其作為一個常用的修復(fù)模板.示例如表1第5行所示.

    模板5.IF(if語句塊的添加)在處理異常的情況下,通常會在邊界值處理中添加一個if語句塊.示例如表1第6行所示.

    模板6.RC(重復(fù)的操作)在不同的方法中添加相同的塊.在bug修復(fù)過程中,通常會在不同的地方,添加上相同的代碼塊,特別是處理異常的情況下.示例如表1第7行所示.

    模板7.IF-P(添加if預(yù)測指針)這個類別的bug都是修復(fù)條件更改,涉及對某個對象添加空指針.這種類型的bug頻繁發(fā)生.示例如表1第8行所示.

    模板8.AS-FC(賦值語句中方法調(diào)用的修改)賦值語句中的更改,往往會伴隨著方法調(diào)用語句的更改.示例如表1第9行所示.

    3.2 軟件bug修復(fù)推薦方法

    軟件缺陷修復(fù)推薦方法利用bug源代碼進行代碼分類,并為每一分類結(jié)果推薦修復(fù)模板.首先將得到的bug的buggy版本AST和fixed版本AST進行預(yù)處理,將兩個AST轉(zhuǎn)換成一個diff-AST.最終得到的diff-AST是在buggy版本的AST中改進的,使其具有更多的修復(fù)特征,從而提高基于樹的卷積神經(jīng)網(wǎng)絡(luò)的分類特征獲取的準(zhǔn)確性.

    然后,運用基于樹的卷積神經(jīng)網(wǎng)絡(luò)對代碼根據(jù)修復(fù)過程中所包含的細(xì)粒度更改操作進行分類.在修復(fù)方案推薦的方法構(gòu)建中,需要對用于分類的bug數(shù)據(jù)先進行人工標(biāo)記,依據(jù)修復(fù)缺陷過程中使用的細(xì)粒度更改操作的分類標(biāo)準(zhǔn)在人工干預(yù)的情況下將數(shù)據(jù)標(biāo)記類別.在我們之前的經(jīng)驗研究[18]中,對大量的bug進行了細(xì)粒度更改操作的分析,并將bug根據(jù)細(xì)粒度更改操作分為不同的類別.本文將8種修復(fù)模板作為修復(fù)方案推薦類別,通過分析修復(fù)代碼中的細(xì)粒度更改操作將bug數(shù)據(jù)標(biāo)記為不同的修復(fù)方案類別.

    數(shù)據(jù)標(biāo)記完成之后,通過該卷積神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)不同修復(fù)方案類別的特征,并進行數(shù)據(jù)的分類.首先,將diff-AST樹作為輸入,并將AST節(jié)點表示為分布式實值向量,用來捕獲特征.其向量表示通過編碼標(biāo)準(zhǔn)來學(xué)習(xí).接著,設(shè)計一組子樹特征檢測器,在整個AST上滑動以提取程序的結(jié)構(gòu)信息,稱為基于樹的卷積核.然后,應(yīng)用動態(tài)池化來收集樹的不同部分上的信息.最后,添加隱藏層和輸出層.對于監(jiān)督分類任務(wù),輸出層的激活函數(shù)為softmax,結(jié)果為每種分類的可能性.最終將可能性值最大的類別作為推薦類別以達(dá)到修復(fù)模板的推薦.

    4 實驗評估

    4.1 實驗對象

    實驗對象來自Github上爬取的Mozilla項目的源代碼文件,包含bug的buggy版本和fixed版本.實驗數(shù)據(jù)依據(jù)Bugzilla——一個開源的bug追蹤系統(tǒng)(1)https://www.bugzilla.org,該系統(tǒng)關(guān)聯(lián)了Mozilla的bug數(shù)據(jù),判斷bug是否完成了修復(fù)并且有最終的修復(fù)代碼,即在bug報告中是否包含“diff”.我們使用的是Bugzilla中包含“diff”的bug數(shù)據(jù),截止到2018年10月,其數(shù)據(jù)量為1256.

    4.2 實驗設(shè)置

    問題1.本文提出的細(xì)粒度修復(fù)模板的使用頻率以及模板的覆蓋范圍如何?為了回答該問題,實驗中對細(xì)粒度的修復(fù)模板和真實項目中的commit提交的代碼進行匹配,以此判斷該修復(fù)模板使用的頻率.然后統(tǒng)計commit提交的代碼中所有的修復(fù)片段,計算8種模板使用情況的覆蓋范圍,以確定本文定義的修復(fù)模板的通用性.

    問題2.本文推薦的修復(fù)模板的精確度如何?為了回答該問題,本實驗將通過基于樹的卷積神經(jīng)網(wǎng)絡(luò)對bug文件進行推薦的修復(fù)模板與開發(fā)人員生成的補丁中的修復(fù)模式進行比較,來評估其準(zhǔn)確性.為了衡量推薦方法的準(zhǔn)確性,實驗選擇Mozilla項目中已完成修復(fù)的30個bug.我們利用公式(1)作為精確度的度量標(biāo)準(zhǔn).其中P表示推薦的修復(fù)模板的準(zhǔn)確率,nco表示能使用推薦的模板正確修復(fù)的bug的個數(shù),Nco表示bug片段的總個數(shù).這里的準(zhǔn)確率為使用推薦模板正確修復(fù)bug的個數(shù)與實驗中所有bug片段個數(shù)的比例,該值越高,表示修復(fù)性能越好.

    (1)

    問題3.本文提出的推薦修復(fù)模板是否能有效為開發(fā)人員提供bug修復(fù)信息?面對真實項目中的大量代碼,運用本文推薦的修復(fù)模板,能否為開發(fā)人員提供有用的修復(fù)建議,這是本實驗的目的.在實驗中,讓參評人員根據(jù)推薦的修復(fù)模板去修復(fù)軟件bug,篩選有多少建議是可用的,并計算推薦修復(fù)模板的有效性.

    4.3 實驗結(jié)果

    問題1.本文提出的細(xì)粒度修復(fù)模板的使用頻率以及模板的覆蓋范圍如何?

    通過將這些模板分別和每次commit提交中的代碼進行匹配分析,確保這些模板是在真實的項目中經(jīng)常使用并且是有效的.細(xì)粒度模塊的使用頻率如圖2所示.在8種細(xì)粒度模板中,IC-AS模板的使用頻率最高,占總使用次數(shù)的21.83%.在bug修復(fù)中,if條件語句的修改,往往會伴隨著其他程序結(jié)構(gòu)的修改,例如賦值語句的修改或方法調(diào)用語句的修改.IC-FC模板的使用頻率為16.91%,如果出現(xiàn)在賦值語句中修改了調(diào)用方法或者調(diào)用方法的實參,則將其認(rèn)為是對賦值語句的修改,所以在本文的統(tǒng)計計算中,賦值語句的修改高于對方法調(diào)用語句的修改.其次,使用頻率較高的模板是AS-FC,占全部使用次數(shù)的19.73%.在賦值語句的修改中,簡單的賦值語句的修改在少數(shù),即算術(shù)表達(dá)式和邏輯表達(dá)式,大部分還是對復(fù)雜的調(diào)用方法或者參數(shù)的修改.第3個使用頻率高的模板是IC-FC,所占比例為16.91%,即if語句中方法調(diào)用的修改.其他模板的使用頻率分別是,IF為11.64%,F(xiàn)S-FC為10.54%,WS-FC為10.2%,IF-P為5.64%,RC為3.51%.

    圖2 細(xì)粒度模板的使用頻率

    可以發(fā)現(xiàn),在真實的項目中,大部分的模板修改的程序主要是對于if語句的修改,以及方法調(diào)用方法的修改.隨著軟件維護過程中,代碼量的不斷擴大,修復(fù)的程序類型也不止這8種,因此還另外計算了本文的模板在所有的代碼修復(fù)中所覆蓋的范圍.在隨機選取的項目中的1028個commit提交中,這8種基于細(xì)粒度的模板在修復(fù)代碼中覆蓋的范圍為67.11%.

    綜上所述,本文所提出的8種細(xì)粒度的修復(fù)模板在真實的項目中使用是有效的,并且可以解決一半以上的bug問題,可以幫助開發(fā)人員快速地修復(fù)bug.

    問題2.本文基于樹的卷積神經(jīng)網(wǎng)絡(luò)推薦的修復(fù)方案的精確度如何?

    實驗中選取的bug數(shù)據(jù)過濾掉了包含添加大量修復(fù)代碼、刪除大量源代碼以及大量修改代碼,修復(fù)包含明確的細(xì)粒度更改操作以至于可以更清晰地了解所推薦的修復(fù)方案是否正確.并且這些數(shù)據(jù)中的修復(fù)文件較少,且修復(fù)的代碼行中結(jié)構(gòu)較為清晰.同時,30個數(shù)據(jù)不同于基于樹的卷積神經(jīng)網(wǎng)絡(luò)的訓(xùn)練集和測試集數(shù)據(jù).首先30個bug報告將通過bug定位技術(shù)確定可疑的代碼行,然后將包含可疑代碼行的文件利用TBCNN將文件分類,最終選擇類別可能性值最高的類別作為可推薦的修復(fù)方案,并給出修復(fù)意見.該實驗針對最終推薦的30個修復(fù)方案,做統(tǒng)計分析.即通過推薦的修復(fù)方案和正確修復(fù)方案的比較,計算本文修復(fù)方案推薦方法的準(zhǔn)確率.圖3表明了在30個bug中,推薦的修復(fù)模板在每個bug修復(fù)中使用的準(zhǔn)確率.

    圖3 推薦的修復(fù)模板使用的精確度

    從圖3中可以看出,在分析的30個bug中,推薦的修復(fù)模板應(yīng)用于具體的代碼修復(fù)中,準(zhǔn)確率高于50%的達(dá)到了一半.這表明本文的細(xì)粒度修復(fù)模板是有效的,可以用于真實的代碼修復(fù)中.由于在真實的情況下,一些bug需要修復(fù)的代碼片段只有一個,或者太多(例如多于20個).這會造成修復(fù)模板的推薦受到限制,比如在bug #185165中,只修改了一處,即對if語句中的if條件進行了修改,而在本文的修復(fù)模板中不包含這類的修改,因此這會限制模板的使用.為了保證實驗驗證的有效性,選取的30個bug是隨機選取,只過濾掉了因為添加文件而造成的大范圍增加代碼的情況.而大范圍增加代碼進行修復(fù)的過程并不適合用模板修復(fù),會造成模板的無效性.

    在30個bug中,僅有16.67%的推薦的修復(fù)模板可以達(dá)到準(zhǔn)確率100%的效果.造成這個結(jié)果的原因主要是,目前本文的修復(fù)模板雖然取自真實的項目中,但是在提取的過程中,由于一些技術(shù)因素導(dǎo)致模板并不全面,此模板的覆蓋范圍為67.11%.其次是在真實的項目中,程序結(jié)構(gòu)多種多樣,并不絕對的限制在if條件中,而本文提取的修復(fù)模板大部分都是針對于if條件的修改,這會影響模板在驗證過程中的效果.

    問題3.本文提出的推薦修復(fù)模板是否能有效為開發(fā)人員提供bug修復(fù)信息?

    在這個研究問題中,旨在驗證修復(fù)模板是否符合開發(fā)人員想要的修復(fù)效果,能否為解決bug問題提供一些有效的信息.因此,為了驗證這個問題,實驗組織者邀請了5位參評者(對bug數(shù)據(jù)的研究超過兩年),根據(jù)推薦的修復(fù)模板,對推薦的信息有用性從3個等級進行評價:有用、一般有用、無用.其中,“有用”是指能夠幫助參評者實現(xiàn)bug問題的修復(fù),“一般有用”是指僅能提供一部分的信息,“無用”是指推薦的信息對參評者起不到指導(dǎo)的作用.

    圖4給出修復(fù)模板有效性評價結(jié)果.根據(jù)結(jié)果可知,通過推薦的修復(fù)模板提供的相關(guān)修復(fù)信息,對30個bug進行評估,其中對于參評者C,有46.67%的模板信息是有用的,43.33%的模板信息是一般有用的,僅有10%的模板信息是無用的.因此,可以認(rèn)為90%的模板信息是有效的,能夠提供一些用于修復(fù)的指導(dǎo)意見.在其他參評者的反饋中,可以看出,大部分的修復(fù)模板方案是有效的,只有較少一部分提供的模板方案無效.造成這個結(jié)果的原因,可能是模板覆蓋不全面,小部分的bug僅修復(fù)一段代碼而這個修復(fù)操作不屬于本文的模板的覆蓋范圍.但是,從評價結(jié)果可知,本文提出的推薦修復(fù)模板方案能有效的提供一些bug修復(fù)相關(guān)的信息,可以幫助開發(fā)人員解決bug問題.

    圖4 修復(fù)模板有效性評價結(jié)果

    5 有效性威脅

    首先,在本實驗中,利用基于樹的卷積神經(jīng)網(wǎng)絡(luò)完成修復(fù)模板的推薦,在人工對訓(xùn)練數(shù)據(jù)進行分類的過程中,可能存在一些人為的誤差,沒有經(jīng)過專家認(rèn)證,從而影響訓(xùn)練數(shù)據(jù)集的準(zhǔn)確性.

    其次,在驗證過程中,選取的bug數(shù)據(jù)是隨機的,可能會導(dǎo)致模板的適用效果存在誤差.另一個有效性威脅是問題2中的參評者的評估存在偏差.為了緩解該問題,實驗中涉及的參評者都是具有開發(fā)經(jīng)驗并且對bug數(shù)據(jù)有兩年以上的研究.

    最后,本實驗中的實驗對象主要來源于Mozilla項目.雖然本文修復(fù)模板的提出是基于現(xiàn)有的大量大規(guī)模的經(jīng)驗研究結(jié)果,但仍不能保證推薦的模板適用于所有的項目.在接下來的工作中,我們將收集更多開源項目中的缺陷數(shù)據(jù),以保障實驗數(shù)據(jù)的充分性,從而進一步提升本文缺陷修復(fù)推薦方法的實用性.

    6 總 結(jié)

    本文主要針對bug修復(fù)耗時耗力的問題,利用bug報告,提出了一種基于樹的卷積神經(jīng)網(wǎng)絡(luò)進行缺陷修復(fù)方案建議推薦的方法.從bug修復(fù)相關(guān)的源代碼中挖掘修復(fù)模板,并利用修復(fù)模板為開發(fā)人員推薦修復(fù)方案.為了驗證推薦的修復(fù)模板的有效性,本文使用Mozilla的bug數(shù)據(jù)對修復(fù)模板的精確度進行驗證,并邀請5名參評者對推薦的修復(fù)模板進行評估,結(jié)果表明本方法推薦的修復(fù)模板能夠有效地為開發(fā)人員解決bug問題時提供一些修復(fù)和指導(dǎo)意見.

    猜你喜歡
    細(xì)粒度源代碼開發(fā)人員
    人工智能下復(fù)雜軟件源代碼缺陷精準(zhǔn)校正
    計算機仿真(2023年8期)2023-09-20 11:23:42
    融合判別性與細(xì)粒度特征的抗遮擋紅外目標(biāo)跟蹤算法
    基于TXL的源代碼插樁技術(shù)研究
    細(xì)粒度的流計算執(zhí)行效率優(yōu)化方法
    Semtech發(fā)布LoRa Basics 以加速物聯(lián)網(wǎng)應(yīng)用
    軟件源代碼非公知性司法鑒定方法探析
    基于雙線性卷積網(wǎng)絡(luò)的細(xì)粒度圖像定位
    支持細(xì)粒度權(quán)限控制且可搜索的PHR云服務(wù)系統(tǒng)
    揭秘龍湖產(chǎn)品“源代碼”
    讓W(xué)indows 10進入開發(fā)者模式
    電腦迷(2015年12期)2015-04-29 23:22:51
    男人舔奶头视频| 日韩高清综合在线| 国产精品蜜桃在线观看| 欧美一级a爱片免费观看看| 人人妻人人澡人人爽人人夜夜 | 色综合色国产| 精品久久久久久久久亚洲| 青春草亚洲视频在线观看| 久久久久网色| 久久久精品大字幕| 成人毛片a级毛片在线播放| 婷婷色综合大香蕉| 69人妻影院| 亚洲一区高清亚洲精品| 国产欧美日韩精品一区二区| 亚洲中文字幕一区二区三区有码在线看| 精品一区二区免费观看| 日本av手机在线免费观看| 少妇熟女欧美另类| 可以在线观看毛片的网站| 午夜福利在线观看免费完整高清在| 精品久久久久久电影网 | 最近中文字幕2019免费版| 看非洲黑人一级黄片| 少妇裸体淫交视频免费看高清| 国产中年淑女户外野战色| 免费人成在线观看视频色| 精品熟女少妇av免费看| 久久精品影院6| 午夜福利视频1000在线观看| 亚洲天堂国产精品一区在线| 成人亚洲欧美一区二区av| 久久久久精品久久久久真实原创| 欧美zozozo另类| 如何舔出高潮| .国产精品久久| 搡女人真爽免费视频火全软件| 成人午夜高清在线视频| 晚上一个人看的免费电影| 亚洲,欧美,日韩| 人人妻人人澡欧美一区二区| 美女xxoo啪啪120秒动态图| 免费观看的影片在线观看| 少妇熟女欧美另类| 色视频www国产| 高清毛片免费看| 成人综合一区亚洲| 国产精品.久久久| 欧美三级亚洲精品| 少妇人妻一区二区三区视频| 搡女人真爽免费视频火全软件| 亚洲av男天堂| 中文精品一卡2卡3卡4更新| 床上黄色一级片| 偷拍熟女少妇极品色| 两个人视频免费观看高清| 一区二区三区乱码不卡18| 好男人在线观看高清免费视频| 久久精品国产亚洲网站| 在线播放国产精品三级| 国产91av在线免费观看| 高清在线视频一区二区三区 | 99视频精品全部免费 在线| 色综合亚洲欧美另类图片| 六月丁香七月| 国产久久久一区二区三区| 精品酒店卫生间| 午夜a级毛片| 欧美激情在线99| 一卡2卡三卡四卡精品乱码亚洲| 久久久久久久久久成人| 男女下面进入的视频免费午夜| 久久精品久久精品一区二区三区| 成人亚洲精品av一区二区| 国产精品一区二区三区四区免费观看| 七月丁香在线播放| 亚洲欧美清纯卡通| 十八禁国产超污无遮挡网站| 天堂中文最新版在线下载 | 亚洲中文字幕日韩| АⅤ资源中文在线天堂| 在线免费观看不下载黄p国产| 午夜视频国产福利| 日产精品乱码卡一卡2卡三| 嫩草影院精品99| 啦啦啦啦在线视频资源| 精品不卡国产一区二区三区| 亚洲av成人av| 国产精品一二三区在线看| 国产成人午夜福利电影在线观看| 亚洲乱码一区二区免费版| 在线观看美女被高潮喷水网站| 亚洲一区高清亚洲精品| 99视频精品全部免费 在线| 日韩三级伦理在线观看| 国产片特级美女逼逼视频| 久久精品熟女亚洲av麻豆精品 | 久久国产乱子免费精品| 久久午夜福利片| 老女人水多毛片| 亚洲电影在线观看av| 丰满人妻一区二区三区视频av| 国产精品熟女久久久久浪| 青春草视频在线免费观看| 日韩人妻高清精品专区| 亚洲国产精品成人综合色| 大香蕉97超碰在线| 成人欧美大片| 蜜臀久久99精品久久宅男| 亚洲av一区综合| 啦啦啦啦在线视频资源| 人体艺术视频欧美日本| 久久久久久大精品| 九九爱精品视频在线观看| 中文亚洲av片在线观看爽| 五月玫瑰六月丁香| 久久久久网色| 看免费成人av毛片| 99久久精品热视频| 一本一本综合久久| 欧美+日韩+精品| 国产真实伦视频高清在线观看| 亚洲欧美日韩卡通动漫| 久久久精品大字幕| 国产三级在线视频| 最近手机中文字幕大全| 亚洲av中文字字幕乱码综合| 亚洲精品日韩av片在线观看| 免费搜索国产男女视频| 亚洲三级黄色毛片| 神马国产精品三级电影在线观看| 嫩草影院入口| 久久这里有精品视频免费| 免费看a级黄色片| 两个人视频免费观看高清| 尤物成人国产欧美一区二区三区| 在线观看av片永久免费下载| 久久6这里有精品| 精品久久久久久久久久久久久| 寂寞人妻少妇视频99o| 91久久精品国产一区二区三区| 国产精品伦人一区二区| 人体艺术视频欧美日本| 一级二级三级毛片免费看| 亚洲人成网站在线播| 亚洲国产高清在线一区二区三| 国产一区二区在线av高清观看| 成年免费大片在线观看| 高清午夜精品一区二区三区| 男女边吃奶边做爰视频| 别揉我奶头 嗯啊视频| 午夜福利在线观看免费完整高清在| 久久久精品94久久精品| 亚洲av不卡在线观看| 一级黄色大片毛片| 国产成人福利小说| 一卡2卡三卡四卡精品乱码亚洲| 国产精品久久久久久久电影| 一级毛片久久久久久久久女| 国产日韩欧美在线精品| 美女大奶头视频| 插阴视频在线观看视频| 91狼人影院| 国产伦精品一区二区三区视频9| 亚洲欧美日韩高清专用| 色综合色国产| 少妇的逼好多水| 麻豆av噜噜一区二区三区| 一个人看的www免费观看视频| 中文精品一卡2卡3卡4更新| 三级国产精品片| 欧美不卡视频在线免费观看| 一级毛片电影观看 | av在线观看视频网站免费| 亚洲国产精品成人综合色| 午夜精品一区二区三区免费看| 久久99精品国语久久久| 亚洲精品影视一区二区三区av| 久久久精品大字幕| 久久久久精品久久久久真实原创| 三级毛片av免费| 人妻制服诱惑在线中文字幕| 国产高清视频在线观看网站| 成人亚洲精品av一区二区| 日本黄大片高清| 免费看美女性在线毛片视频| 联通29元200g的流量卡| 亚洲av成人精品一二三区| av女优亚洲男人天堂| 精品少妇黑人巨大在线播放 | 成人午夜精彩视频在线观看| 日韩制服骚丝袜av| 水蜜桃什么品种好| 大香蕉久久网| 综合色av麻豆| 国产精品麻豆人妻色哟哟久久 | 国产精品女同一区二区软件| 欧美一级a爱片免费观看看| 亚洲欧美日韩无卡精品| 亚洲成人久久爱视频| 岛国毛片在线播放| 有码 亚洲区| 欧美3d第一页| 久久精品国产亚洲av涩爱| 神马国产精品三级电影在线观看| 九色成人免费人妻av| 好男人视频免费观看在线| 午夜爱爱视频在线播放| 久久久久久久亚洲中文字幕| 在线观看66精品国产| 亚洲精品久久久久久婷婷小说 | 麻豆成人午夜福利视频| 亚洲人成网站在线播| 少妇熟女aⅴ在线视频| 国产亚洲5aaaaa淫片| 亚洲成人中文字幕在线播放| 国产男人的电影天堂91| 日韩高清综合在线| 高清在线视频一区二区三区 | 最近最新中文字幕免费大全7| 最近的中文字幕免费完整| 国产白丝娇喘喷水9色精品| 国产一区二区亚洲精品在线观看| 精品人妻一区二区三区麻豆| 精华霜和精华液先用哪个| 日韩亚洲欧美综合| 国语自产精品视频在线第100页| 久久久精品94久久精品| 国产综合懂色| 在线观看一区二区三区| 国产精品美女特级片免费视频播放器| 欧美区成人在线视频| 我要看日韩黄色一级片| 久久久a久久爽久久v久久| 久久99蜜桃精品久久| 国产精华一区二区三区| 国产白丝娇喘喷水9色精品| 国产亚洲最大av| 直男gayav资源| 亚洲真实伦在线观看| 男插女下体视频免费在线播放| 高清视频免费观看一区二区 | 国产淫片久久久久久久久| 国产精品一区二区三区四区免费观看| 欧美一区二区亚洲| 久久这里有精品视频免费| 精品久久久久久电影网 | 99久久九九国产精品国产免费| 国产精品日韩av在线免费观看| 久久久久久久久久久丰满| 国产亚洲5aaaaa淫片| 99久国产av精品国产电影| 国产探花极品一区二区| 狂野欧美激情性xxxx在线观看| 老师上课跳d突然被开到最大视频| 日本与韩国留学比较| 好男人在线观看高清免费视频| 国产黄片美女视频| 久久精品久久精品一区二区三区| 国产激情偷乱视频一区二区| 日韩三级伦理在线观看| 午夜久久久久精精品| av播播在线观看一区| 亚洲国产色片| 美女脱内裤让男人舔精品视频| 中文字幕熟女人妻在线| 成人午夜精彩视频在线观看| 亚州av有码| 中文字幕亚洲精品专区| 美女大奶头视频| 最近的中文字幕免费完整| 夜夜看夜夜爽夜夜摸| 亚洲aⅴ乱码一区二区在线播放| 日韩欧美在线乱码| 亚洲国产欧洲综合997久久,| 久久精品国产亚洲av天美| 99视频精品全部免费 在线| 国产一区二区亚洲精品在线观看| 自拍偷自拍亚洲精品老妇| 亚洲精品乱久久久久久| 午夜爱爱视频在线播放| 18+在线观看网站| av免费观看日本| 国产精品久久视频播放| 亚洲精品一区蜜桃| .国产精品久久| 国产欧美另类精品又又久久亚洲欧美| 久久国内精品自在自线图片| 成人美女网站在线观看视频| 男的添女的下面高潮视频| 成人特级av手机在线观看| 国产一级毛片在线| 国内精品一区二区在线观看| 久久精品国产自在天天线| 一个人观看的视频www高清免费观看| 别揉我奶头 嗯啊视频| 成年女人看的毛片在线观看| 国产亚洲最大av| 亚洲欧美精品综合久久99| 91午夜精品亚洲一区二区三区| 国产亚洲av嫩草精品影院| 亚洲成色77777| 免费观看性生交大片5| 久久久久久久久中文| 国产成人精品婷婷| 大又大粗又爽又黄少妇毛片口| 色综合亚洲欧美另类图片| 欧美成人免费av一区二区三区| 亚洲精品,欧美精品| 久99久视频精品免费| 成年女人看的毛片在线观看| 毛片女人毛片| 美女脱内裤让男人舔精品视频| 亚洲国产精品成人综合色| 欧美人与善性xxx| 中文字幕熟女人妻在线| 亚洲国产日韩欧美精品在线观看| 亚洲最大成人av| 日韩一区二区视频免费看| 亚洲国产欧美在线一区| 成人美女网站在线观看视频| 亚洲av福利一区| 国产色爽女视频免费观看| 精品一区二区免费观看| 精品人妻一区二区三区麻豆| 亚洲av.av天堂| 国产精品久久电影中文字幕| 久久精品久久久久久噜噜老黄 | 91午夜精品亚洲一区二区三区| 1024手机看黄色片| 一区二区三区高清视频在线| 乱系列少妇在线播放| 国产免费一级a男人的天堂| 99久久精品国产国产毛片| 最近中文字幕2019免费版| 嫩草影院入口| av福利片在线观看| 亚洲国产最新在线播放| 国产av码专区亚洲av| 亚洲国产最新在线播放| 欧美日韩一区二区视频在线观看视频在线 | 亚洲在线自拍视频| 国产精品一区二区三区四区久久| 大又大粗又爽又黄少妇毛片口| 亚洲自偷自拍三级| 免费观看精品视频网站| 国产亚洲午夜精品一区二区久久 | 又爽又黄a免费视频| 亚洲怡红院男人天堂| 亚洲美女搞黄在线观看| 菩萨蛮人人尽说江南好唐韦庄 | 国产精品福利在线免费观看| 成人二区视频| 国产一区二区在线观看日韩| 国产91av在线免费观看| 日韩制服骚丝袜av| 观看免费一级毛片| 亚洲自偷自拍三级| 欧美一级a爱片免费观看看| 国产成年人精品一区二区| 观看免费一级毛片| 亚洲av成人av| 国产在线男女| 偷拍熟女少妇极品色| av在线亚洲专区| 免费大片18禁| 成人高潮视频无遮挡免费网站| 日本爱情动作片www.在线观看| 日韩在线高清观看一区二区三区| 日日撸夜夜添| 精品久久久久久久久亚洲| 成人午夜高清在线视频| 天堂网av新在线| 最新中文字幕久久久久| 女人被狂操c到高潮| 在线观看av片永久免费下载| 久久午夜福利片| 天堂av国产一区二区熟女人妻| 日本午夜av视频| 亚洲人与动物交配视频| 国产精品1区2区在线观看.| av又黄又爽大尺度在线免费看 | 天堂网av新在线| 亚洲精品色激情综合| 国产一区有黄有色的免费视频 | 最近视频中文字幕2019在线8| 亚洲成av人片在线播放无| 久久久精品欧美日韩精品| 中文资源天堂在线| 免费观看性生交大片5| 成人高潮视频无遮挡免费网站| 成人午夜高清在线视频| 国产高清不卡午夜福利| 大香蕉97超碰在线| 国产乱人视频| 成人鲁丝片一二三区免费| 国产真实伦视频高清在线观看| 嘟嘟电影网在线观看| 五月伊人婷婷丁香| 99久久成人亚洲精品观看| 成人国产麻豆网| 精品久久久久久久久久久久久| 美女黄网站色视频| av专区在线播放| 国产亚洲最大av| 91狼人影院| 69人妻影院| 国产黄片美女视频| 亚洲最大成人手机在线| 成人毛片a级毛片在线播放| 日韩 亚洲 欧美在线| 日产精品乱码卡一卡2卡三| 干丝袜人妻中文字幕| av国产免费在线观看| 内地一区二区视频在线| 黑人高潮一二区| 国产探花在线观看一区二区| 青春草亚洲视频在线观看| 亚洲在久久综合| 老师上课跳d突然被开到最大视频| 七月丁香在线播放| 国产精品电影一区二区三区| 欧美性猛交╳xxx乱大交人| 国产午夜精品论理片| 狠狠狠狠99中文字幕| kizo精华| 69av精品久久久久久| 黄色日韩在线| 精品一区二区三区视频在线| 只有这里有精品99| 蜜桃久久精品国产亚洲av| 亚洲av男天堂| 99久久精品一区二区三区| 中国国产av一级| 内射极品少妇av片p| 毛片一级片免费看久久久久| 在线天堂最新版资源| 亚洲国产色片| 亚洲自拍偷在线| 女人被狂操c到高潮| 久久精品久久久久久噜噜老黄 | 亚洲最大成人av| 免费看光身美女| 午夜福利在线观看吧| 国产午夜福利久久久久久| 日韩,欧美,国产一区二区三区 | 亚洲中文字幕一区二区三区有码在线看| 狠狠狠狠99中文字幕| 中文字幕av在线有码专区| 日韩三级伦理在线观看| 直男gayav资源| 欧美bdsm另类| 91精品国产九色| 免费看a级黄色片| 免费黄色在线免费观看| 亚洲色图av天堂| 国产免费福利视频在线观看| 欧美成人a在线观看| a级一级毛片免费在线观看| 日日撸夜夜添| 亚洲人成网站在线播| 中文欧美无线码| 麻豆精品久久久久久蜜桃| 日韩一本色道免费dvd| 丰满少妇做爰视频| 波野结衣二区三区在线| 嫩草影院入口| 日本熟妇午夜| 中国国产av一级| 成人欧美大片| 亚洲自偷自拍三级| 国产色爽女视频免费观看| 久久久成人免费电影| 嘟嘟电影网在线观看| 亚洲精品自拍成人| 成人性生交大片免费视频hd| 夜夜看夜夜爽夜夜摸| 免费观看的影片在线观看| 三级国产精品欧美在线观看| 热99re8久久精品国产| 天天躁夜夜躁狠狠久久av| 亚洲欧美中文字幕日韩二区| 一个人看的www免费观看视频| 毛片一级片免费看久久久久| 免费av不卡在线播放| 成人午夜高清在线视频| 国产精品人妻久久久久久| 日本猛色少妇xxxxx猛交久久| 高清在线视频一区二区三区 | 亚洲国产欧美人成| 成人欧美大片| 有码 亚洲区| 亚洲丝袜综合中文字幕| 日韩欧美三级三区| 国产又黄又爽又无遮挡在线| 日本wwww免费看| 老司机福利观看| 少妇丰满av| 中文字幕亚洲精品专区| www日本黄色视频网| 久热久热在线精品观看| 91av网一区二区| 婷婷色av中文字幕| 成人三级黄色视频| 如何舔出高潮| 精品久久久久久久久亚洲| 女的被弄到高潮叫床怎么办| 深夜a级毛片| 蜜桃亚洲精品一区二区三区| 91av网一区二区| 亚洲av电影不卡..在线观看| 久久久久精品久久久久真实原创| 69av精品久久久久久| 内地一区二区视频在线| 在线天堂最新版资源| 久久久国产成人免费| 国产乱人视频| 桃色一区二区三区在线观看| 26uuu在线亚洲综合色| 中文字幕免费在线视频6| 亚洲美女视频黄频| 99热全是精品| 国产精品无大码| 麻豆av噜噜一区二区三区| 国产午夜精品久久久久久一区二区三区| 桃色一区二区三区在线观看| 黄片无遮挡物在线观看| 久久久国产成人精品二区| 男女下面进入的视频免费午夜| 九九爱精品视频在线观看| 九九久久精品国产亚洲av麻豆| av黄色大香蕉| 在线免费观看的www视频| 99热这里只有是精品50| 又粗又硬又长又爽又黄的视频| 精品国内亚洲2022精品成人| 色哟哟·www| 久久久久久久久中文| 99九九线精品视频在线观看视频| 伦精品一区二区三区| 最近中文字幕高清免费大全6| 岛国毛片在线播放| 六月丁香七月| 亚洲电影在线观看av| 国产黄色视频一区二区在线观看 | 亚洲欧美日韩卡通动漫| 国产黄片美女视频| 一区二区三区乱码不卡18| 国产午夜福利久久久久久| 精品一区二区三区视频在线| 中文字幕av成人在线电影| 午夜激情欧美在线| 村上凉子中文字幕在线| 欧美成人免费av一区二区三区| 成人国产麻豆网| videos熟女内射| 久久久久久久久久黄片| 精品国内亚洲2022精品成人| 久久久精品94久久精品| 亚洲性久久影院| 日韩av在线大香蕉| 99视频精品全部免费 在线| 久久久色成人| 欧美又色又爽又黄视频| 又爽又黄无遮挡网站| 成人国产麻豆网| 最近最新中文字幕大全电影3| 亚洲av成人av| 18+在线观看网站| 搡老妇女老女人老熟妇| 国语自产精品视频在线第100页| 插阴视频在线观看视频| 亚洲精品aⅴ在线观看| 青春草国产在线视频| 精品国产三级普通话版| videos熟女内射| 少妇的逼好多水| 国产亚洲精品av在线| 最近中文字幕高清免费大全6| 波野结衣二区三区在线| 毛片女人毛片| 男人舔奶头视频| 如何舔出高潮| 高清日韩中文字幕在线| 亚洲在线观看片| or卡值多少钱| 精品酒店卫生间| 99久久精品国产国产毛片| 国产乱人视频| 晚上一个人看的免费电影| 国产成人免费观看mmmm| 美女被艹到高潮喷水动态| 美女xxoo啪啪120秒动态图| 国产探花极品一区二区| 天天躁日日操中文字幕| 身体一侧抽搐| 久久99热6这里只有精品| 成人国产麻豆网| 精品久久久噜噜| 18禁在线播放成人免费| .国产精品久久| 久99久视频精品免费| 深夜a级毛片| 级片在线观看| 97在线视频观看| 亚洲在久久综合| 最近手机中文字幕大全| 日日啪夜夜撸| 亚洲av不卡在线观看| 日韩欧美三级三区| 中文字幕av在线有码专区| 亚洲欧美日韩卡通动漫| 国产午夜福利久久久久久| 久久久久性生活片| eeuss影院久久|