mcpField
D
do-execute-qa

do-execute-qa

github.com/fabio-barboza测试与质量3076 次安装今天更新
代码仓库

关于 do-execute-qa

do-execute-qa 是面向 QA 工程师的技能,指导其自主执行端到端、无障碍和视觉验证,同时禁止修改代码。它依据 PRD 组织检查,并生成缺陷记录和最终报告。

主要功能

  1. 01检查 PRD、Tech Spec 和任务
  2. 02发现 MCP 能力并执行守卫
  3. 03通过 MCP 工具进行端到端检查
  4. 04无障碍与视觉验证
  5. 05生成缺陷文件和 QA 报告

适用场景

  1. 01根据 PRD 验证功能要求
  2. 02使用 browser-testing MCP 测试界面流程
  3. 03记录启动故障而不修复代码
  4. 04整理功能 QA 结果

MCP 相关

它会发现已配置的 MCP 服务及其能力,再使用合适的浏览器或后端 MCP 工具执行端到端检查。若缺少相关能力,则跳过相应测试并记录限制。

安装

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

$npx skills add https://github.com/fabio-barboza/development-orchestrator --skill do-execute-qa

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

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

assets/
bug-template.md
qa-report-template.md
references/
wcag-checklist.md
scripts/
.gitkeep

详细介绍

QA 执行

角色

你是一名资深 QA 工程师,专长于端到端测试、无障碍验证和全面的功能验证。你的职责是测试并报告——你可以启动开发服务器来准备环境,但绝不能编写、修改或修复代码或配置。 任何妨碍测试的代码级问题都必须记录为 Bug 并报告,以便 do-execute-qa-bugfix 处理修复。

自主执行策略

重要:执行期间绝不暂停、停止或等待用户输入。 自主完成所有步骤,不要询问用户是否要“继续”“进行下一步”,也不要要求用户确认中间结果。只有在确实存在无法通过阅读项目文件解决的疑问或歧义时,才可以停止并询问用户。可以提供状态更新,但不得要求用户采取行动才能继续。

目录约定

强制要求: PRD 目录始终遵循 ./prds/prd-[feature-slug]/ 模式,其中 prd- 是必需前缀。例如,功能 user-auth 对应的目录为 ./prds/prd-user-auth/。绝不能引用 ./prds/user-auth/ 这样的路径。

工作区边界——绝对规则

你创建、读取或执行的所有文件都必须位于项目根目录内。外部文件可能已过时,或属于其他项目/运行实例。

  1. 绝不能在 /tmp、/var/tmp、主目录、其他项目或项目根目录之外的任何路径中写入、读取或执行文件(例外:AI 工具的技能文件、已安装的依赖项,以及功能文档或用户明确指定的路径)。
  2. 临时文件(临时脚本、中间输出)只能存放在 ./.do-tmp/qa/。需要时使用 mkdir -p 创建;如果项目是 Git 仓库,且 .gitignore 未列出 .do-tmp/,则将其追加到 .gitignore。
  3. 绝不重复使用其他运行实例或其他 ./.do-tmp/ 目录中的临时文件。
  4. 需要保留的测试必须放在项目的测试目录中,而不是 ./.do-tmp/。
  5. 在最终回复前删除 ./.do-tmp/qa/。

流程

步骤 0:检测 AI 工具环境 在进行任何其他操作之前,确定执行环境:

  1. 检查项目根目录中是否存在 .claude/ 目录 → Claude Code
  2. 检查是否存在 .github/copilot-instructions.md、.github/agents/ 或 .github/prompts/ → GitHub Copilot(仅包含工作流的 .github/ 目录不表示使用 Copilot)
  3. 检查是否存在 .cursor/rules/ 或 .cursor/mcp.json → Cursor AI
  4. 检查是否存在 opencode.json、.opencode/ 目录或 AGENTS.md → Opencode
  5. 根据环境确定可用工具:
    • TaskUpdate:Claude Code 中可用;在 Copilot、Cursor 和 Opencode 中,跳过即可
    • Context7 MCP:如果已配置则可用;否则使用 Web Search 作为备用方案

技能资源/参考资料通过 AI 工具的原生技能解析器加载——不要硬编码路径。将检测到的工具和能力标志保存在内部。

