摘要
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