测试驱动开发工作流
用可执行的测试先证明需求,再以最小改动实现、重构并验证行为。
技能明确要求将浏览器内容视为不可信数据,禁止访问 cookies、localStorage token 和凭据,也限制从页面内容导航;但对一般代码修改没有用户确认、权限最小化、外部副作用、依赖安全或回滚要求,因此扣分。
Red-Green-Refactor、测试分类、隔离、反模式和验证清单形成了较完整的指导,异常测试失败也有一定反馈;但依赖环境、测试框架、通用的 npm test 命令以及引用的外部参考文件未在选定材料中得到复现,静态评估不超过10分,故扣分。
触发条件、非适用范围、浏览器场景和测试决策树较清晰,适合逻辑、缺陷和行为变更;但未说明中文支持、不同技术栈的适配边界、工具不可用时的替代路径,且浏览器流程依赖 Chrome DevTools MCP,故扣分。
文档结构清晰,包含概览、触发条件、流程、示例、反模式、红旗和验证清单;仓库提供 MIT 许可证和安装说明,但选定技能缺少自身版本、变更记录、维护责任和更新路径,外部引用文件也未在材料中展开,故扣分。
技能能直接指导测试先行、缺陷复现和回归验证,核心输出是可操作的测试与实现流程;但没有该技能关键路径的真实产出或执行结果,且固定测试比例、Beyonce Rule 等建议对不同项目的边际收益证据有限,按静态上限取7分并扣除不确定性。
仓库有真实 CI 工作流、技能验证脚本和评估运行步骤,提供了一定可审计性;但所给测试 fixture 与该技能无直接覆盖关系,没有选定技能的专门测试或第三方执行证据,且未执行任何验证,故为静态上限5分。
- 通用验证命令 npm test 未绑定具体项目或测试框架,代理可能无法直接运行。
- Chrome DevTools MCP、browser-testing-with-devtools 和 references/testing-patterns.md 被引用但未提供,相关流程的可达性和完整性需安装后确认。
- 未规定代码修改前后的用户确认、外部副作用披露、依赖审计和回滚方案。
- 固定的80/15/5测试金字塔比例不一定适用于所有代码库。
这个 Skill 能做什么,适合哪些场景?
这是 agent-skills 仓库中的测试驱动开发技能,面向实现逻辑、修复缺陷和修改行为的场景。它要求先编写会失败的测试,再写出使测试通过的最小实现,最后在测试保持通过的前提下重构。技能覆盖单元、集成和端到端测试的分层策略,也规定了状态断言、测试隔离、描述性命名和谨慎使用 mock 等实践。浏览器相关改动还应结合 Chrome DevTools MCP 做运行时验证。
指导代理在修改行为前编写失败测试;为缺陷先创建复现测试;按纯逻辑、边界交互和关键用户流程选择单元、集成或端到端测试;使用 Arrange-Act-Assert、状态断言、DAMP 测试和描述性测试名称;优先使用真实实现,其次使用 fake、stub,谨慎使用 mock;在重构后运行测试;实现完成后运行 npm test,并检查新行为测试、缺陷回归测试、跳过测试和覆盖率变化;浏览器场景中通过 Chrome DevTools MCP 检查控制台、网络、DOM、样式、性能和截图。
- 开发者实现新的业务逻辑或行为,需要先建立可验证的预期。
- 开发者收到缺陷报告,需要先确认问题真实存在并防止回归。
- 团队修改已有功能或增加边界条件,需要保持原有行为不被破坏。
- 前端开发者修改浏览器中的界面或交互,需要同时验证测试结果和运行时表现。
- 维护者重构已有实现,希望在不改变行为的情况下改善结构。
这个 Skill 有哪些优点和局限?
- 明确的 Red-Green-Refactor 流程和完成检查项。
- 包含缺陷复现测试、测试金字塔和测试资源分级。
- 强调测试行为而非实现细节,并提供 mock 使用边界。
- 覆盖浏览器运行时验证以及安全边界提醒。
- 要求项目具备可运行的测试环境,但未提供特定测试框架的配置。
- README 中的 npm test 是通用验证命令,技能没有说明其适用项目的具体脚本配置。
- 浏览器验证依赖 Chrome DevTools MCP;该能力不是所有客户端默认具备。
- 来源材料没有展示该技能在具体代码库或平台上的实际测试结果。
如何安装这个 Skill?
仓库 README 提供了使用 skills CLI 安装单个技能的命令:npx skills add addyosmani/agent-skills --skill test-driven-development。也可以先用 npx skills add addyosmani/agent-skills --list 浏览技能。该仓库还提供面向 Claude Code、Codex、Cursor、Antigravity CLI、Gemini CLI、Windsurf、OpenCode、GitHub Copilot 和 Kiro 的安装说明;本技能的单独安装细节未分别展开。
如何使用这个 Skill?
在实现逻辑、修复 bug、修改既有行为或增加边界处理前,要求代理应用 test-driven-development 工作流,例如:“请使用测试驱动开发:先写一个会失败的测试,再实现最小修复,最后重构并运行测试。” 对浏览器改动,按“复现、检查、诊断、修复、验证”流程,并结合 Chrome DevTools MCP。纯配置、文档或不影响行为的静态内容变更不适用。
这个 Skill 与同类方案有什么区别?
README 将 Superpowers 和 Matt Pocock's skills 列为比较对象,并链接到比较文档;提供的来源材料未包含该文档的具体结论,因此无法据此做功能优劣判断。