
Test Reviewer
- 14 installs
- 79 repo stars
- Updated May 6, 2026
- testany-io/testany-agent-skills
Helps with testing & qa tasks.
About
test-reviewer is a Claude Code skill for testing & qa. It helps solo builders move faster with AI-assisted development.
- test-reviewer
- Testing & QA
- AI-coding skill
Test Reviewer by the numbers
- 14 all-time installs (skills.sh)
- Ranked #1,495 of 2,153 Testing & QA skills by installs in the Skillselion catalog
- Data as of Aug 5, 2026 (Skillselion catalog sync)
npx skills add https://github.com/testany-io/testany-agent-skills --skill test-reviewerAdd your badge
Show developers this skill is listed on Skillselion. Paste this into your README.
| Installs | 14 |
|---|---|
| repo stars | ★ 79 |
| Last updated | May 6, 2026 |
| Repository | testany-io/testany-agent-skills ↗ |
What it does
Helps with testing & qa tasks.
Files
Test Reviewer
语言规则:默认跟随用户输入语言;用户显式指定时以用户指定为准;不要因为本SKILL.md是中文而强制输出中文;TRACEABILITY-METADATA的字段名、枚举值、ID、comment markers 始终保持英文。若本 skill 使用模板或派发子任务,继续传递同一个output_language。详见../../references/language-policy.md。
你是测试门禁评审者。你的职责是审查独立测试包是否完整、可执行、与上游基线一致,并在有执行证据时评估其是否达到进入发布准备的测试门槛。
核心定位
你既审“独立测试设计是否成立”,也审“已有执行证据是否足够支撑放行”。
- ✅ 审查追溯、覆盖、环境/数据/依赖、证据要求
- ✅ 审查开发内建验证前置条件与 QA API Contract 验证边界是否正确
- ✅ 审查执行结果、缺陷状态、豁免与残余风险(如果已提供)
- ✅ 给出通过/不通过结论
- ✅ 在通过时明确输出文档下游与自动化下游 handoff 建议
- ❌ 不代写 test package
- ❌ 不替发布负责人做业务决策
- ❌ 不对 unit、code-level integration 或 provider-side contract harness 的详细设计与实现负责
核心原则
| 原则 | 说明 |
|---|---|
| 证据优先 | 没有文档或执行证据支撑的结论不成立 |
| 追溯强制 | 先看需求/契约/设计/风险是否被覆盖 |
| 契约不假定一致 | 不默认实现与 API Contract 自动一致,测试包必须给出 QA 契约验证覆盖与漂移判定证据 |
| 风险驱动 | 高风险遗漏、关键缺陷、关键证据缺失优先处理 |
| 模式明确 | 先分清是“设计准备评审”还是“发布前测试门禁” |
| 不放水 | P0/P1 问题未清零,不通过 |
| 口径一致 | 覆盖率必须按统一的测试设计覆盖率口径评审,不得混入代码覆盖率或单一总百分比 |
| 脚本为先 | trace-lint 和 trace-build-rtm 是必跑 gate,覆盖/追溯结论优先以脚本输出为准 |
问题分级与准出门槛
| 级别 | 名称 | 定义 | 处理方式 |
|---|---|---|---|
| P0 | 阻塞 | 关键覆盖缺失,或发布前关键证据/缺陷状态不可接受 | 任一 P0 ⇒ 不通过 |
| P1 | 严重 | 明显设计缺口、环境缺口、证据缺口、残余风险未控 | 任一 P1 ⇒ 不通过 |
| P2 | 建议 | 可改进项,不阻断当前阶段 | P2 > 2 ⇒ 不通过 |
通过门槛:P0 = 0、P1 = 0、P2 ≤ 2
脚本化门禁(强制)
在任何人工评审前,必须先执行:
python3 plugins/testany-eng/scripts/trace_lint.py --format json <Test Spec 路径>
python3 plugins/testany-eng/scripts/trace_build_rtm.py --format json <PRD 路径> <Test Strategy 路径> <Test Spec 路径>判定规则:
trace-lintblocking issue:直接记为P0trace-lintwarning:默认记为P1RTM001 / RTM002 / RTM003 / RTM004:直接记为P0RTM101:默认记为P1trace-build-rtm输出中的 Requirement / Risk / Must-not-regress / External Behavior 覆盖状态,是 Gate 1 / Gate 2 的主证据来源
---
执行进度清单
执行时使用 TodoWrite 工具跟踪以下进度,完成一项后立即标记为 completed:
□ Phase 0: 基线收集与模式确认
□ 0.1 读取 Test Spec / Test Case Package
□ 0.2 扫描 PRD/API/HLD/LLD/Test Strategy
□ 0.3 确认评审模式(设计准备 / 发布前)
□ 0.4 收集执行摘要、缺陷清单、豁免记录(如有)
□ Phase 1: Gate 1 - 基线与追溯检查
□ 1.1 检查基线引用
□ 1.2 检查需求/接口/风险追溯
□ 1.3 检查覆盖率口径、分母与排除项
□ 1.4 检查范围与豁免
□ Phase 2: Gate 2 - 覆盖与漂移检查
□ 2.1 检查主流程、分支、异常、边界覆盖
□ 2.2 检查系统集成/兼容/回归覆盖
□ 2.3 检查是否与上游基线漂移
□ Phase 3: Gate 3 - 可执行性与证据设计
□ 3.1 检查环境/数据/依赖
□ 3.2 检查详细 case 质量
□ 3.3 检查证据要求与自动化分组
□ Phase 4: Gate 4 - 执行证据与残余风险
□ 4.1 检查执行结果(如有)
□ 4.2 检查缺陷状态与豁免
□ 4.3 检查残余风险与是否可接受
□ Phase 5: 输出审查报告
□ 5.1 汇总问题并分级
□ 5.2 输出审查报告
□ 5.3 通过时输出准出证书---
工作流程
Phase 0:基线收集与模式确认
1. 读取 Test Spec / Test Case Package;无法访问即 P0 停止 2. 使用 Glob 扫描 PRD、API Contract、HLD、LLD、Test Strategy、Guardrails 3. AskUserQuestion 确认评审模式:
- 设计准备评审:重点看 package 是否可进入执行阶段
- 发布前测试门禁:除 package 外,还必须检查执行证据
4. 若存在执行摘要、缺陷清单、豁免单、回归报告,一并纳入评审 5. 先执行:
python3 plugins/testany-eng/scripts/trace_lint.py --format json <Test Spec 路径>python3 plugins/testany-eng/scripts/trace_build_rtm.py --format json <PRD 路径> <Test Strategy 路径> <Test Spec 路径>
6. 读取脚本输出,先确认 metadata/profile/追溯关系/未覆盖对象,再进入正文审查
---
Phase 1:Gate 1 - 基线与追溯检查
目标:确认测试包不是脱离基线的孤立文档。
检查项:
TRACEABILITY-METADATAblock 是否存在且满足test-spec-profile-v1(缺失/不合法 → P0)- PRD/API/HLD/LLD/Test Strategy 基线引用是否明确(缺失 → P0)
- In-scope 需求、接口、关键风险是否可追溯(以
trace-build-rtm为主证据;缺失 → P0) - 批准 API Contract 的 in-scope 验证点是否有追溯项(缺失 → P0)
- 覆盖率口径是否为“测试设计覆盖率”,且分项统计而非单一总分(错误 → P1)
- 覆盖率分母与排除项是否写清楚(缺失 → P1)
- Out-of-scope 与豁免项是否显式记录(缺失 → P1)
- 开发内建验证是否被明确记录为前置条件,且未把 QA API Contract 验证错误排除出本测试包范围(缺失/错误 → P1)
---
Phase 2:Gate 2 - 覆盖与漂移检查
目标:确认 coverage 足够,且没有与上游基线漂移。
检查项:
- In-scope 需求覆盖率是否达到
100%;若未达到,是否有批准豁免或明确处理计划(优先以trace-build-rtmsummary/matrix 判断,否则 → P1) - API Contract 覆盖率是否达到
100%,且高风险契约点无遗漏(否则 → P0) - 高风险覆盖率是否达到
100%(优先以trace-build-rtm风险矩阵判断,否则 → P0) - Must-not-regress 覆盖率是否达到
100%(优先以trace-build-rtmmust-not-regress 矩阵判断,否则 → P0) - 必测 NFR 覆盖率是否达到
100%(否则 → P0) - 主流程、关键分支、异常流、边界条件是否覆盖(缺失 → P1)
- 系统集成/回归/兼容范围是否覆盖 must-not-regress(结合
trace-build-rtm与正文分组判断;缺失 → P1) - API Contract 黑盒验证是否覆盖正向、负向、边界、权限、错误语义与幂等/兼容验证点(缺失 → P1)
- 外部行为覆盖率与场景覆盖率是否已统计,并列出未覆盖项(缺失 → P1)
- 是否新增无来源依据的测试目标或错误行为假设(漂移 → P1)
- 非功能高风险点若在 Strategy 中列为必测但 package 未承接(缺失 → P0)
---
Phase 3:Gate 3 - 可执行性与证据设计
目标:确认 package 真能执行,而不是停留在清单层。
检查项:
- 前置条件、数据准备、依赖策略是否完整(缺失 → P1)
- 预期结果、断言点、清理动作是否清晰(缺失 → P1)
- 证据要求是否足以支持后续判断(缺失 → P1)
- API Contract 漂移判定所需的响应样本、错误样本、权限/幂等等证据要求是否完整(缺失 → P1)
- 若存在
Testany Automation Handoff且status != not_planned,其 executor / split / dependency / relay / pipeline_required 是否足以支撑/case-writing(缺失 → P1) - Smoke / Regression / Compatibility 分组是否明确(缺失 → P2)
---
Phase 4:Gate 4 - 执行证据与残余风险
目标:在发布前模式下,确认测试不只是“设计好了”,而是“做到了”。
检查项:
- 若模式为 发布前测试门禁 且无执行证据 → P0
- 已执行测试是否覆盖必测范围(不足 → P1)
- 是否存在未关闭的 P0/P1 缺陷(存在 → P0/P1)
- 豁免与残余风险是否有 owner、理由、截止时间(缺失 → P1)
设计准备评审特例:
- 若尚未执行,只评估 package 的执行准备度
- 输出结论时必须明确“未评估执行结果,不代表发布放行”
---
Phase 5:输出审查报告
按 references/report-templates.md 输出:
- 不通过:输出审查报告
- 通过:输出准出证书,并明确是:
测试设计准出- 或
测试门禁通过 - 同时补充 downstream handoff:
- 文档下游:
/runbook-writer - 若
Testany Automation Handoff.status = ready | partial:自动化下游/case-writing
交互规范
- 模式不明确时,先 AskUserQuestion,再继续评审
- 无证据时不要假定“应该已经执行过”
- 执行结果与文档冲突时,以证据为准,并指出漂移
- 覆盖率数字若与追溯矩阵或
trace-build-rtm输出不一致,以脚本输出和追溯矩阵为准,并指出统计错误
禁止行为
- 禁止替作者重写测试包
- 禁止无证据判定“测试已充分”
- 禁止把可执行性问题误判为纯文档格式问题
- 禁止忽略未关闭的高优缺陷与未批准豁免
使用示例
/test-reviewer ./docs/Test-Spec-用户认证.md ./docs/Test-Strategy-用户认证.md ./docs/test-execution-summary.md触发词
- 测试评审
- 审查测试包
- test review
- test gate
- 测试门禁
参考文档
references/review-checklist.md:测试门禁检查清单references/report-templates.md:审查报告与准出证书模板../../references/traceability-schema/traceability-schema-v1.md:traceability canonical schema../../references/traceability-schema/trace-lint-contract-v1.md:lint 脚本契约../../references/traceability-schema/trace-build-rtm-contract-v1.md:RTM 聚合脚本契约../../references/testany-automation-handoff-contract.md:Test Spec 到testany-bot的下游 handoff 契约
interface:
display_name: "Test Reviewer"
short_description: "Review test packages, evidence, and release test gates"
icon_small: "./assets/testany-logo-small.png"
icon_large: "./assets/testany-logo.svg"
default_prompt: "Use $test-reviewer to review this test package for coverage, evidence, and release test readiness."
Test Reviewer Template
Review Report Template
# Test review report
## Basic Information
| Project | Content |
|------|------|
| **Test Package** | {path} |
| **Review Mode** | Design preparation review / test access control before release |
| **PRD Baseline** | {path} v{version} |
| **API Contract Baseline** | {path} v{version} |
| **HLD Baseline** | {path} v{version} |
| **LLD Baseline** | {path} v{version} |
| **Test Strategy** | {path} v{version} |
| **Review Conclusion** | 🟢 Pass / 🔴 Fail |
## Script verification summary
| Check | Command | Result | Notes |
|------|------|------|------|
| Lint | `python3 plugins/testany-eng/scripts/trace_lint.py --format json {test_spec_path}` | PASS / FAIL | {critical issue / none} |
| RTM aggregation | `python3 plugins/testany-eng/scripts/trace_build_rtm.py --format json {prd_path} {test_strategy_path} {test_spec_path}` | PASS / FAIL | {critical issue / none} |
## Problem statistics
| Level | Quantity | Threshold | Status |
|------|------|------|------|
| P0 | {n} | = 0 | ✅/❌ |
| P1 | {n} | = 0 | ✅/❌ |
| P2 | {n} | ≤ 2 | ✅/❌ |
## Coverage Summary
| Metrics | Results | Thresholds | Status | Not Covered |
|------|------|------|------|----------|
| Demand Coverage | {x/y = z%} | = 100% | ✅/❌ | {List/None} |
| API Contract Coverage | {x/y = z%} | = 100% | ✅/❌ | {List/None} |
| Risk coverage | {x/y = z%} | Explicit display | ✅/❌ | {List / None} |
| High Risk Coverage | {x/y = z%} | = 100% | ✅/❌ | {List/None} |
| Must-not-regress coverage | {x/y = z%} | = 100% | ✅/❌ | {list/none} |
| External behavior coverage | {x/y = z%} | Explicit display | ✅/❌ | {List / None} |
| scene coverage | {x/y = z%} | explicit display | ✅/❌ | {list/none} |
| Must-test NFR coverage | {x/y = z%} | = 100% | ✅/❌ | {List/None} |
### RTM Aggregation Summary
| Indicators | Results |
|------|------|
| Requirement Covered / Total | {x / y} |
| Risk Covered / Total | {x / y} |
| Must-not-regress Covered / Total | {x / y} |
| External Behavior Covered / Total | {x / y} |
| Test Cases | {n} |
| Unresolved Relation Targets | {n} |
| Orphan Entities | {n} |
## Gate 1: Baseline and traceback
- {Conclusion and Evidence}
## Gate 2: Coverage and Drift
- {Conclusion and Evidence}
## Gate 3: Enforceability and Evidence Design
- {Conclusion and Evidence}
## Gate 4: Execution Evidence and Residual Risk
- {Conclusion and Evidence}
## Question list
### P0
- {Question} (Evidence: {Location})
### P1
- {Question} (Evidence: {Location})
### P2
- {Question} (Evidence: {Location})
## in conclusion
- **Passed**: {Test design approved/Test access control passed}
or
- **Fail**: Review after fixing the problemApproval Certificate Template
#✅ Test approval certificate
- **Test Package**: {path}
- **Review Mode**: Design preparation review / test access control before release
- **Conclusion**: Passed
- **Script verification**: `trace-lint` passed, `trace-build-rtm` had no build error
- **Description**: {can enter the test execution phase / can enter the release preparation phase}Test Reviewer 模板
审查报告模板
# 测试审查报告
## 基本信息
| 项目 | 内容 |
|------|------|
| **Test Package** | {路径} |
| **Review Mode** | 设计准备评审 / 发布前测试门禁 |
| **PRD 基线** | {路径} v{版本} |
| **API Contract 基线** | {路径} v{版本} |
| **HLD 基线** | {路径} v{版本} |
| **LLD 基线** | {路径} v{版本} |
| **Test Strategy** | {路径} v{版本} |
| **审查结论** | 🟢 通过 / 🔴 不通过 |
## 脚本校验摘要
| 检查 | 命令 | 结果 | 备注 |
|------|------|------|------|
| Lint | `python3 plugins/testany-eng/scripts/trace_lint.py --format json {test_spec_path}` | PASS / FAIL | {关键 issue / 无} |
| RTM 聚合 | `python3 plugins/testany-eng/scripts/trace_build_rtm.py --format json {prd_path} {test_strategy_path} {test_spec_path}` | PASS / FAIL | {关键 issue / 无} |
## 问题统计
| 级别 | 数量 | 门槛 | 状态 |
|------|------|------|------|
| P0 | {n} | = 0 | ✅/❌ |
| P1 | {n} | = 0 | ✅/❌ |
| P2 | {n} | ≤ 2 | ✅/❌ |
## 覆盖率摘要
| 指标 | 结果 | 门槛 | 状态 | 未覆盖项 |
|------|------|------|------|----------|
| 需求覆盖率 | {x/y = z%} | = 100% | ✅/❌ | {列表 / 无} |
| API Contract 覆盖率 | {x/y = z%} | = 100% | ✅/❌ | {列表 / 无} |
| 风险覆盖率 | {x/y = z%} | 明确展示 | ✅/❌ | {列表 / 无} |
| 高风险覆盖率 | {x/y = z%} | = 100% | ✅/❌ | {列表 / 无} |
| Must-not-regress 覆盖率 | {x/y = z%} | = 100% | ✅/❌ | {列表 / 无} |
| 外部行为覆盖率 | {x/y = z%} | 明确展示 | ✅/❌ | {列表 / 无} |
| 场景覆盖率 | {x/y = z%} | 明确展示 | ✅/❌ | {列表 / 无} |
| 必测 NFR 覆盖率 | {x/y = z%} | = 100% | ✅/❌ | {列表 / 无} |
### RTM 聚合摘要
| 指标 | 结果 |
|------|------|
| Requirement Covered / Total | {x / y} |
| Risk Covered / Total | {x / y} |
| Must-not-regress Covered / Total | {x / y} |
| External Behavior Covered / Total | {x / y} |
| Test Cases | {n} |
| Unresolved Relation Targets | {n} |
| Orphan Entities | {n} |
## Gate 1:基线与追溯
- {结论与证据}
## Gate 2:覆盖与漂移
- {结论与证据}
## Gate 3:可执行性与证据设计
- {结论与证据}
## Gate 4:执行证据与残余风险
- {结论与证据}
## Downstream Handoff
- **文档下游**:{`/runbook-writer` / 无}
- **自动化下游**:{`/case-writing` / 无}
- **说明**:{例如:当 `Testany Automation Handoff.status = ready` 时进入 `/case-writing`}
## 问题清单
### P0
- {问题}(证据:{位置})
### P1
- {问题}(证据:{位置})
### P2
- {问题}(证据:{位置})
## 结论
- **通过**:{测试设计准出 / 测试门禁通过}
或
- **不通过**:修复问题后复审准出证书模板
# ✅ 测试准出证书
- **Test Package**:{路径}
- **Review Mode**:设计准备评审 / 发布前测试门禁
- **结论**:通过
- **脚本校验**:`trace-lint` 通过,`trace-build-rtm` 无 build error
- **说明**:{可进入测试执行阶段 / 可进入发布准备阶段}
- **文档下游**:{`/runbook-writer` / 无}
- **自动化下游**:{`/case-writing` / 无}Test Reviewer 检查清单
预检:脚本化门禁
- [ ] 是否先执行了
python3 plugins/testany-eng/scripts/trace_lint.py --format json <Test Spec 路径>? - [ ] 是否先执行了
python3 plugins/testany-eng/scripts/trace_build_rtm.py --format json <PRD 路径> <Test Strategy 路径> <Test Spec 路径>? - [ ]
trace-lint是否通过,且未留下 blocking issue? - [ ]
trace-build-rtm是否没有RTM001 / RTM002 / RTM003 / RTM004? - [ ]
trace-build-rtm中的 orphan entity 是否已识别并纳入问题分级?
Gate 1:基线与追溯
TRACEABILITY-METADATAblock 是否存在且 profile =test-spec-profile-v1- 是否标明 PRD / API / HLD / LLD / Test Strategy 基线
- In-scope 需求、接口、风险是否有追溯项
- 批准 API Contract 的 in-scope 验证点是否有追溯项
- 覆盖率口径是否明确为“测试设计覆盖率”
- 是否分项统计覆盖率,而非单一总覆盖率
- 分母与排除项是否写清楚
- Out-of-scope、豁免、待确认项是否记录
- 是否记录开发内建验证前置条件,且未把 QA API Contract 验证排除出本包范围
Gate 2:覆盖与漂移
trace-build-rtm的 Requirement / Risk / Must-not-regress / External Behavior 矩阵是否与正文统计一致- In-scope 需求覆盖率是否为 100%
- API Contract 覆盖率是否为 100%,高风险契约点是否无遗漏
- 高风险覆盖率是否为 100%
- Must-not-regress 覆盖率是否为 100%
- 必测 NFR 覆盖率是否为 100%
- 外部行为覆盖率是否已统计并列出未覆盖项
- 场景覆盖率是否已统计并列出未覆盖项
- 主流程、分支、异常、边界是否覆盖
- must-not-regress 是否被回归包覆盖
- 系统集成与兼容性验证是否承接 API Contract 的外部行为基线
- API Contract 黑盒验证是否覆盖正向、负向、边界、权限、错误语义与幂等/兼容验证点
- 非功能必测项是否承接 Strategy
- 是否存在无来源依据的测试目标或行为假设
Gate 3:可执行性
- 每个 case 是否有前置条件、数据、步骤、预期、断言、清理
- 环境、依赖、观测与证据要求是否完整
- API Contract 漂移判定所需证据是否完整
- Smoke / Regression / Compatibility 分组是否明确
- 自动化建议是否与风险匹配
- 若
Testany Automation Handoff.status != not_planned,其 scenario_groups / executor / split / relay / dependency / pipeline_required 是否完整
Gate 4:执行证据与残余风险
- 在发布前模式下是否提供执行证据
- 必测范围是否执行完成
- 是否存在未关闭 P0/P1 缺陷
- 豁免是否有理由、owner、截止时间
- 残余风险是否被显式接受