← 最新论文
💻 computer science

Multi-Agent LLM Collaboration for Unit Test Generation via Human-Testing-Inspired Workflows

本文介绍了 TestAgent,这是一个通过专门的规划者、生成者和审查者智能体、动态工具调用以及测试专用知识图谱来模拟人类测试工作流的多智能体大语言模型框架,其在执行率、代码覆盖率和变异得分方面显著优于现有的自动化单元测试生成方法。

原作者: Quanjun Zhang, Ye Shang, Siqi Gu, Jianyi Zhou, Chunrong Fang, Zhenyu Chen, Liang Xiao

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

原作者: Quanjun Zhang, Ye Shang, Siqi Gu, Jianyi Zhou, Chunrong Fang, Zhenyu Chen, Liang Xiao

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

想象一下,你正在试图教一个超级聪明的机器人如何为一款新游戏关卡编写说明书。这个机器人非常出色,但如果你只是对它说“写一份说明书”,它可能会感到困惑、遗漏掉棘手的细节,或者写出一些根本无法运行的指令。这就是使用 AI 编写计算机测试(用于检查代码是否正常工作的微型程序)的旧方法所存在的问题。

开发 TESTAGENT 的研究人员意识到,与其给 AI 一个僵化的、单向的指令列表,不如让它更像是一个人类开发团队那样去行动。他们构建了一个“多智能体”(multi-agent)系统,这就像是一家微型的虚拟软件公司,拥有三个各司其职的员工协同工作:

  1. 规划者(The Planner): 这个智能体是侦探。在动笔之前,它会研究代码,以弄清楚程序究竟应该做什么以及可能在哪里出错。它会创建一个“测试需求”清单。
  2. 生成者(The Generator): 这是建造者。它根据规划者的清单来编写实际的测试代码。但最酷的部分在于:它并不只是写完就结束。它会运行测试,观察是否报错;如果报错了,它还会找出原因(是测试本身错了,还是代码真的有 Bug?)。
  3. 评审者(The Reviewer): 这是质量控制经理。它会查看完成的测试并询问:“这个好吗?我们漏掉了什么吗?代码可读性如何?”如果测试不完美,它会将测试发回给生成者,并提供具体的修改建议。

为什么旧方法失败了
论文指出,之前的 AI 方法就像是一个遵循错误食谱的机器人。它们使用“僵化的、程序化的工作流”,这意味着无论发生什么情况,它们都会遵循一套固定的步骤。如果 AI 卡住了或需要更多信息,旧系统无法进行调整。它们获取“上下文”(周围的代码)的方式也过于笨拙——就像为了找一个单词而去阅读整部百科全书,或者因为只看了一个句子而错过了关键线索。作者明确指出,这些基于规则的僵化方法在捕捉真实 Bug 或创建人类可理解的测试方面表现不佳。

秘密武器:知识图谱
为了解决“上下文笨拙”的问题,TESTAGENT 构建了一个知识图谱(Knowledge Graph)。你可以把它想象成一张庞大的、交互式的整个软件项目的地图。AI 智能体不再仅仅是阅读文本,它们可以在不同代码部分之间的连接(例如一个函数如何调用另一个函数)中“行走”。这张地图还会记住团队在过程中学到的所有东西,比如测试报告和 Bug 分析,这样它们就不必每次都从头开始。

结果:效果如何?
团队在六个不同的 Java 项目上测试了这个系统,甚至还尝试将其应用于 Python 项目。结果令人印象深刻:

  • 运行测试: 它生成的测试成功运行的概率高达 97.46%
  • 覆盖率: 它成功检查了 92.34% 的代码行和 90.24% 的决策分支(即“如果……那么……”的逻辑)。
  • 发现 Bug: 这是最关键的一点。该系统发现了 83.69% 的人工“变异”Bug(研究人员为了测试系统而注入的 Bug)。这比排名第二的工具高得多,后者仅能发现约 43.59%
  • 现实世界的 Bug: 当他们使用它在现有代码中寻找真实的 Bug 时,它成功识别了 154 个现实世界的 Bug,且精确度达到 92.22%

它能兼容不同的“大脑”吗?
研究人员想知道,即使更换了“大脑”(底层 AI 模型),这种团队协作模式是否依然有效。他们尝试了 GPT-4oDeepSeek-V3 以及一个名为 Qwen3-30B-A3B 的开源模型。

  • 该系统在所有模型上都能正常工作。即使是那个可以本地免费运行的开源模型,其表现也优于最好的基于搜索的工具,尽管它还不及顶尖的 GPT-4o。
  • 论文表明,起作用的是“团队协作”的结构,而不仅仅是 AI 本身的原始能力。

它只适用于 Java 吗?
论文明确提到,他们也在 Python 项目上进行了测试。它实现了 88.85% 的行覆盖率和 78.89% 的分支覆盖率,击败了专门为 Python 设计的其他工具。这表明该方法具有灵活性,不仅仅是 Java 的特技。

人类的触感
最后,团队邀请了真正的软件开发人员来查看这些测试。他们发现,与其它工具相比,TESTAGENT 编写的测试更容易阅读和理解。开发人员很喜欢那些清晰的命名、逻辑严密的布局,以及测试内容确实符合逻辑的特点。

底线
论文总结道,通过模仿人类的实际工作方式——规划、构建、评审并使用工具来导航复杂的代码——我们可以构建出编写更好、更可靠测试的 AI。这不仅仅是关于生成代码,更是关于生成“有用的”代码,从而在问题造成麻烦之前将其拦截。作者基于他们在多个语言和工业项目上的广泛实验,对这些结果充满信心,展示了这种“受人类启发”的团队协作是软件测试领域一条极具前景的路径。

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

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

试用 Digest →