← 最新论文
💻 computer science

Naive Defect-Recidivism Mining Is Inflated by Agent Workflow Artefacts: A Construct-Validity Study at Corpus Scale

本研究表明,通过挖掘版本控制历史来比较 AI 智能体与人类修复的持久性,会受到工作流伪影的严重影响,通过人工验证和程序化修正揭示了最初观察到的 AI 智能体更高的复发率其实是一种幻象,且在考虑到这些伪影后该现象便会消失。

原作者: Elena Udrescu, Alexandru Udrescu, Ana-Maria Suduc, Mihai Bîzoi

发布于 2026-08-18
📖 1 分钟阅读☕ 轻松阅读

原作者: Elena Udrescu, Alexandru Udrescu, Ana-Maria Suduc, Mihai Bîzoi

原始论文采用 CC BY 4.0 许可(https://creativecommons.org/licenses/by/4.0/)。 这是对下方论文的AI生成解释。它不是由作者撰写或认可的。如需技术准确性,请参阅原始论文。 阅读完整免责声明

在软件开发的世界里,代码永远不会真正完结;它是一个需要不断修复的生命体。当程序员修复一个漏洞(bug)时,目标是让这个错误永远消失。然而,有时修复会失败,同一个问题会再次出现,迫使团队重新开始。在软件行业中,这种问题的回归被称为“复发”(recidivism)。多年来,研究人员一直在研究人类开发者造成这些回归的频率,利用自动化工具扫描数百万行代码,统计修复被撤销或问题被重新开启的次数。现在,人工智能已经进入了这一领域。由大语言模型驱动的 AI 编程代理正在编写自己的修复方案并提交审批。一个自然的问题随之而来:AI 生成的修复方案是否比人类生成的更持久,还是它们的失败率更高?为了回答这个问题,科学家们开始挖掘庞大的代码历史档案,寻找与人类研究中相同的失败信号。他们预期会发现一个明确的答案,但他们发现的数据却隐藏了一个陷阱。

一个研究小组致力于测试一种衡量这些失败的方法。他们定义了一个名为“缺陷解决债务”(Defect Resolution Debt)的指标,该指标简单地统计了修复尝试后紧跟另一次针对同一问题的尝试的次数。如果修复是完美的,计数为零。如果问题回归,或者修复被撤销,计数就会增加。他们将此方法应用于超过三千个软件缺陷的大规模集合中,将流行的 AI 代理 GitHub Copilot 生成的修复与人类开发者生成的修复进行了对比。乍看之下,结果令人震惊,似乎证实了一个最坏的情况。自动化系统标记出 AI 的修复失败频率远高于人类。具体而言,AI 在 13.5% 的案例中被标记为复发,而人类仅为 8.2%。统计工具表明这种差异是真实且显著的,暗示 AI 在永久解决问题方面不如人类可靠。

然而,研究人员怀疑自动化信号被误导了,原因在于 AI 的工作方式,而非代码本身的质量。他们决定进行更深入的观察,不再仅仅依赖自动计数,而是手动检查两百个被标记问题的实际历史记录。他们聘请了两名独立的评审员来检查每个案例的数字轨迹,并提出了一个简单的问题:问题是真的回归了,还是仅仅是工作流中的误解?人工评审员发现,自动化系统被一种 AI 特有的工作模式所蒙蔽。当 AI 尝试修复漏洞时,它通常先开启一个修复的“草稿”版本,然后关闭它并开启一个“最终”版本来替换。对于自动计数器来说,这看起来像是两次独立的尝试,从而暗示第一次尝试失败了。实际上,这只是一个连续的过程。这种“从草稿到最终版”的模式在 AI 身上发生的频率远高于人类,从而制造了失败的假象。

一旦研究人员对这种工作流伪影进行了修正,情况发生了彻底的变化。当他们剔除了那些 AI 仅仅是在完善其草稿的案例后,两组之间的失败率差异消失了。修正后的数据表明,AI 并不比人类更容易失败;事实上,两组之间的差距消失了,修正后的比例在统计学上变得难以区分。最初的警报只是一个幻象,是由 AI 编写代码的方式而非代码本身的持久性所造成的。这项研究还发现了第二个问题:许多被计数的“修复”实际上根本不是漏洞修复。它们是像更新文档或添加新功能之类的任务,在数据收集过程中被错误地贴上了漏洞修复的标签。这提高了两组的错误率,但并未解释为什么 AI 看起来比人类表现得更差。

研究人员进一步采取措施以确保其发现是可靠的。他们创建了一种新的自动化方法,用于检测并移除整个缺陷数据集中的“草稿到最终版”配对,而无需人工阅读每一个案例。这种程序化的修正证实了他们的手动发现:AI 表面上的过度失败率从 13.5% 下降到了 6.5%,而人类的比例也略微下降至 7.4%。两者之间差异的统计显著性完全消失了。在最后一次更严谨的检查中,他们将单个 AI 修复与来自同一项目和时期的个人人类修复进行匹配,以确保比较的是同类事物。在这种严格控制的比较中,数据表明初始发现的方向发生了逆转,但研究人员明确指出,这一特定结果是“假设生成型”而非“证实型”。他们强调,这一发现尚未确立,需要在进一步验证后才能被视为关于持久性的定论。

这项工作的终极教训不在于 AI 是否比人类更擅长编程,而在于我们如何衡量它。这项研究表明,源自未经验证的自动化信号的头条数据可能完全错误,甚至能够彻底扭转真相。最初关于 AI 修复失败可能性高出 1.64 倍的发现不仅是夸大其词,更是由于测量工具的盲点导致了现实的反转。研究人员得出结论,AI 的修复并非不如人类的修复持久,甚至可能更持久,但要证明这一点,需要一个能够考虑到 AI 代理独特运作方式的测量协议。该研究提供了一种修正后的方法供未来研究使用,确保当我们比较 AI 和人类代码的持久性时,我们统计的是真实的失败,而非一种新型工作流产生的伪影。

您所在领域的论文太多了?

获取与您研究关键词匹配的最新论文每日摘要——附技术摘要,使用您的语言。

试用 Digest →