NeFut Logo NeFut
EN 管理员登录

[AI学术] 超越简单通过:迭代强化共同生成的bug重现测试与修复

发布于:2026-07-24 22:00 最后更新:2026-07-26 07:44
#LLM #Automated Program Repair #Co-Generation

摘要

大型语言模型(LLMs)使得自动程序修复(APR)在实际bug的处理上变得愈发可行,但直接从bug报告进行修复仍然面临约束不足的问题。Bug重现测试(BRTs)通过将bug报告转化为可执行的、特定于bug的信号,帮助填补这一空缺,指导修复并验证候选补丁。现有研究主要将BRT生成视为APR中的核心子问题,并使用失败-通过(F-P)标准来评估生成的BRT,即要求测试在有bug的代码上失败,而在正确修复的代码上通过。

我们指出,仅依赖F-P标准不足以实现BRT的目标,特别是一些F-P BRT表现得过于宽松,虽然重现了观察到的症状,但仍然允许不正确的补丁。我们通过将F-P BRT分为严格和宽松两类,正式化了这一缺失的质量维度,并通过实验证明,只有严格的BRT能够持续提高修复成功率。

此外,我们发现共同生成会引入测试与修复之间的错误耦合,在这个过程中,即使生成的补丁和测试都错误,F-P检查依然可能通过。基于这些发现,我们提出了CoHarden,一个利用宽松信号作为循环收敛标准的共同生成框架。CoHarden首先在任何修复之前生成测试,然后迭代强化测试与修复,直到生成的测试不再允许宽松回归。

实验表明,CoHarden在SWE-bench Verified上达到了69.4%的解决率和78.9%的F-P,通过与最强的仅修复和共同生成基线相比,解决率分别提升了9.6和7.9个百分点,并在不同的LLM基础和基准测试中一致取得了增益。

博主点评: CoHarden框架通过引入迭代强化机制,有效解决了传统F-P标准的不足,展现了在自动程序修复领域中的创新潜力。这不仅提升了修复的成功率,也为未来的研究提供了新的方向,值得关注和深入探索。

原文链接: https://arxiv.org/abs/2607.19843

[h] 返回首页