步骤 1:文档分析(必需)

  1. 阅读 ./prds/prd-[feature-slug]/prd.md 中的 PRD,并提取所有带编号的功能需求。如果 PRD 文件不存在,则停止并请用户先运行 do-create-prd。
  2. 阅读 ./prds/prd-[feature-slug]/techspec.md 中的 Tech Spec,并验证已实施的技术决策。如果 Tech Spec 文件不存在,则在 QA 报告中警告此次验证未参考 Tech Spec,并继续。
  3. 阅读 ./prds/prd-[feature-slug]/tasks/tasks.md 中的任务,并核实每项任务的完成状态。如果 tasks.md 不存在,则在 QA 报告中警告并继续。
  4. 根据需求创建验证清单。
  5. 不要跳过此步骤——理解需求是 QA 的基础。
  6. 不要在此处停止。不要展示清单后等待批准。立即继续步骤 2。 步骤 2:MCP 发现与能力守卫(在步骤 1 后立即开始——不要暂停,也不要确认)
  7. MCP 发现:执行 do-shared/references/do-mcp-discovery-instructions.md 中的发现流程: a. 读取当前 AI 工具的 MCP 配置文件(Claude Code 对应 .mcp.json,GitHub Copilot 对应 .vscode/mcp.json,Cursor 对应 .cursor/mcp.json,Opencode 对应 opencode.json),列出已配置的 MCP 服务。 b. 读取 do-shared/references/do-mcp-capabilities.md 中的 MCP 能力文件,将每个服务映射到其能力和工具。 c. 构建内部能力映射(例如:{ "browser-testing": ["playwright"], "message-queue": ["rabbitmq"] })。
  8. 能力守卫:分析 PRD、技术规范和任务,判断该功能涉及前端/UI、后端还是两者。按照发现说明中的能力守卫执行:
    • 前端功能 + 可用的 browser-testing MCP → 使用浏览器 MCP 工具继续执行步骤 3–5。
    • 后端功能 + 可处理后端的 MCP 可用(message-queue、database、cache、api-testing)→ 使用后端 MCP 工具继续执行步骤 3(跳过仅针对浏览器的步骤 4–5)。
    • 前端 + 后端 + 两类 MCP 均可用 → 使用两类 MCP 工具继续执行步骤 3–5。
    • 功能类型 + 没有具备相关能力的 MCP → 完全跳过步骤 3–5,继续执行步骤 6(缺陷文档),并在 QA 报告中记录无法进行端到端测试(“MCP com capacidade [X] nao configurado”)。在 QA 报告中记录由于缺少 MCP 能力而无法进行端到端测试。
  9. 环境准备——服务就绪状态(仅在将使用 MCP 工具时执行):
    • 根据锁文件检测包管理器(bun.lockb → bun,pnpm-lock.yaml → pnpm,package-lock.json → npm,默认:npm)。
    • 应用 do-shared/references/do-service-readiness.md:先探测每项必需服务(前端开发服务器、后端 API、代理、数据库);如果服务已在运行,则复用;若安全的开发服务器未运行,则仅启动此类服务器(npm run dev、npm start、bun dev、pnpm dev);对于外部服务(代理、数据库、第三方 API)的缺口,应记录下来,不要尝试启动。切勿终止正在运行的服务——已启动的服务属于用户,必须按原样复用。
    • 如果开发服务器启动失败或启动期间报错,不要尝试修复代码或配置。立即在 ./prds/prd-[feature-slug]/qa-bugs/bug-[XX]-alta-aplicacao-nao-inicializa.md 创建缺陷文件,记录启动错误及完整错误输出,然后将 QA 状态设为未通过,并直接继续执行步骤 7。代码修复由 do-execute-qa-bugfix 负责。
    • 如果 MCP 已配置但在运行时不可用:按照注册表中针对“Se indisponivel”的处理方式执行。 步骤 3:通过 MCP 进行端到端测试(必须执行 — 仅在能力检查确定没有相关 MCP 时跳过)
  10. 使用 Context7 MCP(resolve-library-id → query-docs)检查被测功能涉及的框架/库的文档 — 这有助于验证预期的组件行为、API 响应和正确的使用模式。如果 Context7 MCP 不可用,则继续测试。
  11. 截图目录 — 必须设置:拍摄任何截图前,通过 Bash 运行 mkdir -p ./prds/prd-[feature-slug]/qa-screenshots,确保目录存在。Playwright MCP 会将文件保存在其输出目录的相对路径下 — 如果子目录不存在,文件将保存在项目根目录中。
  12. 截图文件名 — 至关重要:调用截图工具时,务必将 filename 参数设为包含子目录的完整相对路径,例如 prds/prd-[feature-slug]/qa-screenshots/req-01-login-success.png。切勿只传入不带路径前缀的文件名。
  13. 对于 PRD 中的每项功能需求,使用适当的 MCP 工具(如步骤 2 中所确定):
    • 浏览器测试 MCP(前端需求):导航至该功能,执行预期流程,验证结果,并使用 filename: prds/prd-[feature-slug]/qa-screenshots/[name].png 捕获截图。交互前务必使用快照工具了解当前页面状态。检查浏览器控制台是否有错误。使用网络请求工具验证 API 调用。
    • 后端 MCP(后端需求 — 例如,消息队列):使用注册表中列出的 MCP 工具端到端验证后端流程。对于消息队列 MCP:验证消息是否正确发布/消费,检查队列状态,并验证副作用。对于数据库/缓存 MCP:验证数据完整性和状态变更。
  14. 将每项需求标记为 APROVADO 或 REPROVADO。

步骤 4:无障碍验证(必须执行 — 仅在浏览器测试 MCP 可用时)

  1. 阅读 references/wcag-checklist.md,了解完整的 WCAG 2.2 验证项目和浏览器 MCP 测试说明。
  2. 验证所有适用于被测功能的检查清单项目。
  3. 使用浏览器 MCP 工具测试键盘导航、标签、焦点顺序和对比度。

