qa-plan

根据最近一批 commit 生成 step-by-step QA 测试计划,并保存为 GitHub issue。用户通过 /qa-plan 调用。

SKILL.md

GitHub

QA Plan

审查最近 N 个 commit,生成一份可照做的 QA 测试计划,保存为 GitHub issue(qa-plan 标签)。

参数

  • 用户传入数字时,按该数字取最近 N 个 commit;否则默认取上一个 tag 以来的改动。

流程

1. 收集变更

默认取上一个 tag 以来的范围:

LATEST_TAG=$(git describe --tags --abbrev=0 2>/dev/null || echo "")

if [ -n "$LATEST_TAG" ]; then
  git log --oneline "$LATEST_TAG"..HEAD
  git diff "$LATEST_TAG"..HEAD
else
  echo "未找到 tag,回退到最近 10 个 commit"
  git log --oneline -10
  git diff HEAD~10..HEAD
fi

用户传入 N 时(例如 /qa-plan 5):

N=5  # 用户指定的数字
git log --oneline -"$N"
git diff HEAD~"$N"..HEAD

完成标准:已拿到 commit 列表和完整 diff。

2. 理解变更

阅读 diff,必要时查看相关源文件。按用户可感知的功能/场景分组,不按 commit 顺序排列。

完成标准:能列出每个变更能力及其代码路径,且每个变更能力至少对应一个测试步骤。

3. 起草 QA 计划

使用 Markdown checklist,每个步骤包含:

字段 说明
测试什么 要验证的功能或行为
如何测试 测试者执行的具体操作
预期结果 正确行为是什么
优先级 P0(核心)/ P1(重要边界)/ P2(锦上添花)

完整示例见 EXAMPLES.md。

完成标准:每个变更能力至少有一个步骤;每个步骤的四项字段都已填满。

4. 发布 GitHub issue

先检查 gh 登录状态:

gh auth status

未登录则停止,请用户运行 gh auth login。

将 QA 计划写入临时文件,然后创建 issue:

gh label create qa-plan --description "QA test plans" --color 0366D6 2>/dev/null || true
gh issue create \
  --title "QA Plan: $(date +%Y-%m-%d) — 变更简述" \
  --label qa-plan \
  --body-file /tmp/qa-plan-body.md

完成标准:成功返回 issue URL。

5. 汇报

向用户输出:

  • GitHub issue 链接
  • 步骤统计(P0 X 项 / P1 Y 项 / P2 Z 项)
  • 建议重点关注的变更或高风险区域