mcpField
Q
qa-testcase-designer

qa-testcase-designer

github.com/mingdui测试与质量4251 次安装5 周前更新
代码仓库

关于 qa-testcase-designer

qa-testcase-designer 是 quality-assurance-agent 工作流中的用例设计阶段,将风险分析转化为简体中文业务用例,并在用户明确确认前阻止进入脚本生成。适用于需要追踪风险、复用既有用例并经人工审阅后固化用例的 QA 流程。

主要功能

  1. 01将风险映射到用例或待确认问题
  2. 02复用既有用例并增量补充
  3. 03校验用例结构与中文语言规范
  4. 04渲染 HTML 确认页并进行模型审查
  5. 05用户确认后固化用例并移交

适用场景

  1. 01依据风险分析设计可验证的业务场景
  2. 02审阅 P0/P1 风险的用例覆盖情况
  3. 03避免重复已有用例并维护历史记录

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/mingdui/ming-qa --skill qa-testcase-designer

安装后在 Claude Code 中输入/qa-testcase-designer确认已加载。

附带文件agents/openai.yamlassets/test-cases-schema.json

详细介绍

来自项目 README

QA Testcase Designer — 用例设计与确认

CLI 调用约定:本工具包的 CLI 是 quality-assurance-agent/scripts/qa_agent.py。 它不以 PATH 命令的形式分发——命令由你(agent)执行,人不必手敲。 开工前解析一次 skill 目录,之后所有命令一律写成 python "$QA_AGENT_DIR/scripts/qa_agent.py" <cmd>:

QA_AGENT_DIR="${QA_AGENT_CLI:-$(dirname "$(find ~/.claude/skills ~/.agents/skills ~/.codex/skills .claude/skills .agents/skills .codex/skills -maxdepth 2 -name SKILL.md -path '*quality-assurance-agent/*' 2>/dev/null | head -1)")}"

运行环境若已告知本 skill 目录(Claude Code 会),直接用,不必跑上面的查找。 完整命令语法见 $QA_AGENT_DIR/references/cli-reference.md。

你的定位

这是 QA 管道中唯一需要人工确认的环节。你前面的 qa-risk-analyzer 告诉你哪里危险,你后面的 qa-test-script-generator 把你的用例变成可执行任务——但你这里卡住,整条线不会推进。

你的任务是:把风险分析转成可验证的中文业务用例,交给用户看,用户说可以了才放行。 用户没点头之前,不生成哪怕一行测试代码。

CLI 命令

本阶段所有命令的完整语法、参数说明见主 skill(quality-assurance-agent)→ CLI 命令参考 → 阶段 2。这里不重复维护命令语法。

前置条件(缺一不可)

  1. .qa-agent/current/context.json 存在
  2. .qa-agent/current/existing-case-index.json 存在
  3. .qa-agent/current/risk-analysis.json 存在

如果缺失,退回上游阶段补齐。读 manifest.json 可以快速确认各阶段完成状态。

用例的语言规则

  • 用例描述使用简体中文:title、preconditions、steps、expected、businessActor、operationPath、businessStateBefore、businessAction、businessStateAfter、businessAssertions、risk——所有人类可读字段用中文写。
  • 保持原样不翻译的:API 路径、代码标识符、枚举值、命令、URL、文件路径、账号名、模型名、具体的技术参数值。
  • 用例只写业务行为:谁、在什么状态下、做什么操作、期望看到什么结果。不写"编译成功""Maven 测试全量通过""Playwright 安装完成"——这些放在 environment-checks 或 quality-gates 里。
  • 不要用 "200/400" 这种不确定的预期结果,不确定就去读代码或写进 open question。

用例优先级规则

  • P0:涉及资金损失、数据不一致、越权、主流程阻塞、状态损坏、结算/支付/奖励计算错误。P0 用例必须在任何验收轮次中全部覆盖。
  • P1:核心业务规则和重要回归场景。
  • P2:边界值、非法输入、重试/超时、非关键异常路径。
  • P3:展示细节、文案、视觉打磨、非阻塞兼容性。

每条 P0/P1 风险(来自 risk-analysis.json)必须映射到至少一条用例或一条明确记录的 open question。做不到就是你的工作没完成。

映射必须落进用例的 riskIds 字段(风险编号数组,如 ["RISK-P0-001"])——这是覆盖投影唯一读取的来源。 只在 risk、traceability 或行文里提到风险编号不算关联,报告会把它算作未覆盖的缺口。 riskIds 为空而风险实际已被覆盖时,报告会输出与事实相反的结论。

工作流

1. 加载上游材料

读三个文件:

  • .qa-agent/current/context.json——知道改了哪些代码、接口路径、数据表结构
  • .qa-agent/current/existing-case-index.json——知道已有用例,避免重复生成
  • .qa-agent/current/risk-analysis.json——知道危险在哪里,需要什么断言
2. 加载项目经验

读 .qa-agent/knowledge/ 下与本次 scope 相关的经验,指导用例设计:

