摘要

1) 一句话总结 在与编程智能体(Coding Agents)合作时,自动化测试是必不可少的环节,通过在会话初始使用“首先运行测试”这一简短提示词,可以有效引导智能体理解代码库、验证生成代码并建立测试思维。

2) 关键点

  • 测试不可或缺:在与编程智能体合作时,自动化测试不再是可有可无的选项。
  • 时间成本降低:智能体能在几分钟内完成测试编写,过去“编写和重写测试太耗时”的借口已不再成立。
  • 辅助理解代码:测试是帮助智能体(如 Claude Code)快速熟悉和理解现有代码库的绝佳工具。
  • 最佳实践提示词:建议在与智能体开启新会话时,使用“首先运行测试”(First run the tests)或类似简短提示词作为开局。
  • 强制运行验证:该提示词能迫使智能体弄清如何运行测试,从而确保其在未来修改代码时会通过运行测试来防止破坏现有功能。
  • 提供项目上下文:测试框架反馈的测试数量可以作为项目规模和复杂度的参考指标,引导智能体主动搜索测试以获取更多信息。
  • 建立测试思维:该提示词能让智能体进入“测试思维”,促使其在后续开发中自然而然地编写新测试来扩展测试套件。

3) 风险/不足

  • 未经测试的部署风险:如果 AI 生成的代码从未被执行(测试)过,那么它在部署到生产环境时能否正常运行将纯属运气。

正文

Simon Willison 的博客

指南 > 智能体工程模式

首先运行测试

在与编程智能体(coding agents)合作时,自动化测试不再是可有可无的选项。

过去不写测试的借口——比如耗时,以及在代码库快速演进时不断重写测试的成本太高——在智能体只需几分钟就能将它们整理就绪的情况下,已经不再成立了。

它们对于确保 AI 生成的代码实现其声称的功能也至关重要。如果代码从未被执行过,那么它在部署到生产环境时能正常运行就纯属运气了。

测试也是帮助智能体快速熟悉现有代码库的绝佳工具。观察一下当你向 Claude Code 或类似工具询问现有功能时会发生什么——它们很有可能会去查找并阅读相关的测试。

智能体本身就已经倾向于测试,而现有测试套件的存在,几乎肯定会促使智能体去测试它所做的新更改。

每次我在现有项目中与智能体开启新会话时,我都会以以下提示词的变体作为开头:

对于我的 Python 项目,我配置了 pyproject.toml,因此我可以改用以下提示词:

这些由四个单词组成的提示词有以下几个作用:

  • 它告诉智能体存在一个测试套件,并迫使它弄清楚如何运行这些测试。这几乎可以确保智能体在未来会运行测试,以保证它没有破坏任何东西。

  • 大多数测试框架会给智能体一个关于测试数量的粗略指示。这可以作为项目规模和复杂程度的参考指标,同时也暗示智能体如果想了解更多信息,就应该自己去搜索这些测试。

  • 它让智能体进入一种测试思维。在运行了测试之后,它在后续自然而然地会用自己的测试来扩展它们。

与“使用红/绿 TDD(Use red/green TDD)”类似,“首先运行测试(First run the tests)”提供了一个由四个单词组成的提示词,其中包含了大量已经内置于模型中的软件工程规范。

这是《智能体工程模式》指南中的一个章节。

本指南的章节

  • 现在编写代码的成本很低

  • 测试与 QA 红/绿 TDD 首先运行测试

  • 红/绿 TDD

  • 首先运行测试

上一篇:红/绿 TDD

  • 披露声明

  • 版权页

  • ©

  • 2002

  • 2003

  • 2004

  • 2005

  • 2006

  • 2007

  • 2008

  • 2009

  • 2010

  • 2011

  • 2012

  • 2013

  • 2014

  • 2015

  • 2016

  • 2017

  • 2018

  • 2019

  • 2020

  • 2021

  • 2022

  • 2023

  • 2024

  • 2025

  • 2026

关联主题