• <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
    97超碰精品成人国产| 亚洲精品日韩在线中文字幕| 伦精品一区二区三区| 男女那种视频在线观看| 午夜福利成人在线免费观看| 国产黄色视频一区二区在线观看| 日韩一区二区三区影片| 青青草视频在线视频观看| 久久久精品94久久精品| 美女黄网站色视频| 一本—道久久a久久精品蜜桃钙片 精品乱码久久久久久99久播 | 国内精品宾馆在线| 日本一二三区视频观看| 校园人妻丝袜中文字幕| 亚洲内射少妇av| 又粗又硬又长又爽又黄的视频| 亚洲国产精品专区欧美| 亚洲欧美成人综合另类久久久| 精品久久久久久久久亚洲| 亚洲成人精品中文字幕电影| 国产一区二区三区av在线| av在线观看视频网站免费| 免费高清在线观看视频在线观看| 免费观看av网站的网址| 在线天堂最新版资源| 国产精品一区二区性色av| 午夜福利网站1000一区二区三区| 午夜福利在线观看免费完整高清在| 亚洲欧美一区二区三区黑人 | 日本黄色片子视频| 亚洲国产色片| 午夜爱爱视频在线播放| 韩国av在线不卡| 美女高潮的动态| 建设人人有责人人尽责人人享有的 | 国产亚洲5aaaaa淫片| 神马国产精品三级电影在线观看| 精品人妻偷拍中文字幕| 国产三级在线视频| 免费观看a级毛片全部| 亚洲精品日韩av片在线观看| 黄片wwwwww| 亚洲欧洲国产日韩| 久久久久久久久大av| 热99在线观看视频| 精品一区二区免费观看| 97超视频在线观看视频| 久久久久久久久大av| 亚洲国产欧美在线一区| 麻豆国产97在线/欧美| 舔av片在线| 国产综合精华液| 丝袜美腿在线中文| 18禁裸乳无遮挡免费网站照片| 一本久久精品| 男人和女人高潮做爰伦理| 男人和女人高潮做爰伦理| 51国产日韩欧美| 国产精品伦人一区二区| 又爽又黄无遮挡网站| 亚洲国产成人一精品久久久| 久久久久久久久久久丰满| 久久久a久久爽久久v久久| 亚洲在线观看片| 欧美潮喷喷水| 久久亚洲国产成人精品v| 日韩国内少妇激情av| 人妻制服诱惑在线中文字幕| 熟女电影av网| av网站免费在线观看视频 | a级毛片免费高清观看在线播放| 日韩强制内射视频| 欧美一区二区亚洲| 午夜福利视频精品| 亚洲精品国产av成人精品| 精品一区二区三区视频在线| 久久精品夜色国产| 99久国产av精品| 久久久a久久爽久久v久久| kizo精华| 久久久久久久久久人人人人人人| 亚洲av日韩在线播放| 成人毛片a级毛片在线播放| 婷婷色麻豆天堂久久| 国产亚洲5aaaaa淫片| 少妇人妻一区二区三区视频| 亚洲国产精品专区欧美| 有码 亚洲区| 一级二级三级毛片免费看| 一二三四中文在线观看免费高清| 一本久久精品| 麻豆乱淫一区二区| 亚洲久久久久久中文字幕| 国产亚洲av片在线观看秒播厂 | .国产精品久久| 亚洲欧美精品自产自拍| 天天躁夜夜躁狠狠久久av| 久久精品夜夜夜夜夜久久蜜豆| 国产精品久久久久久精品电影| 精华霜和精华液先用哪个| 日韩av不卡免费在线播放| 免费观看在线日韩| 三级男女做爰猛烈吃奶摸视频| 精品熟女少妇av免费看| 男女啪啪激烈高潮av片| 草草在线视频免费看| 亚洲国产欧美在线一区| 校园人妻丝袜中文字幕| 亚洲最大成人手机在线| 三级国产精品片| 丝袜喷水一区| 91精品一卡2卡3卡4卡| 美女脱内裤让男人舔精品视频| 亚洲精品乱码久久久久久按摩| 亚洲熟女精品中文字幕| 我的女老师完整版在线观看| 亚洲内射少妇av| 两个人视频免费观看高清| 亚洲欧美清纯卡通| 麻豆乱淫一区二区| 亚洲图色成人| 免费观看精品视频网站| 亚洲国产日韩欧美精品在线观看| 少妇高潮的动态图| 国产熟女欧美一区二区| 亚洲精品久久久久久婷婷小说| 久久精品国产自在天天线| 久久久久久久久大av| 国产视频首页在线观看| 听说在线观看完整版免费高清| 午夜老司机福利剧场| 麻豆乱淫一区二区| 在线观看人妻少妇| 国产精品人妻久久久久久| 三级男女做爰猛烈吃奶摸视频| 亚洲精品自拍成人| 三级经典国产精品| 青春草国产在线视频| 91午夜精品亚洲一区二区三区| 舔av片在线| 欧美3d第一页| 97热精品久久久久久| 国产成人a∨麻豆精品| 国产亚洲午夜精品一区二区久久 | 国产av在哪里看| 久久久久精品久久久久真实原创| 床上黄色一级片| 亚洲精品影视一区二区三区av| 简卡轻食公司| 欧美 日韩 精品 国产| 免费黄频网站在线观看国产| 亚洲精华国产精华液的使用体验| 久久久久久久久久久免费av| 国产精品一区二区性色av| 国产精品福利在线免费观看| 久久精品久久久久久噜噜老黄| 一本—道久久a久久精品蜜桃钙片 精品乱码久久久久久99久播 | 精品酒店卫生间| 中文天堂在线官网| 亚洲欧美精品专区久久| 日本wwww免费看| 99九九线精品视频在线观看视频| 一二三四中文在线观看免费高清| 国产黄色视频一区二区在线观看| 内地一区二区视频在线| 日韩欧美一区视频在线观看 | 国产一级毛片七仙女欲春2| 街头女战士在线观看网站| 在线免费观看的www视频| 91在线精品国自产拍蜜月| 男人和女人高潮做爰伦理| 99久国产av精品| 欧美变态另类bdsm刘玥| 免费无遮挡裸体视频| 国产精品一区二区性色av| 在线观看一区二区三区| 黑人高潮一二区| 亚洲av电影在线观看一区二区三区 | 自拍偷自拍亚洲精品老妇| 一级毛片 在线播放| 久久精品久久精品一区二区三区| 欧美xxxx黑人xx丫x性爽| 国产一级毛片在线| 免费人成在线观看视频色| 免费av不卡在线播放| 自拍偷自拍亚洲精品老妇| 国产成人精品婷婷| 国产成人a∨麻豆精品| 男人和女人高潮做爰伦理| 丝瓜视频免费看黄片| 国产又色又爽无遮挡免| 免费av不卡在线播放| 91aial.com中文字幕在线观看| 国产男人的电影天堂91| 久久6这里有精品| 少妇熟女欧美另类| 十八禁国产超污无遮挡网站| 少妇熟女aⅴ在线视频| 久久久午夜欧美精品| 日韩大片免费观看网站| 69人妻影院| 久久精品久久久久久久性| 日日撸夜夜添| 少妇的逼好多水| 97热精品久久久久久| 久热久热在线精品观看| 中文字幕久久专区| 亚洲成色77777| 看非洲黑人一级黄片| 噜噜噜噜噜久久久久久91| 在线免费十八禁| videos熟女内射| 不卡视频在线观看欧美| ponron亚洲| 在线免费观看的www视频| 亚洲精品影视一区二区三区av| 青春草国产在线视频| 成人欧美大片| 九九在线视频观看精品| 又大又黄又爽视频免费| 成人漫画全彩无遮挡| 亚洲欧美一区二区三区国产| videos熟女内射| 波野结衣二区三区在线| 国产一区二区在线观看日韩| 国产高清国产精品国产三级 | 国产午夜福利久久久久久| 国内揄拍国产精品人妻在线| 国产av国产精品国产| 超碰97精品在线观看| 色5月婷婷丁香| 天天躁夜夜躁狠狠久久av| 亚洲av成人av| 精品久久久精品久久久| 99久久人妻综合| 亚洲经典国产精华液单| 国产精品无大码| 精品久久久久久久久av| 能在线免费看毛片的网站| 内地一区二区视频在线| 日韩,欧美,国产一区二区三区| 男女啪啪激烈高潮av片| 亚洲av免费在线观看| 亚洲高清免费不卡视频| 中文字幕亚洲精品专区| 内射极品少妇av片p| 日本与韩国留学比较| 国产精品日韩av在线免费观看| 亚洲四区av| 国产综合懂色| 女人久久www免费人成看片| 亚洲成人中文字幕在线播放| 亚洲最大成人av| 麻豆成人午夜福利视频| 日日啪夜夜爽| 内射极品少妇av片p| 国产真实伦视频高清在线观看| 亚洲精品久久午夜乱码| 人妻系列 视频| 国产激情偷乱视频一区二区| 精品国产露脸久久av麻豆 | 乱人视频在线观看| 狂野欧美白嫩少妇大欣赏| 欧美97在线视频| 国产成人精品久久久久久| 国产精品国产三级国产av玫瑰| 午夜老司机福利剧场| 中文字幕人妻熟人妻熟丝袜美| 黄色日韩在线| 国产 一区精品| 成人漫画全彩无遮挡| 三级毛片av免费| 秋霞伦理黄片| 亚洲精品自拍成人| 一边亲一边摸免费视频| 三级毛片av免费| 国产在线男女| 日本-黄色视频高清免费观看| 美女国产视频在线观看| 毛片一级片免费看久久久久| 成年av动漫网址| 99久久九九国产精品国产免费| 国产av在哪里看| 2018国产大陆天天弄谢| 美女cb高潮喷水在线观看| 晚上一个人看的免费电影| 色综合色国产| 2021天堂中文幕一二区在线观| 中国国产av一级| 欧美 日韩 精品 国产| 亚洲欧美日韩东京热| 热99在线观看视频| 欧美xxxx黑人xx丫x性爽| av线在线观看网站| 精品不卡国产一区二区三区| 我的女老师完整版在线观看| 亚洲国产最新在线播放| 亚洲精品乱码久久久v下载方式| 国产精品一区二区在线观看99 | 观看美女的网站| 国产精品蜜桃在线观看| 看十八女毛片水多多多| 看非洲黑人一级黄片| 六月丁香七月| 精品人妻一区二区三区麻豆| 国产高清不卡午夜福利| 99热网站在线观看| 插阴视频在线观看视频| 国产在视频线在精品| 欧美日韩一区二区视频在线观看视频在线 | 亚洲精品成人av观看孕妇| 日韩欧美一区视频在线观看 | 国产免费福利视频在线观看| 97超视频在线观看视频| 69av精品久久久久久| 亚洲美女搞黄在线观看| 国产又色又爽无遮挡免| 亚洲精品乱码久久久久久按摩| 18禁在线播放成人免费| 在线免费观看不下载黄p国产| 麻豆成人av视频| 少妇丰满av| 国产成人a∨麻豆精品| 久久久国产一区二区| 成人午夜高清在线视频| 极品少妇高潮喷水抽搐| 国产成人精品久久久久久| 国产黄a三级三级三级人| 乱系列少妇在线播放| 国产午夜精品一二区理论片| 美女主播在线视频| 亚洲国产最新在线播放| 国产成人精品一,二区| 久久热精品热| 国产精品一区二区三区四区久久| 男插女下体视频免费在线播放| 成人美女网站在线观看视频| 91午夜精品亚洲一区二区三区| 欧美性感艳星| 国产精品伦人一区二区| 成人亚洲精品一区在线观看 | 一级毛片我不卡| 丝瓜视频免费看黄片| 亚洲成色77777| 国产一区亚洲一区在线观看| 成人av在线播放网站| 久久久精品免费免费高清| 97人妻精品一区二区三区麻豆| 女人十人毛片免费观看3o分钟| 久久精品久久久久久久性| 久久久久久久久久久免费av| 国产精品国产三级国产av玫瑰| 免费黄色在线免费观看| 少妇熟女aⅴ在线视频| 亚洲伊人久久精品综合| 简卡轻食公司| 国产伦一二天堂av在线观看| 日韩中字成人| 国内精品宾馆在线| 人人妻人人看人人澡| 91av网一区二区| 一二三四中文在线观看免费高清| 国产v大片淫在线免费观看| 国产精品1区2区在线观看.| 床上黄色一级片| 欧美 日韩 精品 国产| 免费av不卡在线播放| 亚洲精品色激情综合| 免费在线观看成人毛片| 免费看光身美女| 国产亚洲91精品色在线| 成人鲁丝片一二三区免费| 欧美日韩一区二区视频在线观看视频在线 | 国产一区有黄有色的免费视频 | 国产黄色小视频在线观看| 真实男女啪啪啪动态图| 国产亚洲5aaaaa淫片| 能在线免费看毛片的网站| 成人欧美大片| 亚洲第一区二区三区不卡| 久久久久久久午夜电影| 最近2019中文字幕mv第一页| 午夜精品一区二区三区免费看| 哪个播放器可以免费观看大片| 精品久久久精品久久久| 18+在线观看网站| 国产精品一及| 99热6这里只有精品| 在线a可以看的网站| 国产精品日韩av在线免费观看| 亚洲人成网站在线播| 永久免费av网站大全| 欧美激情在线99| 欧美97在线视频| 日韩av在线免费看完整版不卡| 好男人视频免费观看在线| 国产成人午夜福利电影在线观看| 亚洲综合色惰| 天堂俺去俺来也www色官网 | 亚洲欧美成人综合另类久久久| 狂野欧美白嫩少妇大欣赏| 成人亚洲欧美一区二区av| 免费大片18禁| 午夜久久久久精精品| 亚洲欧美精品专区久久| 五月天丁香电影| 欧美激情久久久久久爽电影| 国产一区亚洲一区在线观看| 亚洲一区高清亚洲精品| 18+在线观看网站| 精华霜和精华液先用哪个| 一区二区三区乱码不卡18| 欧美日本视频| 婷婷六月久久综合丁香| 久久久久性生活片| 一级毛片黄色毛片免费观看视频| 久久久精品欧美日韩精品| 丝袜喷水一区| 免费观看a级毛片全部| 亚洲四区av| 尾随美女入室| 亚洲自偷自拍三级| 亚洲精品中文字幕在线视频 | 成人欧美大片| 亚洲国产av新网站| 久久久久精品性色| 夫妻性生交免费视频一级片| 最近视频中文字幕2019在线8| 国产一区有黄有色的免费视频 | 两个人视频免费观看高清| 久久久精品免费免费高清| 久久久久久久久大av| 女的被弄到高潮叫床怎么办| 亚洲av国产av综合av卡| 好男人在线观看高清免费视频| 免费看光身美女| 精品午夜福利在线看| 99热6这里只有精品| 看十八女毛片水多多多| 校园人妻丝袜中文字幕| 亚洲在线观看片| 亚洲成人精品中文字幕电影| 婷婷色综合www| 一级片'在线观看视频| 最近中文字幕高清免费大全6| 成人欧美大片| 九九久久精品国产亚洲av麻豆| 久久人人爽人人片av| 亚洲欧美精品自产自拍| 啦啦啦中文免费视频观看日本| 久久精品熟女亚洲av麻豆精品 | 日韩成人av中文字幕在线观看| 大又大粗又爽又黄少妇毛片口| 久久这里只有精品中国| 国产亚洲一区二区精品| 一个人看的www免费观看视频| 欧美另类一区| 欧美成人午夜免费资源| 国产黄频视频在线观看| 最后的刺客免费高清国语| 日本熟妇午夜| 欧美日韩精品成人综合77777| 国产麻豆成人av免费视频| 黄色一级大片看看| 最近视频中文字幕2019在线8| 午夜精品一区二区三区免费看| 久久精品夜夜夜夜夜久久蜜豆| 国产精品一二三区在线看| 两个人的视频大全免费| 欧美xxxx黑人xx丫x性爽| 久久久久久久久久成人| 亚洲av福利一区| 伊人久久国产一区二区| 日日啪夜夜撸| 久99久视频精品免费| 永久网站在线| 国产免费视频播放在线视频 | 色哟哟·www| 亚洲欧美清纯卡通| 久久久久国产网址| 国产一区二区亚洲精品在线观看| 天堂影院成人在线观看| 久久久久精品久久久久真实原创| 麻豆av噜噜一区二区三区| 欧美精品一区二区大全| 日韩亚洲欧美综合| 精品国产一区二区三区久久久樱花 | 国产高清有码在线观看视频| 麻豆成人av视频| 国产亚洲最大av| 免费人成在线观看视频色| 一级毛片 在线播放| 狠狠精品人妻久久久久久综合| 亚洲精品,欧美精品| 日韩欧美精品免费久久| 九草在线视频观看| 美女xxoo啪啪120秒动态图| 亚洲三级黄色毛片| 亚洲综合色惰| 九九爱精品视频在线观看| 欧美日韩精品成人综合77777| 啦啦啦啦在线视频资源| 22中文网久久字幕| 午夜精品在线福利| 亚洲成人av在线免费| 精品久久久久久久末码| 亚洲色图av天堂| 久久99热这里只频精品6学生| 色5月婷婷丁香| or卡值多少钱| 久久精品熟女亚洲av麻豆精品 | 亚洲av免费在线观看| 国产精品久久久久久久久免| 国产老妇女一区| 女人十人毛片免费观看3o分钟| 国产探花极品一区二区| 青春草亚洲视频在线观看| 国产在线男女| 高清av免费在线| 国产免费又黄又爽又色| 亚洲自偷自拍三级| 久久久a久久爽久久v久久| 亚洲精品乱久久久久久| 国产在线一区二区三区精| 婷婷六月久久综合丁香| 精品99又大又爽又粗少妇毛片| 欧美日韩在线观看h| 国产单亲对白刺激| 国产精品国产三级专区第一集| 久久精品国产亚洲网站| 国产精品国产三级专区第一集| 在线免费观看不下载黄p国产| 男人舔奶头视频| 最近的中文字幕免费完整| 亚洲精品自拍成人| 韩国av在线不卡| 亚洲精品亚洲一区二区| 国产中年淑女户外野战色| 亚洲激情五月婷婷啪啪| 51国产日韩欧美| 国产黄色免费在线视频| 秋霞在线观看毛片| 91午夜精品亚洲一区二区三区| 亚洲欧美中文字幕日韩二区| 国产精品综合久久久久久久免费| 国产精品美女特级片免费视频播放器| 久久热精品热| 日韩 亚洲 欧美在线| 亚洲精品亚洲一区二区| 久久精品夜色国产| 免费看a级黄色片| 欧美3d第一页| 精品人妻视频免费看| 女的被弄到高潮叫床怎么办| 又大又黄又爽视频免费| 高清在线视频一区二区三区| 久久久久久伊人网av| 国产在视频线在精品| 国产欧美另类精品又又久久亚洲欧美| 亚洲人成网站高清观看| 日韩av免费高清视频| 一级毛片aaaaaa免费看小| 国产成人福利小说| 看黄色毛片网站| 欧美日韩视频高清一区二区三区二| 日韩成人伦理影院| 深爱激情五月婷婷| 亚洲最大成人中文| 亚洲精品影视一区二区三区av| 色网站视频免费| 性插视频无遮挡在线免费观看| 精品国产一区二区三区久久久樱花 | 久久精品夜色国产| 日产精品乱码卡一卡2卡三| 在线免费观看不下载黄p国产| av在线观看视频网站免费| 久久草成人影院| 在线观看一区二区三区| 日韩欧美国产在线观看| 亚洲av成人av| 看黄色毛片网站| 99九九线精品视频在线观看视频| 日本熟妇午夜| 亚洲精品影视一区二区三区av| 国产有黄有色有爽视频| 麻豆成人午夜福利视频| 久久精品人妻少妇| a级毛色黄片| 亚洲精品成人久久久久久| 精品亚洲乱码少妇综合久久| 亚洲18禁久久av| 赤兔流量卡办理| 天美传媒精品一区二区| 伦理电影大哥的女人| 国产成人a∨麻豆精品| 肉色欧美久久久久久久蜜桃 | 亚洲精品第二区| 亚洲成人精品中文字幕电影| 国产91av在线免费观看| 亚洲国产精品专区欧美| 国产成人精品一,二区| 狂野欧美激情性xxxx在线观看| 免费看光身美女| 日韩欧美精品免费久久| 三级男女做爰猛烈吃奶摸视频| 亚洲av免费高清在线观看| 午夜日本视频在线| 国产单亲对白刺激| 亚洲美女视频黄频| 亚洲三级黄色毛片| 99九九线精品视频在线观看视频| 九草在线视频观看| 美女cb高潮喷水在线观看| 精品人妻偷拍中文字幕| 亚洲成人一二三区av|