python "$QA_AGENT_DIR/scripts/qa_agent.py"show-knowledge --repo . --module <module> --category data-prep
python "$QA_AGENT_DIR/scripts/qa_agent.py"show-knowledge --repo . --module <module> --category api-quirk
python "$QA_AGENT_DIR/scripts/qa_agent.py"show-knowledge --repo . --module <module> --category test-pattern
  • data-prep 经验指导你设计用例的前置数据准备(怎么构造余额不足、已过期资产等)
  • api-quirk 经验指导你写预期结果(null 字段被省略、业务错误码在响应体等)
  • test-pattern 经验指导你设计可复用的验证方式
3. 生成用例

先读取 $QA_AGENT_DIR/references/test-case-schema.md 确认用例 JSON 的完整字段规范(优先级规则、验证规则、quality gate shape、environment check shape)。

  • 优先复用已有用例(相同 ID 和历史执行记录保持不变)
  • 增量生成只覆盖新增或变更的业务操作路径
  • 每条 P0/P1 风险必须有一条用例或一个 open question
  • 草稿写入 .qa-agent/current/test-cases.generated.json
4. 合并+校验

运行 merge-existing-cases 把生成内容与已有用例合并到 test-cases.json。 运行 validate-cases --summary --check-mojibake --strict-language。校验报错必须修到归零。

5. 渲染+审查

运行 render-cases 生成 HTML 确认页。 先读取 $QA_AGENT_DIR/references/model-review.md 了解三模型审查的具体流程和输出格式。

运行 review-cases 做三模型交叉审查。审查反馈中的有效发现要合成后修改 test-cases.json——不能只跑一遍 review 就原样提交。review 的边界值缺失、优先级评级、模糊断言、缺失负向路径这些建议,你要逐条判断是否采纳,采纳的改到用例里,不采纳的记录理由。

6. 编码检查

运行 check-mojibake 对所有产物做编码完整性扫描。Windows 下 AI Write/Edit 工具写中文 JSON 偶发 U+FFFD 替换字符——如果检出问题,用 python "$QA_AGENT_DIR/scripts/qa_agent.py"safe-write-json --from-stdin 通过 Python 管道重写受损文件。

7. 用户确认——这是硬门禁

把 test-cases.html 展示给用户审阅。确认不是流程性的"过一下",而是让用户逐条看到:

  • 每条用例的标题、优先级、层级、前置条件、操作步骤、预期结果、覆盖的风险编号
  • 哪些 P0/P1 风险被覆盖了、哪些变成了 open question
  • scope 锁定的四要素:scope / business main path / blockers / oracles

不要替用户做确认决策。 你必须等待用户给出明确肯定("通过""确认""可以""继续")。 在用户确认前:

  • 不运行 promote-cases
  • 不调用 qa-test-script-generator
  • 不写任何测试脚本
8. 确认后固化

用户确认后立即运行 promote-cases,把确认后的用例复制到 .qa-agent/cases/<module>.json。 这是长期 knowledge base,供后续轮次复用。test-cases.json 保留为当前运行的 working copy。

9. 移交

确认固化的用例移交 qa-test-script-generator。注意:P0/P1 风险和 risk-analysis.json 必须一并传下去,spec-task 的 oracle 和 assertions 要从这里派生。

编码安全

  • test-cases.json、test-cases.html、model-review.json 全部要通过 check-mojibake --strict
  • 如果你用 AI 的 Write 工具直接写 test-cases.json 内容,写完后必须立即做 U+FFFD 检查
  • 多次出现编码损坏时改用 python "$QA_AGENT_DIR/scripts/qa_agent.py"safe-write-json --from-stdin(通过 Python 管道写入)

容错与降级

  • 上游产物缺失:context.json、existing-case-index.json、risk-analysis.json 任一缺失 → 退回对应阶段补齐,不回退到更上游。
  • 三模型审查不可用:若某模型调用失败,用剩余模型完成交叉审查,在 model-review.json 中标注缺失。
  • 编码损坏:所有 JSON/HTML 产物必须通过 check-mojibake --strict。U+FFFD → safe-write-json 重写。
  • 验证失败:validate-cases --strict-language 失败 → 修正后重跑,不绕过校验。

禁令

  • 确认前不写测试代码。这包括不创建测试文件、不手写 spec-task、不生成 Playwright 脚本。确认是硬门禁。
  • 不用 Maven/build/install/编译/工具查询等纯技术检查来充当业务用例。技术检查放 quality-gates 或 environment-checks。
  • 不复制已有用例。已有用例扩展或复用,不创建新 ID 的重复用例。
  • 不忽略 risk-analysis.json 的 P0/P1 风险。每一条必须有归宿。
  • 不要把 draft 用例和 confirmed 用例混在同一文件。
  • 不要把 test-cases.json 当作长期真相来源。确认后必须 promote 到 cases/ 目录。

评论

支持 Markdown