缺陷降低计划的行动规则挖掘
DeepDebug是数据驱动的程序修复方法,其可以从GitHub代码库中挖掘的实际Java方法中学习检测和修复错误的方法。通过将错误修补构建为序列到序列的学习任务,它实现了两个步骤,即去噪预训练和有监督的微调。本方法显示出比以前的工作更好的异常检测能力,并且可以使用通用解析器进行语言无关的方法。
Apr, 2021
BugLab 是一种基于机器学习的、自监督学习为主的程序分析方法,通过两个模型共同训练,可以有效地发现和修复代码中的错误,提高了2374个真实缺陷数据集的检测和修复准确度,同时发现了19个以前未知的错误。
May, 2021
文章提出一种基于深度学习技术的自动程序修复方法 KNOD,其利用了领域知识来指导补丁生成,并在三个广泛使用的基准测试中越过了所有现有的 APR 工具。
Feb, 2023
自动程序修复是减少开发人员手动调试努力并提高软件可靠性的关键。本文提出了一种新颖的检索增强型修补生成框架(RAP-Gen),通过明确利用从以前的错误修复对的代码库中检索出的相关修复模式来简化参数模型的负担,进而自动化程序修复过程。实验结果表明,RAP-Gen在所有基准测试中显著优于先前的最先进方法,例如在818个Defects4J错误上修复了15个更多的错误。
Sep, 2023
提出了一种自动化的方法AutoCodeRover,将LLMs与复杂的代码搜索能力相结合,从而实现对Github问题的自主解决,进而实现程序改进。
Apr, 2024
利用大型语言模型(LLMs)迭代改进和修复源代码已成为一种流行的方法,该方法被称为细化,可生成过于复杂无法一次构建的程序。我们发现细化代码暴露了探索与利用的权衡:通过改进通过测试用例的程序进行利用,或通过改进较少考虑的程序进行探索。我们将其视为一种获取臂的赌博机问题,并用汤普森采样解决。得到的基于LLM的程序合成算法具有广泛的适用性:在循环不变量合成、视觉推理谜题和竞赛编程问题中,我们发现我们的新方法可以在更少的语言模型调用下解决更多问题。
May, 2024
本研究解决软件项目中自动程序改进的需求,重点在于开发一个有效的工作流程进行迭代规范推断。提出的SpecRover方法通过结合项目结构和行为进行意图推断,评估生成的补丁,并显示出比现有方法提升超过50%的有效性,展示了规范推断在自动化程序修复中的重要性。
Aug, 2024
本研究解决了自动程序改进中缺乏有效意图推断的问题,提出了一种通过大型语言模型和程序分析相结合的低成本工作流程。研究表明,SpecRover在2294个GitHub问题的评估中,效率提高超过50%,并且以适度成本提供可置信的自动修复建议,凸显了规范推断在自动化程序修复中的重要性。
Aug, 2024
本研究解决了自动程序修复(APR)在实际应用中的低效问题,提出了一种新方法DRCodePilot,结合设计推理(DR)改善GPT-4-Turbo的修复能力。实验证明,该方法的全匹配率比直接使用GPT-4提高了4.7倍,显示出设计推理在提高其他模型(如CodeLlama、GPT-3.5和GPT-4)修复精准度方面的潜力,推动了APR领域的新进展。
Aug, 2024