Microsoft开源多语言单元测试代理实现92%任务完成率 超越GitHub Copilot

3 阅读4分钟开源

背景与发布

2026年8月,微软在其 dotnet/skills 仓库中以 MIT 许可证正式开源 code-testing-generator,这是一款面向多语言单元测试的智能代理。该工具随 dotnet-test 插件一起发布,旨在填补传统代码助手在测试生成环节的空白。

核心技术

  • 仓库感知:在生成代码前,代理会自动扫描整个仓库,识别目标语言、测试框架以及已有的测试约定,甚至解析真实的构建与测试命令。
  • RPI 流程(Research‑Plan‑Implement):先进行代码搜索与需求分析(Research),随后制定生成计划(Plan),最后实现、运行并验证测试(Implement)。
  • 三种生成策略
    1. 直接写入:一次性生成并验证测试。
    2. 单轮:生成后立即执行一次完整的 CI 检查。
    3. 迭代:针对大规模代码库或覆盖率目标,循环生成直至满足要求。
  • 验证门槛:在报告完成前,代理会执行五项检查,包括轻量级变异测试、断言完整性、场景映射、全套构建运行以及确保新测试被原有测试命令发现。

基准表现

微软内部构建的 152 项真实仓库任务基准显示,code-testing-generator 完成 140 项任务,完成率 92.1%,而在相同模型与提示下的 GitHub Copilot 仅完成 120 项,完成率 78.9%。关键数据如下:

  • 模糊提示(89 条):完成 79 项(88.8%) vs 59 项(66.3%)。
  • 细化提示(63 条):两者均完成 61 项(96.8%)。
  • 针对 diff 的任务(15 条):code-testing-generator 全部通过,Copilot 零通过。
  • 生成测试数量略低 2.3%(6,963 vs 7,129),但代码覆盖率持平(72.4% vs 72.2%)。
  • 平均耗时 359 秒 vs 380 秒,Token 使用仅提升 3.2%。

在 .NET 子集任务(45 项)以及更高难度的 SWE Atlas 基准(44 项)上,代理同样保持领先。

应用场景

  • 快速补齐缺失测试:对未覆盖的模块一键生成单元测试。
  • Pull‑Request 差分测试:在代码审查时自动为变更生成对应测试。
  • 提升发布门槛:在 CI 中加入自动生成的测试,提升覆盖率。
  • 跨语言单体仓库:统一不同语言、框架的测试规范,降低团队维护成本。
  • 受监管行业:金融、医疗、保险等对代码审计要求高的领域,可通过本地化运行确保代码不外泄。

市场影响与展望

该项目的开源属性使得任何规模的团队都能在本地部署,避免将代码上传至云端服务,符合合规要求。随着企业对测试债务的关注日益增强,类似的 AI‑Agent 将成为提升软件质量、缩短交付周期的关键工具。后续可期待社区进一步扩展语言支持、集成更多 CI 平台以及与大型模型(如 Claude 3、GPT‑5)深度协同。

“代码自动化测试的下一步,是让 AI 真正理解项目结构,而不是盲目生成。” —— 微软 .NET 团队技术博客

本文是对第三方新闻源的主观解读。消息可能出现过时、不准确、歧义或错误的地方,仅供参考使用。点击此处查看消息源。