Skip to content

红/绿 TDD

“使用红/绿 TDD”是一种令人愉快的简洁方式,可以从编码 agent 获得更好的结果。

TDD 代表测试驱动开发。这是一种编程风格,你确保编写的每一段代码都附有自动化测试,证明代码有效。

TDD 最严格的形式是测试优先开发。你先编写自动化测试,确认它们失败,然后迭代实现直到测试通过。

事实证明,这非常适合编码 agent。编码 agent 的一个重大风险是,它们可能会编写不起作用的代码,或者构建不必要且永远不会使用的代码,或者两者兼而有之。

测试优先开发有助于防止这两种常见错误,并确保一个强大的自动化测试套件,防止未来的回归。随着项目的增长,新更改可能破坏现有功能的机会也随之增长。全面的测试套件是保持这些功能工作的最有效方法。

在实现代码使其通过之前,确认测试失败很重要。如果你跳过这一步,你有风险构建一个已经通过的测试,因此无法练习和确认你的新实现。

这就是”红/绿”的含义:红色阶段观察测试失败,然后绿色阶段确认它们现在通过。

每个好模型都理解”红/绿 TDD”是更长的”使用测试驱动开发,先编写测试,在实现使其通过的更改之前确认测试失败”的简写。

示例提示:

Build a Python function to extract headers from a markdown string. Use red/green TDD.

(构建一个 Python 函数来从 markdown 字符串中提取标题。使用红/绿 TDD。)


原文链接: https://simonwillison.net/guides/agentic-engineering-patterns/red-green-tdd/