← 最新论文
💻 computer science

Are Coding Agents Generating Over-Mocked Tests? An Empirical Study

这项针对超过 120 万次提交的实证研究表明,编程智能体比非智能体更倾向于生成测试,并且显著地存在过度模拟(over-mock)测试的问题,这引发了对测试可维护性和有效性的担忧,同时也凸显了对更好智能体配置指导的需求。

原作者: Andre Hora, Romain Robbes

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

原作者: Andre Hora, Romain Robbes

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

想象一下,你雇佣了一支超级快速、超级聪明的机器人助手团队(称为“编程智能体”,Coding Agents)来帮你盖房子。这些机器人不仅仅是搬砖;它们还能编写说明书、检查水管,甚至还能编写安全检查报告(在软件领域,这些被称为“测试”)。

这篇论文就像是一份侦探报告,它深入调查了 2,168 个不同的数字建筑工地,看看这些机器人实际的工作表现究竟如何。具体来说,研究人员想要知道:这些机器人是否写了太多的“虚假”安全检查?

以下是他们发现的研究结果,使用了简单的类比:

1. “过度保护型”机器人

在软件测试中,“Mock”(模拟)就像是电影中的一个替身演员。如果你正在拍摄一场角色与银行经理交谈的戏份,但手头没有真实的银行经理可用,你可能会找一个穿着西装的朋友,让他只说预先写好的台词。这就是一个“Mock”。它让拍摄变得更容易(测试更快、更容易编写),但它并不能证明真实的银行经理是否真的会那样表现。

研究发现,机器人助手痴迷于使用这些替身演员

  • 数据统计: 当人类开发者编写测试时,他们大约有 26% 的时间会使用“替身演员”。而当机器人编写测试时,他们使用“替身演员”的比例达到了 36%
  • 类比: 这就像是机器人太害怕真实世界(真实的数据库、真实的互联网连接)了,以至于他们更喜欢在整个剧本中都使用纸板剪影,而不是真人。他们这样做比人类更频繁。

2. 机器人热爱编写安全检查

研究人员还检查了机器人编写安全检查报告(测试)的频率。

  • 数据统计: 机器人所做的工作中,约有 23% 涉及编写或修改测试。而人类做这类工作的比例仅为 13%
  • 类比: 机器人不仅仅是在铺砖;它们还在积极地编写规则手册。事实上,在全新的建筑工地(2025 年创建的仓库)中,机器人负责编写 17% 的所有安全检查,这个数字正在快速增长。

3. “一刀切”的工具

论文研究了机器人使用的是哪种类型的替身演员。存在不同类型的“测试替身”(Test Doubles):有些只是静止不动(Dummy/哑模型),有些假装成真实的(Stub/存根),有些则负责观察发生的情况(Spy/间谍)。

  • 发现: 人类会使用多种工具。他们可能在这里用一个“间谍”,在那里用一个“假对象”。
  • 机器人的习惯: 机器人在多样性方面很懒。它们使用 “Mock” 工具的比例高达 95%
  • 类比: 想象一下你的工具箱。人类拥有锤子、螺丝刀、扳手和锯子。而机器人出现时,只带着一把巨大的锤子,并试图用它来做所有事情,即使在需要螺丝刀的时候也是如此。它们几乎完全依赖一种特定类型的假对象。

4. “过于虚假”的危险

为什么这很重要?论文警告说,虽然使用过多的“替身演员”可以让机器人更快地编写测试,但这可能会让测试的实用性降低

  • 风险: 如果你只用纸板剪影来测试你的房子,你可能会认为水管系统非常完美。但当你打开真正的水龙头时,水管可能会爆裂,因为纸板无法像真实的金属那样做出反应。
  • 结论: 机器人生成的测试易于创建,但由于过于脱离现实,可能无法捕捉到真实的问题。

我们应该怎么做?

作者建议,既然这些机器人如此热衷于使用“虚假”演员,我们就需要给它们更好的指令。

  • 解决方法: 就像你会告诉人类学徒,“不要用假水管来接主水线”一样,我们需要在机器人的指令手册(配置文件)中编写具体的规则。我们需要告诉它们:“尽可能使用真实的对象,只有在绝对必要时才使用假对象。”

简而言之: 机器人工作很努力,也编写了大量的安全测试,但它们过于热衷于使用现实的“虚假”版本,这可能会降低其安全检查的可靠性。我们需要教它们如何融入更多真实世界的场景。

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

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

试用 Digest →