← 最新论文
💻 computer science

Beyond Test Presence: Assessing the Quality and Robustness of Agent-Generated Tests in Open-Source Projects

这项针对超过 20 万个测试人工制品的实证研究表明,尽管 AI 智能体在边缘情况覆盖率方面优于人类开发人员,但由于缺乏环境感知能力,它们生成的测试具有更高的不稳定性风险,这凸显了测试执行成功与内在质量之间的关键差距。

原作者: Preet Jhanglani, Zeel Kaushal Desai, Vidhi Kansara, Eman Abdullah AlOmar

发布于 2026-07-15
📖 1 分钟阅读☕ 轻松阅读

原作者: Preet Jhanglani, Zeel Kaushal Desai, Vidhi Kansara, Eman Abdullah AlOmar

原始论文根据 CC0 1.0(http://creativecommons.org/publicdomain/zero/1.0/)发布到公有领域。 这是对下方论文的AI生成解释。它不是由作者撰写或认可的。如需技术准确性,请参阅原始论文。 阅读完整免责声明

想象一下,你正在经营一家规模宏大、高速运转的面包店,机器人(AI 智能体)和人类都在努力烤制完美的蛋糕。但问题在于,你不仅要品尝蛋糕的味道,还要检查他们写的“食谱卡”来判断他们是否真的懂得烘焙。这正是这项研究所做的事情,只不过他们用的是计算机代码,而不是面粉和糖。他们查看了来自一个名为 AIDev 的巨大数字图书馆中的 20 多万张食谱卡,并将 179,732 张由 AI 机器人编写的食谱与 2,4941 张由人类烘焙师编写的食谱进行了对比。

这里有一个巨大的惊喜:机器人不仅仅是笨拙的模仿者;在某些方面,它们甚至比人类更擅长发现那些奇怪、棘手的配料,但它们却非常不擅长保持厨房整洁。

“奇怪配料”大赛(边缘情况)

你知道吗,有时候食谱会说“加入面粉”,但聪明的烘焙师知道还要测试一下如果加入“零”面粉,或者“负数”量的糖,或者“一整碗空无一物”的情况会发生什么?这些被称为“边缘情况”(edge cases)。

大多数人认为人类会做得更好,因为他们更有经验。但论文给出的结论恰恰相反。 AI 智能体就像是一个背下了“奇怪事物清单”并把它们全部扔进搅拌机的机器人。

  • 数据: 机器人测试“零”输入的频率为 27.7%,而人类仅为 11.2%
  • 多样性: 机器人的覆盖范围几乎是人类的两倍。它们的“多样性得分”为 0.62,而人类为 0.32
  • 陷阱: 论文指出,机器人的做法几乎是机械式的,只是列出了标准的奇怪数值。它们并不一定理解为什么这些数值很重要,它们只是知道要去检查它们。此外,两组在测试“负数”方面都不太擅长(对于负数数值边界,两者均为 0.0%),这是大家的共同盲点。

“严格裁判”大赛(断言强度)

现在,想象一下食谱卡最后需要一个“味觉测试”。一个弱测试会说:“蛋糕在那儿吗?”而一个强测试会说:“蛋糕是否正好 5 英寸高且是巧克力味的?”

  • 结果: 人类在编写这些严格、具体的测试方面略胜一筹。88.1% 的人类测试是“强”测试,而只有 85.4% 的机器人测试是。
  • 机器人故障: 机器人犯了很多“未知”错误。大约 11.6% 的机器人测试使用了标准库中不存在的奇怪、虚构的命令,而人类犯这种错误的概率仅为 1.5%。这就像机器人写了一份食谱,上面写着“加入一撮‘棉花糖甜甜圈’”,但没人知道那是什么。这使得人类以后很难阅读和信任这些食谱。

“混乱的厨房”问题(不稳定/Flakiness)

这是机器人真正栽跟头的地方。一个“不稳定”(flaky)的测试就像是一个蛋糕,前一分钟通过了味觉测试,下一分钟却失败了,尽管你并没有改变食谱。这通常是因为机器人没有清理它制造的混乱(比如留下一个打开的文件或使用随机数生成器)。

  • 判决: 机器人的表现要乱得多。论文发现,机器人生成的测试具有 0.41 的“不稳定候选率”,而人类的测试仅为 0.30
  • 原因: 机器人热衷于触碰“文件系统”(打开和关闭文件)以及使用“非确定性”的东西(比如随机数),却不进行后续清理。人类也会这样做,但频率较低。论文认为这是因为机器人缺乏“环境意识”——它们不知道自己处于一个繁忙的、共享的厨房中,需要小心翼翼,以免留下破坏下一个人的蛋糕的烂摊子。

总结

这篇论文驳斥了“AI 写出的代码比人类差”这种简单的观点。事情没那么简单。

  • 论文证明了: 机器人捕捉奇怪边缘情况(如零或空输入)的能力惊人地强,往往比疲惫的人类做得更好。
  • 论文暗示了: 然而,机器人缺乏编写稳定、整洁测试的“常识”,这些测试不会因为环境的变化而崩溃。它们擅长生成大量的测试想法,但需要人类介入,修复那些“未知”命令,并清理现场,以使测试变得可靠。

简而言之,AI 智能体就像是一个精力过剩的实习生,他会检查每一种可能的食材组合,却经常忘记洗碗;而人类虽然细心,但有时会漏掉那些奇怪的东西。最好的团队配置是:由一名人类监督员来引导机器人的能量。

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

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

试用 Digest →