译文:红绿 TDD (Red/Green TDD)
红绿 TDD (Red/Green TDD)
来源: Simon Willison’s Weblog
日期: 2026-02-23T07:12:28+00:00
指南 > 智能体工程模式 (Agentic Engineering Patterns)
红绿 TDD
“使用红绿 TDD”是一种能够让编程智能体(coding agent)产生更好结果的简洁且有效的方法。
TDD 代表测试驱动开发(Test Driven Development)。这是一种编程风格,在这种风格下,你确保编写的每一段代码都配有自动测试,以证明该代码能够正常工作。
TDD 最严格的形式是测试先行开发(test-first development)。你先编写自动化测试,确认它们失败,然后对实现代码进行迭代,直到测试通过。
事实证明,这非常适合编程智能体。编程智能体的一个重大风险是它们可能会编写无法运行的代码,或者构建不必要且从未被使用的代码,或者两者兼而有之。
测试先行开发有助于防止这两种常见错误,并确保拥有一套鲁棒的自动化测试套件,以防止未来的回归(regressions)。随着项目的增长,新的更改破坏现有功能的风险也随之增加。一个全面的测试套件是保持这些功能正常运行的最有效方式。
在编写实现代码使测试通过之前,确认测试失败是非常重要的。如果跳过这一步,你可能会构建一个已经通过的测试,从而无法验证你的新实现。
这就是“红绿”的含义:红色阶段观察测试失败,然后绿色阶段确认它们现在已经通过。
每一个优秀的模型都理解“红绿 TDD”是这一长串指令的缩写:“使用测试驱动开发,先编写测试,在实现更改以使其通过之前,确认测试确实失败”。
提示词示例:
编写一个 Python 函数,从 markdown 字符串中提取标题。使用红绿 TDD。
这是我从 Claude 和 ChatGPT 那里得到的结果。通常我会使用像 Claude Code 或 OpenAI Codex 这样的编程智能体,但这个例子足够简单,Claude 和 ChatGPT 都可以使用它们默认的代码环境来实现它。
我确实需要在 ChatGPT 的提示词中添加“使用你的代码环境”,否则它只会编写代码而不会实际执行它。