← 最新论文
💻 computer science

Testing with AI Agents: An Empirical Study of Test Generation Frequency, Quality, and Coverage

该研究基于 AIDev 数据集对 2,232 个真实世界提交进行实证分析,发现 AI 代理贡献了 16.4% 的测试相关提交,其生成的测试代码具有更长、断言更密集但逻辑更线性的结构特征,且能达到与人工编写测试相当的代码覆盖率。

原作者: Suzuka Yoshimoto, Shun Fujita, Kosei Horikawa, Daniel Feitosa, Yutaro Kashiwa, Hajimu Iida

发布于 2026-03-17
📖 1 分钟阅读☕ 轻松阅读

原作者: Suzuka Yoshimoto, Shun Fujita, Kosei Horikawa, Daniel Feitosa, Yutaro Kashiwa, Hajimu Iida

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

这篇论文就像是在调查一位**“超级实习生”**(AI 智能体)在软件公司里的真实表现。

以前,程序员写代码时,如果让 AI 帮忙,通常只是让 AI 写一段话(Prompt),然后程序员自己把生成的代码复制粘贴进去。但现在,出现了一种更聪明的**"AI 智能体”**。它们不仅能写代码,还能像真正的员工一样,自己打开项目文件夹,自己运行测试,发现错了就自己修改,直到通过为止。

这篇研究就是想知道:这位“超级实习生”到底干了多少活?它写的“测试代码”质量怎么样?能不能真的帮公司把关?

研究人员收集了 2232 个真实的代码修改记录,从三个角度进行了“体检”:

1. 它干了多少活?(频率)

比喻:它是“主力军”还是“打杂的”?

  • 发现: 在真实的开源项目里,大约 16.4% 的测试代码是由这位 AI 实习生写的。
  • 有趣的现象:
    • 在小团队里(比如只有几个人的初创项目): AI 简直是**“全能王”**。在某些小项目里,它甚至包办了 100% 的测试工作,就像一个小公司里,老板和 AI 合伙,AI 负责所有质检。
    • 在大公司里(比如几百人的大项目): AI 就变成了**“得力助手”**。它依然很活跃,但只占测试工作的 1% 到 15% 左右。在大厂里,人类员工依然是主力,AI 更多是帮忙打杂、填补空缺。

2. 它写的代码长什么样?(质量与风格)

比喻:它是“啰嗦的侦探”还是“精干的特种兵”?

研究人员把 AI 写的测试代码和人类写的代码放在一起对比,发现了三个显著特点:

  • 代码更长,但更“稳”:
    • AI 写的测试代码通常比人类写的稍微长一点点
    • 比喻: 人类写的代码偶尔会像“失控的长篇小说”,有时候会写出几百行甚至上千行的复杂测试(那是“长尾”)。但 AI 写的代码长度非常均匀,它不会写出那种让人头大的“巨无霸”代码,风格很统一。
  • 检查点更多(断言更多):
    • AI 喜欢在一个测试里塞进很多个检查点(比如“检查 A 对不对,再检查 B 对不对,再检查 C 对不对”)。
    • 比喻: 人类通常遵循“一次只查一件事”的原则(像警察一次只问一个问题)。而 AI 像是一个**“啰嗦的侦探”**,在一个房间里把每个角落都翻了一遍。虽然这看起来很 thorough(彻底),但如果出错了,很难知道到底是哪个检查点没通过,这可能会给后续维护带来麻烦。
  • 逻辑更简单(复杂度低):
    • 尽管 AI 写的代码更长、检查点更多,但它的逻辑结构反而更简单
    • 比喻: 人类写的测试有时会像“迷宫”,有很多复杂的分支和跳转(如果 A 发生,且 B 没发生,则去 C...)。而 AI 写的测试更像是一条**“笔直的高速公路”**,逻辑直来直去,很少绕弯子。这让代码更容易理解,不容易出错。

3. 它真的能帮上忙吗?(覆盖率)

比喻:它能发现多少“漏网之鱼”?

测试代码的最终目的是覆盖更多的代码,防止 Bug 溜走。

  • 发现: 在几个可以实际运行的项目中,AI 写的测试代码确实提高了代码覆盖率
  • 表现: 在某些项目里,AI 带来的覆盖率提升甚至比人类写的还要好。它就像是一个不知疲倦的**“扫雷工兵”**,能有效地把那些人类容易忽略的角落都检查一遍。
  • 结论: AI 不仅能写代码,写的测试代码还能实实在在地提升软件质量,其效果不输给人类,甚至在某些方面更强。

总结:这位“超级实习生”靠谱吗?

结论是:非常靠谱,但需要人类“导师”引导。

  • 优点: 它工作勤奋(贡献了 16% 的测试),逻辑清晰(不写复杂迷宫),检查细致(断言多),且能切实提升软件的安全性。
  • 缺点: 它有点“啰嗦”(一次检查太多点),且在小团队里可能太依赖它,而在大团队里又显得有点“打杂”。
  • 未来建议: 虽然它现在表现不错,但未来的研究需要看看它写的这些“啰嗦”代码,长期来看会不会给维护带来麻烦(比如是不是为了检查而检查,反而增加了代码的“技术债务”)。

一句话概括: AI 智能体已经不再是只会“说大话”的玩具,它已经成长为软件团队中一位逻辑清晰、工作勤奋、能独当一面的优秀测试员,只是偶尔需要人类导师帮它把“啰嗦”的毛病改一改。

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

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

试用 Digest →