mcpField
Q
qa-report-generator

qa-report-generator

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

关于 qa-report-generator

qa-report-generator 是 quality-assurance-agent QA 流程的收尾阶段,供汇总测试执行和代码审查证据、形成就绪判定的 Agent 使用。它执行证据完整性与就绪门禁,生成 HTML 报告并进行跨产物自检。

主要功能

  1. 01汇总测试运行记录
  2. 02检查证据完整性与就绪状态
  3. 03生成并检查 HTML 报告新鲜度
  4. 04跨产物校验报告与 QA 数据
  5. 05按阻断严重度展示最终判定

适用场景

  1. 01汇总测试和代码审查结果供发布判断
  2. 02发现执行记录或审查证据缺失
  3. 03生成带阻断因素分层的 QA 报告

安装

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

$npx skills add https://github.com/mingdui/ming-qa --skill qa-report-generator

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

附带文件agents/openai.yaml

详细介绍

来自项目 README

QA Report Generator — 报告生成与最终判定

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-test-runner 证明了"用例都跑完了",qa-code-reviewer 证明了"代码有没有隐藏炸弹"。你的任务是把这些证据汇总成一份可信报告,并给出最终就绪判定。

你不执行测试、不修复失败、不审查代码——你只读三个门禁产物,把它们变成报告和判定。

前置条件(缺一不可)

  • .qa-agent/current/completion-check.json(qa-test-runner 产出)
  • .qa-agent/current/code-review.json + code-review-check.json(qa-code-reviewer 产出)

读 manifest.json 确认上游阶段完成状态。任一前置产物缺失 → 退回对应阶段补齐,不凭空渲染。

CLI 命令

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

工作流

1. 汇总执行日志
python "$QA_AGENT_DIR/scripts/qa_agent.py"aggregate-runs --repo . --output .qa-agent/current/latest-run.json

aggregate-runs 优先读 runs/run-*.meta.json sidecar(聚合唯一事实源),缺失时回退文件名/头解析。

2. 跑证据完整性门禁
python "$QA_AGENT_DIR/scripts/qa_agent.py"assert-evidence-integrity \
  --cases .qa-agent/current/test-cases.json \
  --spec-tasks .qa-agent/current/test-spec-tasks.json \
  --run .qa-agent/current/latest-run.json \
  --code-review .qa-agent/current/code-review.json \
  --output .qa-agent/current/evidence-integrity-check.json

证据完整性门禁校验:latest-run 聚合非空、无 unmatchedLogs、每个 spec-task 有执行记录、code-review scope 为对象格式。任一失败 → Incomplete,报告即使新鲜也不能判可信。

3. 跑就绪门禁
python "$QA_AGENT_DIR/scripts/qa_agent.py"assert-readiness \
  --completion-check .qa-agent/current/completion-check.json \
  --code-review .qa-agent/current/code-review.json \
  --evidence-integrity-check .qa-agent/current/evidence-integrity-check.json \
  --output .qa-agent/current/readiness-check.json

assert-readiness 是最终判定的唯一确定性来源,它 combine completion + code review + evidence integrity + report freshness,产出 Ready / Conditionally Ready / Not Ready / Incomplete。

4. 渲染报告

先读取 $QA_AGENT_DIR/references/html-report.md 了解报告结构、provenance 块和命名约定。

  • 渲染基础报告:render-report(带 --run、--completion-check,不含 readiness-check)
  • 跑 assert-report-freshness —— 报告 stale 则重新渲染
  • 用 --run + --completion-check + --readiness-check 重新渲染最终报告
  • 最终跑 check-mojibake --strict 确保无编码损坏

渲染时输出两份:.qa-agent/reports/latest-report.html(覆盖)+ .qa-agent/reports/report-<YYYYMMDD-HHMMSS>.html(历史)。

证据不完整时,报告顶部显示「证据不完整」横幅,且阻断因素按严重度分层展示。

4.5 跑 QA 自检(强制,报告内容自洽性)
python "$QA_AGENT_DIR/scripts/qa_agent.py"qa-self-check \
  --report .qa-agent/reports/latest-report.html \
  --current .qa-agent/current \
  --output .qa-agent/current/self-check.json

qa-self-check 做跨产物交叉校验,发现「报告数据失真」这类单产物校验抓不到的错误:

  • 风险覆盖状态从用例 traceability 投影,与报告展示的「已覆盖」数不一致 → 报警
  • 通过率 vs 执行结果、用例状态列、门禁 vs 结论、环境统计 vs 明细不一致 → 报警
  • 未验证用例 vs 结论(SC-006):completion 有 case-not-verified 但报告判「可以合并」→ 报警(未验证用例被通过率掩盖)

报告渲染时,blocked 用例会独立分区呈现(「⚠️ N 个用例未验证,不计入通过率」醒目标注),不会被通过率稀释。

自检失败即阻断:不视为「流程走完」,报告不可判 Ready,并通过企微 webhook 通知(--webhook > config notify.webhook > 代码默认)。

5. 最终就绪判定

用中文就绪语言输出(判定标准见主 skill「就绪判定语言」章节):

  • 就绪(Ready):completion 通过 + 代码审查无 blocking + 证据完整性通过 + readiness-check 通过
  • 有条件就绪(Conditionally Ready):completion 通过但有允许的 P2/P3 残余风险
  • 未就绪(Not Ready):强制业务断言失败或存在 P0/P1 阻塞性缺陷
  • 未完成(Incomplete):P0/P1 用例/task/审查/执行证据缺失或证据链断裂
阻断因素严重度分层

报告把阻断因素按严重度分层,让读者一眼区分:

分层内容判定影响
🔴 P0/P1 阻断阻塞性代码缺陷、强制业务断言失败Not Ready
🟡 P2/P3 业务失败已捕获的非阻塞缺陷、残余风险Conditionally Ready(政策允许时)
🟠 环境阻断服务不可达、MCP 断开、数据不符Incomplete
🔵 QA 证据链缺陷空 summary、unmatchedLogs、缺 run 证据Incomplete

容错与降级

  • 前置门禁缺失:completion-check 或 code-review 不存在 → 退回对应阶段,不凭空渲染报告
  • render-report 失败:先读错误信息,检查是否缺 --run / --readiness-check / --completion-check 参数或产物路径错误
  • 编码损坏:报告渲染后必须跑 check-mojibake --strict,检出 U+FFFD → 修复产物后重新渲染

禁令

  • 不重新执行测试。测试在 runner 阶段已跑完,你只读证据。
  • 不审查代码。代码审查是 qa-code-reviewer 的职责,你只读结论。
  • 不修改 completion-check / code-review-check 的结论。它们是确定性产物,你只汇总。
  • 不在 readiness-check 失败时说 Ready。gate 失败就是未完成。
  • 不凭空编造报告数据。报告里每个数字都要能追溯到门禁产物,缺失写 N/A。
  • 报告统一落到 .qa-agent/reports/,不在 .qa-agent/ 根目录直接写文件。

评论

支持 Markdown