版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
基于大模型的測(cè)試斷言生成技術(shù)房春榮南京大學(xué)CONTENTS2.單元測(cè)試生成和修復(fù)3.單元測(cè)試的斷言問(wèn)題4.應(yīng)用驗(yàn)證研究背景大語(yǔ)言模型和單元測(cè)試基礎(chǔ)研究背景-單元測(cè)試與測(cè)試斷言{測(cè)試斷言研究背景-單元測(cè)試生成方法存在的主要問(wèn)題大模型生成單元測(cè)試的流程圖n以大模型會(huì)話迭代為主要框架的代表性方法充分利用了大模型的語(yǔ)義理解和代碼生成能力,n以CODAMOSA為代表的算法,計(jì)算資源的開(kāi)銷(xiāo)主要取決于選取的傳統(tǒng)測(cè)試方法,大模型作為輔助工具來(lái)改進(jìn)傳統(tǒng)測(cè)試方法研究背景-單元測(cè)試生成方法存在的主要問(wèn)題大型語(yǔ)言模型(LLMs)可能在上下文不足的情況下生成無(wú)效的測(cè)試用例,導(dǎo)致編譯錯(cuò)誤。這意味著生成的測(cè)試用例無(wú)法成功運(yùn)行,影響測(cè)試過(guò)程的有效性。缺乏詳細(xì)的測(cè)試反饋和覆蓋率信息可能導(dǎo)致生成的測(cè)試用例在運(yùn)行時(shí)出現(xiàn)錯(cuò)誤,并且覆蓋率低。這意味著生成的測(cè)試用例可能未能充分測(cè)試目標(biāo)代碼,從而降低了測(cè)試的全面性和有效性?,F(xiàn)有方法中,LLMs可能會(huì)陷入自我修復(fù)或再生成嘗試的重復(fù)循環(huán),導(dǎo)致生成過(guò)程低效。即模型在面對(duì)生成錯(cuò)誤時(shí),可能會(huì)不斷嘗試修復(fù)同樣的錯(cuò)誤而無(wú)法前進(jìn),從而浪費(fèi)計(jì)算資源和時(shí)間。研究背景-單元測(cè)試生成方法存在的主要問(wèn)題EvoSuite缺乏深入理解源代碼的能力,因此復(fù)雜的前提條件縮小了基于搜索的測(cè)試生成方法的適用范圍。盡管LLM在理解語(yǔ)義信息和推理生成能力方面表現(xiàn)出色,但生成的測(cè)試用例中不可避免地存在編譯錯(cuò)誤和運(yùn)行時(shí)錯(cuò)誤。如果這些錯(cuò)誤能夠得到修復(fù),LLM生成的測(cè)試用例質(zhì)量將大大提高。研究背景-自動(dòng)斷言生成方法存在的主要問(wèn)題編寫(xiě)測(cè)試斷言通常非常耗時(shí)且勞動(dòng)密集,需要測(cè)試專(zhuān)家手動(dòng)插入測(cè)試輸入(如前綴)和測(cè)試輸基于深度學(xué)習(xí)(DL)的方法通常需要大量的訓(xùn)練數(shù)據(jù),并且可能在處理特定任務(wù)時(shí)表現(xiàn)不佳。依賴(lài)于從現(xiàn)有數(shù)據(jù)中檢索相關(guān)的測(cè)試斷言,可能會(huì)受到詞匯匹配的限制,難以生成語(yǔ)義上有意許多現(xiàn)有方法沒(méi)有采用聯(lián)合訓(xùn)練策略,導(dǎo)致檢索器和生成器之間缺乏協(xié)同優(yōu)化,無(wú)法充分利用各自的優(yōu)勢(shì)來(lái)生成更準(zhǔn)確的斷言。許多現(xiàn)有方法在有限的訓(xùn)練數(shù)據(jù)上表現(xiàn)不佳,難以生成高質(zhì)量的斷言?,F(xiàn)有使用LLM進(jìn)行單元測(cè)試生成的技術(shù)的有效性并沒(méi)有系統(tǒng)的比較研究。單元測(cè)試生成和修復(fù)單元測(cè)試生成-基于提示引導(dǎo)和動(dòng)態(tài)反饋的大模型測(cè)試用例生成和修復(fù)n生成階段:是TestART方法的核心步驟,旨在利用大型語(yǔ)言模型(LLM)生成初始的單元測(cè)試用例。通過(guò)這一階段,TestART可以自動(dòng)化生成測(cè)試用例,從而減少人工測(cè)試的工作量,并提高代碼覆蓋率。生成階段的成功執(zhí)行依賴(lài)于有效的上下文預(yù)處理和模型提示設(shè)計(jì),以充分發(fā)揮LLM的潛力。n修復(fù)階段:修復(fù)部分介紹了一種通過(guò)聯(lián)合訓(xùn)練來(lái)改進(jìn)檢索增強(qiáng)的深度斷言生成方法(AG-RAGAG-RAG結(jié)合外部代碼庫(kù)和預(yù)訓(xùn)練語(yǔ)言模型,解決了以前方法中的技術(shù)局限,在所有基準(zhǔn)和指標(biāo)上顯著優(yōu)于現(xiàn)有的斷言生成方法,大幅提高了準(zhǔn)確性和生成唯一斷言的能力。單元測(cè)試生成-基于提示引導(dǎo)和動(dòng)態(tài)反饋的大模型測(cè)試用例生成和修復(fù)n代碼清理與壓縮:在生成階段之前,源代碼需要經(jīng)過(guò)預(yù)處理,以確保LLM聚焦于代碼的關(guān)鍵部分。清理步驟:?去除注釋?zhuān)阂瞥写a注釋?zhuān)苑乐棺⑨寖?nèi)容與代碼邏輯的不一致導(dǎo)致LLM產(chǎn)生幻覺(jué)。?刪除多余空行:精簡(jiǎn)代碼結(jié)構(gòu),提升模型處理效率。上下文壓縮:?僅保留焦點(diǎn)方法的完整方法體,其他非關(guān)鍵方法僅保留其方法簽名。?保留必要的類(lèi)變量和常量以維持代碼的結(jié)構(gòu)和功能完整性。n變量和方法信息提取:?提取所需的變量和方法信息,包括方法簽名、起始和結(jié)束行號(hào)、變量名和數(shù)據(jù)類(lèi)型。?提取的信息用于構(gòu)建模型提示,指導(dǎo)生成階段的測(cè)試用例設(shè)計(jì)。單元測(cè)試生成-基于提示引導(dǎo)和動(dòng)態(tài)反饋的大模型測(cè)試用例生成和修復(fù)nn初步檢查和修正:?對(duì)生成的測(cè)試用例進(jìn)行初步檢查,識(shí)別并標(biāo)記編譯錯(cuò)誤和語(yǔ)法錯(cuò)誤。?修正簡(jiǎn)單的語(yǔ)法問(wèn)題,確保測(cè)試用例在編譯器中通過(guò)基礎(chǔ)驗(yàn)證。n生成結(jié)果記錄與分析:?記錄生成測(cè)試用例的數(shù)量、類(lèi)型和初步結(jié)果。?分析生成的測(cè)試用例覆蓋范圍及其在真實(shí)場(chǎng)景下的有效性。n提示設(shè)計(jì)與模型調(diào)用:?設(shè)計(jì)特定的提示以激發(fā)LLM生成測(cè)試用例的能力。?提示內(nèi)容包括代碼上下文、預(yù)期行為描述以及已知測(cè)試條件。?利用OpenAI的ChatGPT-3.5,通過(guò)API接口生成初始測(cè)試用例。n生成的初始測(cè)試用例(:):?ChatGPT-3.5生成的初始測(cè)試用例被稱(chēng)為:。?:包含對(duì)目標(biāo)代碼的多樣化測(cè)試,包括基本功能測(cè)試和邊界條件測(cè)試。單元測(cè)試生成-基于提示引導(dǎo)和動(dòng)態(tài)反饋的大模型測(cè)試用例生成和修復(fù)nn提示注入策略:?使用修復(fù)后的測(cè)試用例作為提示輸入,防止LLM在后續(xù)生成中出現(xiàn)相同錯(cuò)誤。?提示注入能有效減少模型的重復(fù)抑制問(wèn)題,提高生成用例質(zhì)量。n提示優(yōu)化的效果:?修復(fù)后的提示能夠引導(dǎo)LLM在生成新用例時(shí)避免已知錯(cuò)誤,并優(yōu)化測(cè)試覆蓋率。?實(shí)驗(yàn)證明,經(jīng)過(guò)提示優(yōu)化的生成階段能顯著提高生成用例的通過(guò)率和覆蓋率。n錯(cuò)誤標(biāo)記與修復(fù)策略準(zhǔn)備:?標(biāo)記測(cè)試用例中的編譯和運(yùn)行時(shí)錯(cuò)誤,準(zhǔn)備進(jìn)入修復(fù)階段進(jìn)行詳細(xì)修復(fù)。?應(yīng)用模板修復(fù)策略,自動(dòng)修復(fù)簡(jiǎn)單錯(cuò)誤,減少修復(fù)階段的工作量。n生成-修復(fù)協(xié)同進(jìn)化的準(zhǔn)備:?在生成階段結(jié)束時(shí),確保所有初步生成的測(cè)試用例已準(zhǔn)備好進(jìn)入修復(fù)階段。?修復(fù)后的代碼作為新一輪生成的基礎(chǔ),進(jìn)行迭代優(yōu)化。單元測(cè)試生成-基于提示引導(dǎo)和動(dòng)態(tài)反饋的大模型測(cè)試用例生成和修復(fù)信息、錯(cuò)誤發(fā)生的代碼位置以及相關(guān)的警告信息。對(duì)于運(yùn)n堆棧追蹤信息詳細(xì)包含了異常的類(lèi)型、發(fā)生位置(包括類(lèi)名、方法圖修復(fù)流程單元測(cè)試生成-基于提示引導(dǎo)和動(dòng)態(tài)反饋的大模型測(cè)試用例生成和修復(fù)n本發(fā)明專(zhuān)注于修復(fù)生成的測(cè)試用例中出現(xiàn)的編譯錯(cuò)誤、斷言錯(cuò)誤以及運(yùn)行時(shí)錯(cuò)誤。本發(fā)明的修復(fù)過(guò)程更注重測(cè)試用例的內(nèi)部邏輯和預(yù)期行為,確保代碼的每個(gè)部分都能正確運(yùn)行。>模板一、導(dǎo)包錯(cuò)誤模版+inportn發(fā)生編譯錯(cuò)誤后,如果錯(cuò)誤原因?yàn)槲凑业椒?hào),且在詳細(xì)錯(cuò)誤信息中是由于找不到類(lèi)符號(hào)引起的,那么就認(rèn)為是導(dǎo)包錯(cuò)誤導(dǎo)致的編譯錯(cuò)誤。首先索引測(cè)試項(xiàng)目、JDK和所有第三方依賴(lài)的JAR包,以獲取在測(cè)試期間所有可訪問(wèn)的Java類(lèi)的完全限定類(lèi)名(例如,java.util.HashMap)。從詳細(xì)錯(cuò)誤原因中提取缺失的類(lèi)名,并從索引中找到該類(lèi)的完全限定類(lèi)名,然后進(jìn)行導(dǎo)入。單元測(cè)試生成-基于提示引導(dǎo)和動(dòng)態(tài)反饋的大模型測(cè)試用例生成和修復(fù)n當(dāng)在測(cè)試用例中使用assertNull方法或者assertTrue方法進(jìn)行斷言時(shí),如果測(cè)試失敗,意味著被檢查的對(duì)象與預(yù)期矛盾。在這種情況下,將assertNull更正為assertNotNull,assertTrue更正為assertFalse是一種快速修復(fù)策略。相反,如果在斷言中使用assertNotNull或assertFalse測(cè)試失敗,則將assertNotNull更正為assertNull,assertFalse更正為assertTrue。n在測(cè)試用例中使用assertEquals方法進(jìn)行斷言時(shí),通常需要比較兩個(gè)值是否相等。n使用正則表達(dá)式來(lái)提取測(cè)試報(bào)告中的預(yù)期值和實(shí)際值。n對(duì)提取出的實(shí)際值進(jìn)行處理,去除多余的括號(hào)和特殊字符,并根據(jù)實(shí)際值的類(lèi)型和格式,構(gòu)造相應(yīng)的替換字符串。n使用替換字符換將assertEquals中的第一個(gè)參數(shù)替換為實(shí)際值。單元測(cè)試生成-基于提示引導(dǎo)和動(dòng)態(tài)反饋的大模型測(cè)試用例生成和修復(fù)n當(dāng)測(cè)試用例的某行代碼拋出異常時(shí),通過(guò)插入異常處理語(yǔ)句,可以捕獲這個(gè)異常,達(dá)到修復(fù)的目的通過(guò)使用try-catch語(yǔ)句包裹可能拋出異常的代碼行,并在catch塊中處理預(yù)期的異常類(lèi)型。n在某些情況下,現(xiàn)有的異常處理語(yǔ)句可能無(wú)法完全覆蓋代碼執(zhí)行過(guò)程中實(shí)際拋出的所有異常類(lèi)型。為了進(jìn)一步提高測(cè)試用例的健壯性,添加catch語(yǔ)句可以確保原有的異常處理邏輯保持完整,同時(shí)避免修改引入新的錯(cuò)誤、擴(kuò)大了異常處理的覆蓋范圍,使測(cè)試用例能夠應(yīng)對(duì)更多的錯(cuò)誤場(chǎng)景。單元測(cè)試生成-基于提示引導(dǎo)和動(dòng)態(tài)反饋的大模型測(cè)試用例生成和修復(fù)圖大模型修復(fù)錯(cuò)誤反饋模板n在模板修復(fù)失敗的情況下,本方法采用大模型修復(fù)作為補(bǔ)充手段,以進(jìn)一步提高測(cè)試代碼的修復(fù)成功率。大模型修復(fù)的基本思路:將模板修復(fù)失敗的錯(cuò)誤信息反饋給大模型,讓其分析錯(cuò)誤原因,并嘗試生成修正后的測(cè)試代碼。提示模板主要由三部分組成:錯(cuò)誤提示:告知大模型先前生成的測(cè)試代碼存在斷言錯(cuò)誤或者運(yùn)行時(shí)異常,需要進(jìn)行修正。錯(cuò)誤信息:將出錯(cuò)的代碼行以及相關(guān)錯(cuò)誤信息填充到提示中,為大模型提供錯(cuò)誤定位和分析的線索。修復(fù)要求:明確要求大模型修改測(cè)試代碼,并以Java代碼塊的形式輸出完整的測(cè)試代碼。單元測(cè)試生成-基于提示引導(dǎo)和動(dòng)態(tài)反饋的大模型測(cè)試用例生成和修復(fù)n該環(huán)節(jié)的主要目的是計(jì)算第三個(gè)環(huán)節(jié)中輸出的測(cè)試用例Tp在源代碼焦點(diǎn)方法上的覆蓋率,并將測(cè)試用例的覆蓋率信息反饋給大型語(yǔ)言模型,引導(dǎo)其生成下一輪的增量測(cè)試用例。①計(jì)算覆蓋率使用OpenClover工具的Maven插件來(lái)計(jì)算覆蓋率。清理項(xiàng)目以確保分析的準(zhǔn)確性利用OpenClover插件的setup目標(biāo)初始化覆蓋率數(shù)據(jù)收集環(huán)境。執(zhí)行項(xiàng)目的測(cè)試用例集,收集測(cè)試過(guò)程中被執(zhí)行的代碼行和分支的信息。aggregate目標(biāo)用于整合所有單元測(cè)試的覆蓋率信息。clover目標(biāo)生成最終的覆蓋率報(bào)告。②構(gòu)建反饋提示自動(dòng)斷言生成-②基于混合檢索增強(qiáng)的單元測(cè)試斷言生成RQ1:TestART生成的測(cè)試用例在正確性方面與基線方法進(jìn)行比較RQ2:TestART生成的測(cè)試用例的充分性與基線方法進(jìn)行比較RQ3:不同部分的組合如何影響TestART的魯棒性Defects4J:該數(shù)據(jù)集包含可復(fù)現(xiàn)的軟件缺陷和支持基礎(chǔ)設(shè)施,以推動(dòng)軟件工程研究。數(shù)據(jù)集包括來(lái)自五個(gè)Java項(xiàng)目的公共和非抽象類(lèi),研究人員從中提取了作為焦點(diǎn)方法的公共方法,總計(jì)8192個(gè)方法用于評(píng)估。n基線方法:EvoSuite,A3Test,ChatGPT,ChatUniTest單元測(cè)試生成-基于提示引導(dǎo)和動(dòng)態(tài)反饋的大模型測(cè)試用例生成和修復(fù)表Defects4J數(shù)據(jù)集所選用的項(xiàng)目通過(guò)比較不同方法對(duì)8192個(gè)焦點(diǎn)方法生成的測(cè)試用例結(jié)果:表Defects4J數(shù)據(jù)集所選用的項(xiàng)目通過(guò)比較不同方法對(duì)8192個(gè)焦點(diǎn)方法生成的測(cè)試用例結(jié)果:相比ChatGPT提升了10%編譯通過(guò)率,16%的運(yùn)行通過(guò)率,30%的整體通過(guò)率;相比GPT-4.0提升了4%編譯通過(guò)率,17%的運(yùn)行通過(guò)率,20%的整體通過(guò)率;ProjectAbbr.VersionNumberofFocalmethodsGsonGson378Commons-LangLang3.1.0Commons-CliCliCommons-CsvCsvJFreeChartChart5772Total8192單元測(cè)試生成-基于提示引導(dǎo)和動(dòng)態(tài)反饋的大模型測(cè)試用例生成和修復(fù)表TestART與不同基線的正確性性能比較Finding:實(shí)驗(yàn)結(jié)果表明,使用固定的修復(fù)模板更有效,能將通過(guò)率提高18.50%。生成的測(cè)試用例常常有相對(duì)一致的錯(cuò)誤,而大語(yǔ)言模型難以運(yùn)行這些測(cè)試用例以獲取錯(cuò)誤反饋,因此使用大語(yǔ)言模型進(jìn)行調(diào)試和修復(fù)往往會(huì)陷入困境。單元測(cè)試生成-基于提示引導(dǎo)和動(dòng)態(tài)反饋的大模型測(cè)試用例生成和修復(fù)表基線的總覆蓋率比較Finding:在相同的基于ChatGPT-3.5的實(shí)驗(yàn)方法中,ChatUniTest的覆蓋率雖然不如ChatGPT-4.0,但仍高于ChatGPT-3.5。TestART的平均覆蓋率比ChatGPT-4.0高出約17%,這主要得益于測(cè)試反饋和提示注入。通過(guò)覆蓋信息的指導(dǎo),增量迭代的測(cè)試用例可以大大覆蓋原測(cè)試用例中遺漏的部分單元測(cè)試生成-基于提示引導(dǎo)和動(dòng)態(tài)反饋的大模型測(cè)試用例生成和修復(fù)表消融實(shí)驗(yàn)對(duì)比結(jié)果Finding:我們展示了四種不同TestART變種的總分支覆蓋率、總行覆蓋率和通過(guò)率:僅使用ChatGPT-3.5、加上修復(fù)模塊(+Repair)、加上修復(fù)和迭代模塊(+Repair+Iteration)、以及完整的TestART(包括修復(fù)、迭代和測(cè)試反饋)。數(shù)據(jù)表明,修復(fù)模塊起著至關(guān)重要的作用,將通過(guò)率提高了28.64%,分支覆蓋率提高了19.03%,行覆蓋率提高了19.66%。迭代和測(cè)試反饋分別貢獻(xiàn)了約3%的覆蓋率提升。單元測(cè)試的斷言問(wèn)題單元測(cè)試核心問(wèn)題-測(cè)試斷言生成AssertionAssertion(a)Buggyimplementation(b)Unittestforpop(c)GeneratedbyEvosuiteExampleofaunittestcasegeneratedbyEvosuite自動(dòng)斷言生成-之前的工作基于深度學(xué)習(xí)的斷言生成:ATLASnATLAS,通過(guò)訓(xùn)練RNN模型來(lái)從現(xiàn)有代碼中提取相關(guān)斷言對(duì)的基于檢索的斷言生成方法。自動(dòng)斷言生成-①面向單元測(cè)試場(chǎng)景的大模型斷言生成能力探索是否可以利用更先進(jìn)的大語(yǔ)言模型完成斷言生成任務(wù)?圖1基于LLM的斷言生成的架構(gòu)概述自動(dòng)斷言生成-①面向單元測(cè)試場(chǎng)景的大模型斷言生成能力探索評(píng)估不同LLMs在自動(dòng)斷言生成中的表現(xiàn):研究中評(píng)估了多個(gè)大語(yǔ)言模型,包括CodeBERT、GraphCodeBERT、UniXcoder、CodeT5和CodeGPT分析每個(gè)模型的優(yōu)缺點(diǎn),找出其在生成準(zhǔn)確性、覆蓋率等方面的差異。RQ1RQ2————RQ1LLM在生成單元斷言方LLM生成的斷言在實(shí)際軟件RQ3RQ3能否通過(guò)信息檢索增強(qiáng)自動(dòng)斷言生成-①面向單元測(cè)試場(chǎng)景的大模型斷言生成能力探索數(shù)據(jù)集2:數(shù)據(jù)集2:Datanew擴(kuò)展:在Dataold基礎(chǔ)上增加了之前被過(guò)濾的樣本,共計(jì)265,420個(gè)樣本數(shù)據(jù)集1:Dataold來(lái)源:GitHub的250萬(wàn)測(cè)試方法內(nèi)容:包含測(cè)試前綴和相應(yīng)的斷言預(yù)處理:去除長(zhǎng)度超過(guò)1K的測(cè)試方法,過(guò)濾掉包含未知令牌的斷言,最終樣本數(shù)量為156,760個(gè)自動(dòng)斷言生成-①面向單元測(cè)試場(chǎng)景的大模型斷言生成能力探索選取的LLM包括:CodeBERT,GraphCodeBERT,UniXcoder,CodeT5,CodeGPT這些模型在編碼器-解碼器架構(gòu)上進(jìn)行預(yù)訓(xùn)練和微調(diào)準(zhǔn)確率(Accuracy):生成斷言與參考斷言完全匹配的比例錯(cuò)誤檢測(cè)能力(BugFound):生成斷言能夠檢測(cè)到的軟件錯(cuò)誤數(shù)量表:我們實(shí)驗(yàn)中選取的開(kāi)源LLMs的詳細(xì)信息?,F(xiàn)有的AG技術(shù)包括:ATLAS、IRar、RAdapt、RAapt、Integration,、EditAS自動(dòng)斷言生成-①面向單元測(cè)試場(chǎng)景的大模型斷言生成能力探索Dataold數(shù)據(jù)集LLM的準(zhǔn)確率范圍:51.82%~58.71%ATLAS的準(zhǔn)確率:31.42%其他AG技術(shù)的準(zhǔn)確率:36.26%~46.54%最高準(zhǔn)確率:58.71%比ATLAS提高:86.86%比Integration提高:26.15%準(zhǔn)確率對(duì)比準(zhǔn)確率對(duì)比CodeTCodeT5表現(xiàn)Datanew數(shù)據(jù)集LLM的準(zhǔn)確率范圍:38.72%~48.19%ATLAS的準(zhǔn)確率:21.66%其他AG技術(shù)的準(zhǔn)確率:37.90%~44.36%最高準(zhǔn)確率:48.19%比ATLAS提高:122.48%比Integration提高:14.19%自動(dòng)斷言生成-①面向單元測(cè)試場(chǎng)景的大模型斷言生成能力探索Finding:(1)LLMs在自動(dòng)化斷言生成中能夠達(dá)到顯著的表現(xiàn),其在Dataold和Datanew上的預(yù)測(cè)準(zhǔn)確率分別為51.82%、58.71%和38.72%~48.19%2)與最先進(jìn)的AG技術(shù)相比,LLMs在預(yù)測(cè)性能上有所提高,平均提高了29.60%和12.47%;(3)CodeT5在所有LLMs和所有基線中表現(xiàn)最出色,其在兩個(gè)基準(zhǔn)測(cè)試上的預(yù)測(cè)準(zhǔn)確率平均高出13.85%和39.65%。自動(dòng)斷言生成-①面向單元測(cè)試場(chǎng)景的大模型斷言生成能力探索圖A.LLMs和斷言生成領(lǐng)域最新技術(shù)的錯(cuò)誤檢測(cè)性能圖B.不同方法檢測(cè)到的錯(cuò)誤的重疊率Finding:(1)五個(gè)選定的LLMs能夠平均檢測(cè)到32個(gè)真實(shí)漏洞,比最先進(jìn)的技術(shù)EDTAS高出52.38%;(2)三個(gè)表現(xiàn)最好的LLMs平均能檢測(cè)到26個(gè)漏洞,比最先進(jìn)的技術(shù)EDTAS提高了136.36%;(3)這三個(gè)LLMs的結(jié)合能夠檢測(cè)到61個(gè)漏洞,證明了LLMs在單元測(cè)試中檢測(cè)現(xiàn)實(shí)世界漏洞的潛力。自動(dòng)斷言生成-①面向單元測(cè)試場(chǎng)景的大模型斷言生成能力探索EASE方法進(jìn)一步提升了LLMs的斷言生成準(zhǔn)確率:CodeTEASE方法進(jìn)一步提升了LLMs的斷言生成準(zhǔn)確率:CodeT5的準(zhǔn)確率從原來(lái)的58.71%提升到63.37%。其他LLMs在EASE方法的輔助下也表現(xiàn)出色:例如,CodeBERT的準(zhǔn)確率從51.82%提升到57.60%,顯示出EASE方法的廣泛適用性和有效性。結(jié)合檢索到的斷言和LLMs生成新的斷言:類(lèi)似程序修復(fù)任務(wù)中的“整容手術(shù)”假設(shè),通過(guò)少量編輯操作生成新的斷言。不需要從頭生成斷言,僅進(jìn)行少量編輯操作:提高生成效率和準(zhǔn)確性,減少生成新斷言的復(fù)雜度。提供實(shí)際開(kāi)發(fā)場(chǎng)景中的額外信息:開(kāi)發(fā)人員經(jīng)常參考相似的代碼片段來(lái)生成新代碼,通過(guò)結(jié)合檢索到的斷言,提供更多上下文信息。自動(dòng)斷言生成-①面向單元測(cè)試場(chǎng)景的大模型斷言生成能力探索Finding:我們的比較結(jié)果表明,通過(guò)結(jié)合LLMs和檢索到的斷言,EASE能進(jìn)一步提升現(xiàn)有斷言生成方法的性能,為所有LLMs帶來(lái)了預(yù)測(cè)準(zhǔn)確率的新記錄,例如CodeT5在Datanew上的預(yù)測(cè)準(zhǔn)確率達(dá)到51.15%。自動(dòng)斷言生成-①面向單元測(cè)試場(chǎng)景的大模型斷言生成能力探索(1)研究了不同候選斷言數(shù)量(beamsize)對(duì)LLMs預(yù)測(cè)準(zhǔn)確性的影響。(2)現(xiàn)有研究(如CIRCLE)表明,生成更多候選斷言可以提高預(yù)測(cè)性能。(3)探討在不同實(shí)際場(chǎng)景中,LLMs在生成Top-1和Top-5候選斷言時(shí)的預(yù)測(cè)準(zhǔn)確性。表:不同候選斷言數(shù)量下LLM在斷言生成中的實(shí)驗(yàn)結(jié)果自動(dòng)斷言生成-①面向單元測(cè)試場(chǎng)景的大模型斷言生成能力探索表:不同候選斷言數(shù)量下LLM在斷言生成中的實(shí)驗(yàn)結(jié)果②結(jié)果:(1)生成Top-1候選斷言時(shí)表現(xiàn)出色,候選數(shù)量增加至5時(shí),預(yù)測(cè)準(zhǔn)確性顯著提高。(2)UniXcoder的預(yù)測(cè)準(zhǔn)確性從Top-5的53.11%提高到Top-50的61.20%。③總結(jié):更多候選斷言顯著提升性能,未來(lái)研究可探索多斷言過(guò)濾方法,與現(xiàn)有AG方法結(jié)合。自動(dòng)斷言生成-①面向單元測(cè)試場(chǎng)景的大模型斷言生成能力探索①設(shè)計(jì):(1)研究了不同類(lèi)型斷言對(duì)LLMs性能的影響。(2)使用JUnit測(cè)試框架中的常見(jiàn)斷言類(lèi)型進(jìn)行實(shí)驗(yàn)。表:不同LLM在每種斷言類(lèi)型下的詳細(xì)統(tǒng)計(jì)數(shù)據(jù)②結(jié)果:(1)CodeT5在各種斷言類(lèi)型上表現(xiàn)最佳,特別是在NotNull(58.51%)、False(48.07%)和Null(50.70%)類(lèi)型上。(2)對(duì)于Equals(41.00%)和ArrayEquals(41.22%)類(lèi)型的斷言,生成準(zhǔn)確性較低。自動(dòng)斷言生成-①面向單元測(cè)試場(chǎng)景的大模型斷言生成能力探索①設(shè)計(jì)1)研究了輸入測(cè)試長(zhǎng)度和輸出斷言長(zhǎng)度對(duì)LLMs預(yù)測(cè)準(zhǔn)確性的影響。(2)探討了LLMs在生成不同長(zhǎng)度測(cè)試和斷言時(shí)的性能。表:五個(gè)LLM在生成不同長(zhǎng)度斷言時(shí)的比較結(jié)果②結(jié)果:(1)輸入測(cè)試長(zhǎng)度在300-400tokens時(shí),LLMs的表現(xiàn)最佳。(2)輸出斷言長(zhǎng)度小于100tokens時(shí),LLMs的生成準(zhǔn)確性較高,如CodeT5在0-20tokens長(zhǎng)度下的預(yù)測(cè)準(zhǔn)確性為61.33%。自動(dòng)斷言生成-②基于混合檢索增強(qiáng)的單元測(cè)試斷言生成RetriGen從檢索優(yōu)化角度,將傳統(tǒng)信息檢索和大模型的代碼理解能力結(jié)合,設(shè)計(jì)了—種基于代碼字符-嵌入向量混合檢索的斷言生成框架RetriGen首先構(gòu)建一個(gè)混合斷言檢索器,從外部代碼庫(kù)中搜索最相關(guān)的測(cè)試-斷言對(duì)。檢索過(guò)程既考慮了基于token和基于Embedding的斷言檢索,既有詞匯相似性也有語(yǔ)義相似性。然后,RetriGen將斷言生成作為序列到序列任務(wù),并設(shè)計(jì)了一個(gè)基于預(yù)訓(xùn)練語(yǔ)言模型的斷言生成器,以預(yù)測(cè)與檢索到的斷言相一致的斷言。該方法解決之前方法無(wú)法同時(shí)考慮代碼語(yǔ)法和語(yǔ)義相似性的問(wèn)題。>假設(shè)C=>假設(shè)C=(FTIj,A/j)ICIj=1是一個(gè)包含大量歷史測(cè)試-斷言對(duì)的外部代碼庫(kù),其中FTIj和A/j分別表示第j個(gè)歷史焦點(diǎn)測(cè)試及其對(duì)應(yīng)的斷言。給定數(shù)據(jù)集D中的一個(gè)焦點(diǎn)測(cè)試FTi,檢索器從代碼庫(kù)C中搜索最相關(guān)的焦點(diǎn)測(cè)試FTIj及其斷言A/j。原始焦點(diǎn)測(cè)試輸入FTi與檢索到的斷言連接形成新輸入序最終,斷言生成器嘗試通過(guò)學(xué)習(xí)以下概率從F^Ti生成Ai:其中:Pθ是檢索模型參數(shù),F(xiàn)Ti是測(cè)試前綴,Ai給定一個(gè)包含m個(gè)代碼token的焦點(diǎn)測(cè)試輸入言生成問(wèn)題形式化為最大化條件概率,即Ai作為正確斷言的可能性:其中:FTi是測(cè)試前綴,Ai是斷言,Pθ是模型參數(shù),aj是斷言的第j個(gè)標(biāo)記。自動(dòng)斷言生成-②基于混合檢索增強(qiáng)的單元測(cè)試斷言生成RetriGen的混合斷言檢索組件包括基于token的檢索器和基于Embedding的檢索器,以同時(shí)考慮詞匯和語(yǔ)義相似性。基于token的檢索器使用稀疏策略IR來(lái)搜索與查詢(xún)focal-test在詞匯上相似的斷言。它通過(guò)分詞數(shù)據(jù)集和代碼庫(kù)中的所有focal-test,并刪除重復(fù)token,以提高檢索效率。然后,使用Jaccard系數(shù)計(jì)算詞匯相似性。Jaccard系數(shù)通過(guò)計(jì)算兩個(gè)向量的重疊和唯一token的數(shù)量,來(lái)測(cè)量它們之間的相似性。公式定義了Jaccard相似性的計(jì)算方法,用于確定兩個(gè)focal-test之間的相似程度。(其中S(FTi)和S(FTj)分別是兩個(gè)focal-testFTi和FTj的代碼token集。)自動(dòng)斷言生成-②基于混合檢索增強(qiáng)的單元測(cè)試斷言生成RetriGen的基于Embedding的檢索器使用了預(yù)訓(xùn)練的CodeLlama模型,直接利用其提供的語(yǔ)義Embedding來(lái)進(jìn)行斷言檢索。與傳統(tǒng)方法從零開(kāi)始訓(xùn)練模型不同,RetriGen直接使用預(yù)訓(xùn)練模型,利用其對(duì)大量代碼的訓(xùn)練經(jīng)驗(yàn)來(lái)獲取有意義的語(yǔ)義Embedding。RetriGen通過(guò)將focal-test代碼分詞并轉(zhuǎn)化為向量,然后計(jì)算這些向量之間的余弦相似性來(lái)評(píng)估斷言的語(yǔ)義相關(guān)性。余弦相似性是一種常用的相似性度量方法,通過(guò)計(jì)算向量之間的角度余弦值來(lái)確定它們的相似程度。公式定義了余弦相似性的計(jì)算方法(其中FTi和FTj分別是兩個(gè)focal-testFTi和FTj的Embedding。)自動(dòng)斷言生成-②基于混合檢索增強(qiáng)的單元測(cè)試斷言生成混合檢索器結(jié)合了基于token的檢索器和基于Embedding的檢索器的優(yōu)點(diǎn)?;趖oken的檢索器側(cè)重于代碼的詞匯相似性?;贓mbedding的檢索器側(cè)重于代碼的語(yǔ)義相似性。通過(guò)將這兩種方法結(jié)合起來(lái),混合檢索器能夠更全面地評(píng)估兩個(gè)焦點(diǎn)測(cè)試之間的相似性。公式3展示了組合相似度分?jǐn)?shù)的計(jì)算方法,其中Jaccard相似度用于詞匯相似性,余弦相似度(cos)用于語(yǔ)義相似性,λ是平衡這兩種相似度的權(quán)重參數(shù)。最終,選擇相似度分?jǐn)?shù)最高的測(cè)試斷言對(duì)來(lái)指導(dǎo)斷言生成器生成新的斷言。自動(dòng)斷言生成-②基于混合檢索增強(qiáng)的單元測(cè)試斷言生成n基礎(chǔ)模型:RetriGen使用CodeT5作為基礎(chǔ)模型,根據(jù)focal-testFTi和檢索到的斷言A生成斷言。CodeT5是針對(duì)源代碼優(yōu)化的編碼-解碼預(yù)訓(xùn)練模型。成輸出Ai。n模型架構(gòu):包括編碼器和解碼器,最后通過(guò)softmax激活的線性層輸出。代碼通過(guò)BPE標(biāo)記器處理,生成詞嵌入向量,并經(jīng)過(guò)編碼器和解碼器生成斷言概率分布。使用交叉熵最小化預(yù)測(cè)斷言和真實(shí)斷言之間的差異訓(xùn)練完成,RetriGen使用集束搜索策略,根據(jù)詞匯表的概率分布生成候選斷言的排序列表。n束搜索選擇概率最高的候選斷言。n生成的斷言可以自動(dòng)或手動(dòng)評(píng)估其正確性,供單元測(cè)試使用。自動(dòng)斷言生成-②基于混合檢索增強(qiáng)的單元測(cè)試斷言生成RQ1:RetriGen與最先進(jìn)的斷言生成方法相比RQ2:不同的組件對(duì)RetriGen的整體有效性的影響分析RQ3:當(dāng)使用其他先進(jìn)的LLMs時(shí)分析RetriGen的可擴(kuò)展性Dataold:包含250萬(wàn)個(gè)測(cè)試方法,經(jīng)過(guò)預(yù)處理后,最終保留了156,760個(gè)樣本。Datanew:是Dataold的擴(kuò)展數(shù)據(jù)集,總共包含265,420個(gè)數(shù)據(jù)項(xiàng),按8:1:1的比例劃分為訓(xùn)練集、驗(yàn)證集和測(cè)試集。表Datanew和Dataold數(shù)據(jù)集現(xiàn)有的AG技術(shù)包括:ATLAS、IRar、RAdapt、RAapt、Integration,、EditAS自動(dòng)斷言生成-②基于混合檢索增強(qiáng)的單元測(cè)試斷言生成表RetriGen與最先進(jìn)的自動(dòng)生成(AG)方法的比較>與基于檢索的方法比較:在兩個(gè)數(shù)據(jù)集上平均提高了55.95%、42.81%和37.76%的準(zhǔn)確性,相比IRar、RAdapt和RAapt。與集成方法比較:在Dataold上的預(yù)測(cè)準(zhǔn)確性分別提高了37.71%和19.8自動(dòng)斷言生成-②基于混合檢索增強(qiáng)的單元測(cè)試斷言生成表RetriGen和基線在每種斷言類(lèi)型下的詳細(xì)統(tǒng)計(jì)數(shù)據(jù)不同斷言類(lèi)型的有效性:RetriGen在兩個(gè)數(shù)據(jù)集上的所有標(biāo)準(zhǔn)JUnit斷言類(lèi)型上均優(yōu)于所有基線。對(duì)于最常見(jiàn)的Equals類(lèi)型,RetriGen在兩個(gè)數(shù)據(jù)集上的預(yù)測(cè)準(zhǔn)確率分別為64%和50%,相比表現(xiàn)最好的EDITAS分別提高了20.75%和19.05%。在Other斷言類(lèi)型中,RetriGen在Datanew上生成了1595個(gè)正確的斷言,相比表現(xiàn)最好的Integration提高了8.16%。自動(dòng)斷言生成-②基于混合檢索增強(qiáng)的單元測(cè)試斷言生成案例研究:展示了兩個(gè)實(shí)際項(xiàng)目中的斷言示例,分別說(shuō)明RetriGen的檢索和生成能力。相比現(xiàn)有方法,RetriGen能夠捕捉到語(yǔ)義差異,并應(yīng)用相應(yīng)的編輯操作生成正確的斷言。自動(dòng)斷言生成-②基于混合檢索增強(qiáng)的單元測(cè)試斷言生成Finding:(1)RetriGen在準(zhǔn)確性和CodeBLEU方面顯著超過(guò)了所有基線,跨兩個(gè)數(shù)據(jù)集的平均準(zhǔn)確性提高了58.81%;(2)RetriGen在所有標(biāo)準(zhǔn)JUnit斷言類(lèi)型上一貫超過(guò)所有基線,例如,在生成Equals類(lèi)型的斷言上,相比于ED-ITAs,分別提高了20.75%和19.05%; (3)RetriGen在兩個(gè)數(shù)據(jù)集上生成了大量獨(dú)特?cái)嘌裕@些斷言是所有基線均未能生成的。自動(dòng)斷言生成-②基于混合檢索增強(qiáng)的單元測(cè)試斷言生成表不同檢索器選擇下RetriGen的有效性>在Dataold數(shù)據(jù)集上,RetriGen的混合檢索器提高了預(yù)測(cè)準(zhǔn)確率在準(zhǔn)確率和CodeBLEU指標(biāo)上,RetriGen在兩個(gè)數(shù)據(jù)集(Dataold和Datanew)上均優(yōu)于所有變體,顯示出每個(gè)組件的重要性。即使沒(méi)有任何檢索器,RetriGen在兩個(gè)數(shù)據(jù)集上的預(yù)測(cè)準(zhǔn)確率分別為58.71%和48.19%,比基準(zhǔn)ATLAS分別提高了86.86%和122.48%。Finding:所有組件(例如,基于Token的和基于Embedding的檢索器)對(duì)RetriGen的性能都有積極的貢獻(xiàn),根據(jù)兩個(gè)評(píng)價(jià)指標(biāo)度量,在兩個(gè)廣泛采用的數(shù)據(jù)集上創(chuàng)下了新紀(jì)錄。自動(dòng)斷言生成-②基于混合檢索增強(qiáng)的單元測(cè)試斷言生成表不同LLM作為斷言生成器的有效性Finding:(1)RetriGen適用于不同的LLMs,并且可持續(xù)地達(dá)到最先進(jìn)的性能,例如,五種涉及的LLMs在兩個(gè)數(shù)據(jù)集上的平均準(zhǔn)確率為54.29%,平均超過(guò)最新的EDITAS10.86%;(2)默認(rèn)的斷言生成器(即CodeT5)是自然且在單元斷言生成場(chǎng)景中相當(dāng)有效的,例如,平均在兩個(gè)數(shù)據(jù)集上提高了其他LLMs的準(zhǔn)確率7.81%。AG-RAG從訓(xùn)練優(yōu)化角度,設(shè)計(jì)了一種檢索-生成協(xié)同優(yōu)化的斷言生成框架,AG-RAG從訓(xùn)練優(yōu)化角度,設(shè)計(jì)了一種檢索-生成協(xié)同優(yōu)化的斷言生成框架,分別利用大模型的代碼理解和生成能力設(shè)計(jì)斷言檢索器和生成器。該方法解決之前方法檢索和生成組件獨(dú)立訓(xùn)練對(duì)代碼語(yǔ)義理解不充分的問(wèn)題。3.基于檢索生成協(xié)同優(yōu)化策略:從概率角度>增強(qiáng)輸入過(guò)程:原始焦點(diǎn)測(cè)試FTi通過(guò)與檢索到的FT%j和其斷FTi⊕FT%j⊕A/j。⊕表示連接操作,將檢索到的相關(guān)信息與包含單元測(cè)試的前綴代碼。望結(jié)果的語(yǔ)句。目標(biāo):通過(guò)學(xué)習(xí)模型參數(shù)。,最大化輸入焦點(diǎn)測(cè)試生成正確斷言的條件概率:自動(dòng)斷言生成-③基于檢索生成協(xié)同增強(qiáng)的單元測(cè)試斷言生成采用BPE分詞器:將源代碼劃分為多個(gè)子詞采用BPE分詞器:將源代碼劃分為多個(gè)子詞,基于它們的頻率分布進(jìn)行分割。評(píng)估兩個(gè)焦點(diǎn)測(cè)試的語(yǔ)義相關(guān)性:計(jì)算兩個(gè)焦點(diǎn)測(cè)試間的余弦相似度(即通過(guò)它們的標(biāo)準(zhǔn)化嵌入向量的內(nèi)積)。使用密集檢索器來(lái)搜索相關(guān)的TAPs:檢索器利用一個(gè)基于Transformer的編碼器,將每個(gè)focal-test編碼為固定大小的密集向量。對(duì)每個(gè)焦點(diǎn)測(cè)試的[CLS]標(biāo)記進(jìn)行L2正則化:在編碼器的最終隱藏層狀態(tài)中為每個(gè)測(cè)試用例添加了一個(gè)特殊的[CLS]標(biāo)記,并用這個(gè)標(biāo)記的狀態(tài)作為上下文嵌入。自動(dòng)斷言生成-③基于檢索生成協(xié)同增強(qiáng)的單元測(cè)試斷言生成組合輸入(輸入增強(qiáng)):將檢索到的TAP與原始測(cè)試用例組合組合輸入(輸入增強(qiáng)):將檢索到的TAP與原始測(cè)試用例組合,形成新的輸入序列。訓(xùn)練:通過(guò)teacherforcing方法最小化交叉熵?fù)p失,優(yōu)化從檢索增強(qiáng)輸入到斷言生成的過(guò)程。編碼:使用CodeT5編碼器對(duì)輸入序列進(jìn)行編碼,生成上下文表示。解碼:使用CodeT5解碼器生成斷言序列,通過(guò)softmax層指導(dǎo)的斷言生成,最大化斷言生成的條件概率。自動(dòng)斷言生成-③基于檢索生成協(xié)同增強(qiáng)的單元測(cè)試斷言生成生成概率分解:將生成概率分解為檢索概率和檢索增強(qiáng)概率。生成概率分解:將生成概率分解為檢索概率和檢索增強(qiáng)概率。訓(xùn)練目標(biāo)近似:利用前k個(gè)檢索到的TAP來(lái)近似訓(xùn)練目標(biāo),通過(guò)聯(lián)合訓(xùn)練策略?xún)?yōu)化模型性能。使用交叉熵?fù)p失。檢索概率計(jì)算:將檢索視為從外部代碼庫(kù)中檢索與給定測(cè)試用例語(yǔ)義相似的TAP。P?:檢索模型參數(shù)C:外部代碼庫(kù)概率分布:使用softmax函數(shù)將語(yǔ)義相關(guān)性轉(zhuǎn)換為概率分布。語(yǔ)J自動(dòng)斷言生成-③基于檢索生成協(xié)同增強(qiáng)的單元測(cè)試斷言生成RQ1:AG-RAG在斷言生成任務(wù)中的表現(xiàn)如何?RQ2:聯(lián)合訓(xùn)練策略對(duì)模型性能有何影響?RQ3:AG-RAG對(duì)不同預(yù)訓(xùn)練語(yǔ)言模型的泛化能力如何?Dataold:包含9000多個(gè)開(kāi)源項(xiàng)目中的250萬(wàn)個(gè)開(kāi)發(fā)者編寫(xiě)的測(cè)試方法。Datanew:是Dataold的擴(kuò)展數(shù)據(jù)集,包含額外的108,660個(gè)樣本,以更好地反映真實(shí)數(shù)據(jù)分布。表Datanew和Dataold數(shù)據(jù)集現(xiàn)有的AG技術(shù)包括:ATLAS、IRar、RAdapt、RAapt、Integration,、EditAS自動(dòng)斷言生成-③基于檢索生成協(xié)同增強(qiáng)的單元測(cè)試斷言生成表AG-RAG與基線方法對(duì)比表展示了AG-RAG與基線方法在三種指標(biāo)上的比較結(jié)果??傮w而言,AG-RAG在兩個(gè)基準(zhǔn)上的準(zhǔn)確率為56.33%-64.59%,CodeBLEU得分為68.11%-80.86%,BLEU得分為72.86%-84.79%,分別比所有基線高出20.82%-160.06%、5.01%-79.66%和4.98%-92.19%。自動(dòng)斷言生成-③基于檢索生成協(xié)同增強(qiáng)的單元測(cè)試斷言生成表AG-RAG與基線在不同類(lèi)型斷言上的表現(xiàn)Finding:AG-RAG在三個(gè)指標(biāo)上顯著優(yōu)于所有以前的AG方法,預(yù)測(cè)準(zhǔn)確率為56.33%-64.59%,并在兩個(gè)數(shù)據(jù)集上生成了1739-2866個(gè)獨(dú)特?cái)嘌浴W詣?dòng)斷言生成-③基于檢索生成協(xié)同增強(qiáng)的單元測(cè)試斷言生成案例研究:展示了來(lái)自ApacheEagle項(xiàng)目的一個(gè)斷言示例,只有AG-RAG能夠正確生成,而所有基線都未能生成。AG-RAG使用IRar基于詞匯匹配來(lái)檢索相似的斷言,即使檢索到的斷言和查詢(xún)焦點(diǎn)測(cè)試在功能上不完全相似。其他方法的不足:RAdapt、RAapt、和EDITAS未能生成正確的斷言,主要是因?yàn)樗鼈冞x用了錯(cuò)誤的斷言類(lèi)型(如assertNotNull)并對(duì)斷言進(jìn)行了錯(cuò)誤的修改(如函數(shù)調(diào)用或參數(shù)替換)。自動(dòng)斷言生成-③基于檢索生成協(xié)同增強(qiáng)的單元測(cè)試斷言生成案例研究:所有方法包括AG-RAG都檢索到了相同的斷言。檢索到的斷言在詞匯上幾乎正確,但AG-RAG在參數(shù)上進(jìn)行細(xì)化(從“0”修改為“3”)以更精確地反映測(cè)試的實(shí)際方法。AG-RAG成功識(shí)別出檢索到的焦點(diǎn)測(cè)試與輸入焦點(diǎn)測(cè)試之間的語(yǔ)義差異,并應(yīng)用了相應(yīng)的編輯操作,從而生成了正確的斷言。其他方法的不足:現(xiàn)有基線方法直接返回了檢索到的斷言,假設(shè)它已經(jīng)是正確的。自動(dòng)斷言生成-③基于檢索生成協(xié)同增強(qiáng)的單元測(cè)試斷言生成表:在AG-RAG中進(jìn)行聯(lián)合訓(xùn)練的影響表展示了我們默認(rèn)聯(lián)合檢索器與基線方法的比較結(jié)果??傮w而言,默認(rèn)的聯(lián)合檢索器在所有指標(biāo)和數(shù)據(jù)集上表現(xiàn)最佳。Finding:我們的聯(lián)合訓(xùn)練策略在三個(gè)指標(biāo)上對(duì)AG-RAG的性能有積極貢獻(xiàn),例如,在Dataold數(shù)據(jù)集上,相比于無(wú)檢索器和預(yù)訓(xùn)練檢索器,分別提高了22.45%和8.28%的準(zhǔn)確率。自動(dòng)斷言生成-③基于檢索生成協(xié)同增強(qiáng)的單元測(cè)試斷言生成表:不同LLMs在AG-RAG中的有效性。Finding:AG-RAG對(duì)不同的LLM具有通用性,在兩個(gè)數(shù)據(jù)集上的平均準(zhǔn)確率分別為58.48%和52.64%,而CodeT5在促進(jìn)斷言檢索和生成方面表現(xiàn)顯著,準(zhǔn)確率分別為64.59%和56.33%。應(yīng)用驗(yàn)證TestART應(yīng)用驗(yàn)證開(kāi)源項(xiàng)目包括:Defects4J中的五個(gè)常用項(xiàng)目:-Commons-Lang:1728待測(cè)方法-Gson:378待測(cè)方法-jfreechart:
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026年既有建筑節(jié)能改造診斷合同
- 2025年產(chǎn)業(yè)數(shù)字化轉(zhuǎn)型咨詢(xún)服務(wù)項(xiàng)目可行性研究報(bào)告
- 2025年新興市場(chǎng)投資策略可行性研究報(bào)告
- 2025年二手車(chē)在線交易平臺(tái)可行性研究報(bào)告
- 2025年創(chuàng)業(yè)孵化器發(fā)展項(xiàng)目可行性研究報(bào)告
- 2025年民宿經(jīng)濟(jì)發(fā)展與規(guī)范化可行性研究報(bào)告
- 產(chǎn)假期間協(xié)議書(shū)
- 生鐵購(gòu)銷(xiāo)合同范本
- 中德合作協(xié)議書(shū)
- 2025年居家養(yǎng)老服務(wù)體系建設(shè)項(xiàng)目可行性研究報(bào)告
- 2025年國(guó)家開(kāi)放大學(xué)《會(huì)計(jì)信息系統(tǒng)原理》期末考試參考題庫(kù)及答案解析
- 國(guó)開(kāi)《農(nóng)業(yè)推廣》終結(jié)性考核調(diào)查報(bào)告答案
- 2025年新版新手父母考試題目及答案
- 藥店冷鏈藥品知識(shí)培訓(xùn)課件
- T-CBJ 2307-2024 醬香型白酒核心產(chǎn)區(qū)(仁懷)
- 農(nóng)村扶貧建房申請(qǐng)書(shū)
- 2025年政府采購(gòu)評(píng)審專(zhuān)家考試真題庫(kù)(附帶答案)
- 垃圾壓縮站運(yùn)營(yíng)維護(hù)管理標(biāo)準(zhǔn)方案
- 《常見(jiàn)抗凝劑分類(lèi)》課件
- 2025運(yùn)輸與配送期末考試題庫(kù)及答案
- 婦科TCT培訓(xùn)課件
評(píng)論
0/150
提交評(píng)論