中文

SWE-bench 中的"已解决问题"真的被正确解决了吗?一项实证研究

软件工程 2025-09-10 v2

摘要

自动问题解决旨在解决软件仓库中的真实问题。自动问题解决最流行的基准是 SWE-bench 及其人工筛选子集 SWE-bench Verified。这些基准利用测试来验证生成的补丁。然而,由于测试很少是穷尽的,补丁可能通过测试但仍然未能满足开发者的期望。不幸的是,目前尚不清楚 SWE-bench 的评估在多大程度上受到这种看似合理但不正确的补丁的影响。本论文对三个最先进的用于 SWE-bench Verified 的问题解决工具生成的看似合理的补丁的正确性进行了深入的实证研究。我们广泛测试和检查生成的补丁,并将其与人工编写的真实补丁进行比较。我们的方法核心是一种新颖的差分补丁测试技术 PatchDiff,它自动揭示两个补丁之间的行为差异。我们的结果揭示了 SWE-bench 补丁验证机制的关键弱点,导致 7.8% 的所有补丁被计为正确但未能通过开发者编写的测试套件。此外,我们的新颖自动化技术揭示更多(29.6%)的看似合理补丁诱发了与真实补丁不同的行为。这些行为差异通常是由于相似但不同的实现(46.8%)以及生成的补丁比真实补丁适应了更多行为(27.3%)所致。我们的手动检查显示 28.6% 的行为分歧补丁肯定是不正确的。综合来看,这些不同的弱点导致报告的解决率虚高 6.2 个百分点。我们的结果呼吁对问题解决工具进行更稳健和可靠的评估。我们设想我们的自动化差分补丁测试技术对此目的将非常有用。

关键词

引用

@article{arxiv.2503.15223,
  title  = {Are "Solved Issues" in SWE-bench Really Solved Correctly? An Empirical Study},
  author = {You Wang and Michael Pradel and Zhongxin Liu},
  journal= {arXiv preprint arXiv:2503.15223},
  year   = {2025}
}