论文

故障定位粒度对存储库规模代码修复任务的影响研究

A Study on the Impact of Fault localization Granularity for Repository-Scale Code Repair Tasks

摘要

自动程序修复可能是一项具有挑战性的任务,特别是在存储库级别解决复杂问题时,这通常涉及问题再现、故障定位、代码修复、测试和验证。这种规模的问题常见于流行的 GitHub 存储库或源自它们的数据集。一些存储库级方法将本地化和修复分为不同的阶段。在这种情况下,故障定位方法在定位粒度方面有所不同。在某种程度上探讨了较小数据集的粒度影响的情况下,并非所有人都通过在完美故障定位的假设下测试代码修复来将此问题与定位准确性的单独问题隔离开来。据作者所知,没有存储库规模的研究明确调查了这种假设下的粒度,也没有对孤立的粒度级别进行系统的实证比较。我们提出了一个执行此类测试的框架,通过修改 Agentless 框架的本地化阶段来检索 真值 本地化数据,并将其作为上下文包含在馈送到修复阶段的提示中。我们表明,在此配置下,作为 SWE-Bench-Mini 数据集的概括,函数级粒度相对于行级和文件级产生最高的修复率。然而,更深入的研究表明,理想的粒度实际上可能取决于任务。这项研究并不是为了改进最先进的技术,我们也不打算将结果与任何完整的代理框架进行比较。相反,我们提出了一个概念证明,用于研究故障定位如何影响存储库规模场景中的自动代码修复。为此,我们提出了初步研究结果,并鼓励进一步研究这两个阶段之间的关系。