论文

毫无硝烟,没有警报:代理编写的测试代码中的 Oracle 信号

All Smoke, No Alarm: Oracle Signals in Agent-Authored Test Code

摘要

软件从业者越来越多地使用 AI 编码智能体 在开源拉取请求 (PR) 中生成测试代码和生产代码。最近的研究报告称,超过 116,000 个存储库中有超过 932,000 个由代理编写的 PR,但它们的测试文件是否包含有意义的验证逻辑仍有待探索。缺乏显式断言的测试文件在不验证行为的情况下执行代码,因此基于测试文件存在的质量门高估了验证强度。本文的目标是通过描述预言机信号及其与合并结果和审查工作的链接来帮助从业者评估代理编写的补丁的验证强度。我们对来自 33,596 个代理编写的 PR 的 86,156 个测试文件补丁进行了实证研究,这些 PR 跨 2,807 个 GitHub 存储库,由五个 编码智能体 生成:OpenAI Codex、GitHub Copilot、Devin、Cursor 和 Claude Code。对 384 个分层补丁的定性分析提供了八个预言信号类别的句法分类。大规模应用后,80.2% 的测试补丁包含微弱或没有明确的预言机信号。虽然强预言机 PR 的原始合并率较低,但调整代理、PR 大小、存储库流行度、任务类型和语言的回归分析显示,强预言机显着提高了合并可能性(OR = 1.28,p < 0.001)。我们的研究结果表明,测试文件计数大大高估了验证强度,并且从业者可以采用 Oracle 感知质量检查来更准确地评估代理编写的贡献。