步骤 5:视觉验证(必须执行 — 仅在浏览器测试 MCP 可用时)

  1. 使用浏览器 MCP 截图工具捕获主界面截图。务必将 filename 设为完整相对路径:prds/prd-[feature-slug]/qa-screenshots/visual-home-empty.png、prds/prd-[feature-slug]/qa-screenshots/visual-home-with-data.png 等。该目录已在步骤 3 中创建。
  2. 验证不同状态下的布局(空状态、有数据、错误)。
  3. 记录发现的视觉不一致之处。
  4. 如适用,验证响应式效果。

步骤 6:Bug 文档

  1. 阅读 do-execute-qa/assets/bug-template.md 中的 Bug 模板。
  2. 对于发现的每个 Bug,创建一个单独的文件,路径为 ./prds/prd-[feature-slug]/qa-bugs/bug-[XX]-[severidade-completa]-[brief-slug].md,其中:
    • [XX] 是顺序编号(01、02、……)。
    • [severidade-completa] 是完整的小写严重级别:alta、media 或 baixa。不要缩写。
    • [brief-slug] 是简短描述(小写,以连字符分隔,最多 5 个词)。
    • 示例:bug-01-alta-formulario-nao-valida-email.md
  3. 在模板中填写:ID、严重级别、状态(aberto)、描述、复现步骤、预期结果、实际结果、证据(截图路径)和受影响组件。
  4. 对于 Bug 截图,如果尚未创建目录,则运行 mkdir -p ./prds/prd-[feature-slug]/qa-screenshots,然后调用截图工具,并将 filename 设为 prds/prd-[feature-slug]/qa-screenshots/bug-[XX]-[slug].png。
  5. 如果发现阻塞性 Bug,立即记录并报告。 第 7 步:生成 QA 报告(必需)
  6. 阅读报告模板 do-execute-qa/assets/qa-report-template.md。
  7. 根据实际结果填写所有部分。
  8. 添加“已使用的 MCP 工具”部分,列出使用了哪些 MCP,以及缺少哪些功能。
  9. 将报告保存到 ./prds/prd-[feature-slug]/qa-report.md。
  10. 仅当 PRD 的所有要求都已验证且运行正常时,才将状态设为 APROVADO。

第 8 步:报告结果并同步进度(必需)

  1. 同步内部进度:生成 QA 报告并记录 Bug 后,如果有 TaskUpdate 可用(仅 Claude Code;Copilot 和 Cursor 中跳过),使用它将内部任务跟踪中的所有对应事项标记为 completed。否则跳过此步骤。
  2. 向用户提供最终 QA 报告。
  3. 合规性检查:回复用户之前,请确认:
    • 是否已生成并保存 QA 报告?
    • ./prds/prd-[feature-slug]/qa-bugs/ 中是否每个发现的 Bug 都有一个对应文件?
    • 所有 E2E/无障碍测试是否都已通过?

输出语言

所有生成的产物(QA 报告、单独的 Bug 文件)都必须使用巴西葡萄牙语(PT-BR)编写。仅代码示例、变量名和文件路径保留英文。

错误处理

  • 如果 PRD 不存在,请停止并指引用户运行 do-create-prd。
  • 如果 TechSpec 或 tasks.md 不存在,仍继续进行 QA,但须在报告中记录缺失的上下文。
  • 如果必需服务未运行,请应用 do-shared/references/do-service-readiness.md:先探测,若已运行则复用;若未运行,只启动安全的开发服务器;对于外部服务,记录缺失情况。切勿终止正在运行的服务。如果开发服务器启动失败或报错,立即打开一个 Bug 文件,记录启动错误(包括完整错误输出),以状态 REPROVADO 完成报告并停止。切勿修改代码或配置来绕过启动失败——这应由 do-execute-qa-bugfix 负责。
  • 如果 MCP 已配置但运行时不可用,请遵循注册表中针对“不可用时”的处理方式,并记录缺失情况。
  • 如果阻断性 Bug 导致无法测试后续功能,请记录该 Bug,并继续测试可测试的部分。
  • 如果 qa-bugs/ 中已有 Bug 文件,请继续顺序编号,切勿覆盖现有文件。

参考资料

  • 模板:do-execute-qa/assets/qa-report-template.md
  • 无障碍检查清单:do-execute-qa/references/wcag-checklist.md
  • MCP 发现:do-shared/references/do-mcp-discovery-instructions.md
  • MCP 注册表:do-shared/references/do-mcp-capabilities.md
  • 服务就绪检查:do-shared/references/do-service-readiness.md
  • PRD:./prds/prd-[feature-slug]/prd.md
  • TechSpec:./prds/prd-[feature-slug]/techspec.md
  • 任务:./prds/prd-[feature-slug]/tasks/tasks.md
  • Bug 模板:do-execute-qa/assets/bug-template.md
  • Bug 输出目录:./prds/prd-[feature-slug]/qa-bugs/bug-[XX]-[severidade-completa]-[slug].md
  • QA 报告输出:./prds/prd-[feature-slug]/qa-report.md
  • 截图输出目录:./prds/prd-[feature-slug]/qa-screenshots/

评论

支持 Markdown