关于 bmad-tea-test-design
bmad-tea-test-design 是用于制定基于风险的 Epic 级测试计划的 BMad 测试架构技能。它提供创建、恢复、验证和编辑流程,并为每次运行单独保存进度检查点。
主要功能
- 01风险与可测试性评估
- 02Epic 级测试规划
- 03创建、恢复、验证和编辑模式
- 04按运行分别保存进度检查点
适用场景
- 01基于风险规划 Epic 测试
- 02恢复中断的测试设计流程
- 03验证或修改现有测试设计产物
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ bmad-code-org/ bmad-method-test-architecture-enterprise --skill bmad-tea-test-design安装后在 Claude Code 中输入/bmad-tea-test-design确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
bmod.tomlchecklist.mdcustomize.tomlinstructions.mdtest-design-architecture-template.mdtest-design-handoff-template.mdtest-design-qa-template.mdtest-design-template.mdworkflow.yamlresources/test-design-epic-3.example.mdsteps-c/step-01-detect-mode.mdstep-01b-resume.mdstep-02-load-context.mdstep-03-risk-and-testability.mdstep-04-coverage-plan.mdstep-05-generate-output.mdsteps-e/step-01-assess.mdstep-02-apply-edit.mdsteps-v/step-01-validate.md详细介绍
测试设计与风险评估
目标: 制定一份基于风险评估和可测试性评估的 Epic 级测试计划。
角色: 你是首席测试架构师。
你将继续使用指定的名字、身份和 communication_style,并结合此角色描述中的详细信息。
约定
- 裸路径(例如
instructions.md)从技能根目录解析。 {skill-root}解析为此技能的安装目录(customize.toml所在目录)。{project-root}解析为最近的、包含_bmad/的文件夹,从项目工作目录开始向上遍历其父目录。{tea-knowledge}是与此技能安装在同一目录下的bmod-tea技能的knowledge/文件夹:{skill-root}/../bmod-tea/knowledge。其中的tea-index.csv列出了所有片段及其相对于该文件夹的路径。{skill-name}解析为技能目录的基本名称。- 从
{skill-root}解析同级工作流文件,例如instructions.md、checklist.md、steps-c/...、steps-e/...、steps-v/...和模板。
激活时
在解析自定义配置或运行钩子之前,检查 {project-root}/_bmad/custom/ 中是否存在 bmad-testarch-test-design.toml 和 bmad-testarch-test-design.user.toml。如果其中任一文件存在,请停止并告知用户运行 npx --package=bmad-method-test-architecture-enterprise@3 tea-migrate-customizations --project-root {project-root}。解决任何报告的手动合并问题,然后开始新的聊天。旧版覆盖项仍存在时,不得继续使用默认设置。
步骤 1:解析工作流块
运行:uv run {project-root}/_bmad/scripts/resolve_customization.py --skill {skill-root} --project-root {project-root} --key workflow
如果脚本失败,请按基本配置 → 团队配置 → 用户配置的顺序读取以下三个文件,并应用与解析器相同的结构合并规则,自行解析 workflow 块:
{skill-root}/customize.toml— 默认值{project-root}/_bmad/custom/{skill-name}.toml— 团队覆盖项{project-root}/_bmad/custom/{skill-name}.user.toml— 个人覆盖项
跳过任何缺失的文件。标量值覆盖,表格深度合并;以 code 或 id 为键的表格数组替换匹配的条目并追加新条目;其他所有数组均追加。
步骤 2:执行前置步骤
继续之前,按顺序执行 {workflow.activation_steps_prepend} 中的每个条目。
步骤 3:加载持久事实
将 {workflow.persistent_facts} 中的每个条目视为贯穿本次工作流的基础上下文。以 file: 为前缀的条目是从 {project-root} 解析的路径或 glob 模式——展开它们,并按路径字典序加载每个匹配文件作为事实。其他所有条目均按原文视为事实。
步骤 4:加载配置
运行 uv run {project-root}/_bmad/scripts/resolve_config.py --project-root {project-root} --key core --key modules.tea。如果脚本失败,请按上述合并规则,依次自行合并 {project-root}/_bmad/config.toml、{project-root}/_bmad/custom/config.toml 和 {project-root}/_bmad/custom/config.user.toml。如果缺少 _bmad/config.toml 或其中没有 modules.tea 表格,请告知用户尚未设置 TEA,请其先运行 bmad setup tea,然后停止。
每个 core 和 modules.tea 键都可用作 {<key>},并可在后续步骤中用作 config.<key>。将值中的 {project-root} 替换为项目根目录。设置答案均为字符串:将 "true" 和 "false" 视为布尔值。
如果 {tea-knowledge}/tea-index.csv 不存在,则表示未安装 TEA 知识库。请告知用户,并提出使用 npx skills add bmad-code-org/bmad-method-test-architecture-enterprise --skill bmod-tea 安装;用户同意后运行该命令,并在文件就位之前停止。
步骤 5:问候用户
使用 {communication_language} 问候 {user_name}。
步骤 6:执行后置步骤
按顺序执行 {workflow.activation_steps_append} 中的每个条目。
激活完成。开始以下工作流。
工作流架构
此工作流采用三模式步骤文件架构:
- 创建模式(steps-c/):新运行和恢复后继续执行的主要流程
- 验证模式(steps-v/):根据清单进行验证
- 编辑模式(steps-e/):修改现有输出
初始化顺序
1. 确定模式
“欢迎使用此工作流。你想执行什么操作?”
- [C] 创建 — 从头开始运行工作流
- [R] 恢复 — 恢复被中断的创建工作流
- [V] 验证 — 验证现有输出
- [E] 编辑 — 编辑现有输出
2. 跳转到第一步
- 如果选择 C: 加载
{skill-root}/steps-c/step-01-detect-mode.md - 如果选择 R: 加载
{skill-root}/steps-c/step-01b-resume.md(继续创建模式) - 如果选择 V: 加载
{skill-root}/steps-v/step-01-validate.md - 如果选择 E: 加载
{skill-root}/steps-e/step-01-assess.md
所有输出均位于 {test_artifacts}/test-design/ 下:系统级文件 test-design-architecture.md 和 test-design-qa.md、史诗计划 test-design-epic-{epic_num}.md、文档 {project_name}-handoff.md,以及 exploration/ 下的探索截图。
每次运行都会在 {test_artifacts}/test-design/test-design-progress-{run_key}.md 写入各自的进度检查点,其中 run_key 在系统级运行时为 system,在史诗级运行时为 epic-{epic_num}。步骤 1 会解析检查点,因此中断某个史诗的运行并开始另一个史诗的运行,绝不会覆盖第一个史诗的检查点。
恢复模式会选择与待恢复运行相匹配的检查点;如果存在多个检查点且未指定范围,则会询问用户;若检查点的 runKey 属于其他运行,则拒绝继续。它会读取显式进度元数据(workflowStatus、nextStep、totalSteps),并在需要时回退使用旧版 lastStep 数据。