skills/test-suite-maintainer/SKILL.md
在功能已完成开发、已转测并部署到测试或预发环境后,按功能模块维护完整流程验收测试方案与自动化/半自动化脚本。用户提到“上线前测试”“完整流程验证”“真实数据测试”“转测验收”“测试方案”“测试脚本”“更新测试用例”“全量验收”“跑用例”时触发此 skill。
npx skillsauth add anian0/pick-skills test-suite-maintainerInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
这个 skill 的目标不是补写开发阶段的单元测试,也不是用 mock 数据重复验证局部逻辑。它用于功能完成开发、已转测、并部署到可验证环境之后,维护和执行面向上线准入的完整流程测试。
测试通过代表:功能在真实部署环境、真实配置、真实或准真实业务数据、真实服务链路下满足需求和设计约束,可以作为上线判断依据之一。
以已转测和已部署为前提
验证完整业务流程
每个功能模块独立维护
test-plan.md 混放多个功能模块的方案。先设计方案,确认后再写脚本
上线阻断标准清晰
测试套件维护在项目的 workplace/test/ 目录下。每个功能模块一个独立目录:
workplace/test/
├── test-manifest.yaml
├── modules/
│ ├── auth/
│ │ ├── test-plan.md
│ │ ├── scripts/
│ │ │ ├── login_flow.py
│ │ │ └── register_flow.py
│ │ ├── data.md
│ │ └── reports/
│ │ └── 2026-04-20.md
│ ├── payment/
│ │ ├── test-plan.md
│ │ ├── scripts/
│ │ │ ├── checkout_flow.py
│ │ │ └── refund_flow.py
│ │ ├── data.md
│ │ └── reports/
│ │ └── 2026-04-20.md
│ └── ...
└── shared/
├── env.example.md
├── helpers/
└── reports/
目录职责:
modules/<module>/test-plan.md: 模块级完整流程测试方案。脚本生成前必须先有此文件并经确认。modules/<module>/scripts/: 根据确认后的方案编写的自动化或半自动化测试脚本。modules/<module>/data.md: 真实测试数据准备、账号、订单、配置、清理方式和数据风险说明。modules/<module>/reports/: 每次执行后的验收报告。shared/: 跨模块共用的环境说明、帮助函数和全量报告。test-manifest.yaml: 全量模块清单和上线验收状态索引,不替代模块测试方案。test-manifest.yaml 用于索引模块和上线验收状态,不再承载所有测试用例细节。
version: "2.0"
project:
name: "项目名称"
test_root: "workplace/test"
target_environment: "staging"
modules:
auth:
description: "用户认证模块"
priority: high
requirement_docs:
- "docs/requirements/auth.md"
design_docs:
- "docs/design/auth.md"
module_dir: "workplace/test/modules/auth"
plan: "workplace/test/modules/auth/test-plan.md"
scripts:
- "workplace/test/modules/auth/scripts/login_flow.py"
- "workplace/test/modules/auth/scripts/register_flow.py"
status: active
plan_status: confirmed
last_run: "2026-04-20"
last_result: pass
blockers: []
payment:
description: "支付处理模块"
priority: high
requirement_docs:
- "docs/requirements/payment.md"
design_docs:
- "docs/design/payment.md"
module_dir: "workplace/test/modules/payment"
plan: "workplace/test/modules/payment/test-plan.md"
scripts:
- "workplace/test/modules/payment/scripts/checkout_flow.py"
- "workplace/test/modules/payment/scripts/refund_flow.py"
status: active
plan_status: draft
last_run: null
last_result: pending
blockers:
- "测试支付网关账号未配置"
字段说明:
priority: high / medium / low,上线前优先执行高优先级模块。status: active / skip / pending,控制是否纳入执行。plan_status: draft / confirmed,只有 confirmed 才能生成或修改脚本。last_result: pass / fail / blocked / pending。blockers: 记录影响上线验收的问题。每个模块的 test-plan.md 必须以真实流程验收为中心。
# 用户认证模块测试方案
**模块**: auth
**方案状态**: draft
**目标环境**: staging
**设计依据**:
- docs/requirements/auth.md
- docs/design/auth.md
**创建日期**: 2026-04-20
## 验收目标
- 验证用户注册、登录、会话保持、退出登录在真实部署环境下完整可用。
- 验证用户数据正确写入数据库,并能被后续流程读取。
- 验证关键异常路径不会产生错误状态。
## 环境前提
| 项目 | 要求 | 状态 |
| --- | --- | --- |
| 前端服务 | staging 前端已部署 | 待确认 |
| 后端服务 | staging API 已部署 | 待确认 |
| 数据库 | 可写入测试用户数据 | 待确认 |
| 外部依赖 | 邮件或验证码服务测试通道可用 | 待确认 |
## 测试数据
| 数据项 | 来源 | 用途 | 清理方式 |
| --- | --- | --- | --- |
| 测试用户账号 | 真实创建 | 注册和登录流程 | 测试后删除或标记 |
## 验收场景
| 场景ID | 场景名称 | 优先级 | 类型 | 预期结果 |
| --- | --- | --- | --- | --- |
| auth-flow-001 | 新用户注册后登录 | high | e2e | 用户可注册、登录成功、数据库状态正确 |
| auth-flow-002 | 错误密码登录失败 | high | e2e | 返回明确错误,登录态不创建 |
## 场景流程
### auth-flow-001 新用户注册后登录
1. 使用真实前端页面或真实注册接口提交新用户信息。
2. 验证响应成功,并记录用户 ID。
3. 查询数据库或后台接口确认用户已创建,状态正确。
4. 使用该用户执行登录。
5. 验证登录态、返回用户信息和页面跳转符合设计。
6. 执行退出登录。
7. 清理测试用户或按数据策略标记。
### auth-flow-002 错误密码登录失败
1. 准备一个已存在测试用户。
2. 使用错误密码调用真实登录入口。
3. 验证登录失败响应符合设计。
4. 验证不会创建有效登录态。
5. 验证用户状态未被错误修改。
## 脚本计划
| 脚本路径 | 覆盖场景 | 执行方式 |
| --- | --- | --- |
| scripts/login_flow.py | auth-flow-001, auth-flow-002 | 调用 staging 真实 API |
## 上线阻断标准
- 注册或登录主流程失败。
- 用户数据写入错误或状态不一致。
- 错误密码产生有效登录态。
- 测试环境关键依赖不可用且无法替代验证。
方案规则:
test-plan.md。draft 时不能写脚本;用户确认后改为 confirmed。适用于用户要求为某个功能模块建立上线验收测试。
workplace/test/modules/<module>/ 目录。test-plan.md,状态为 draft。data.md,说明真实测试数据准备和清理方式。test-manifest.yaml,登记模块、方案路径和 plan_status: draft。plan_status 改为 confirmed,再创建脚本。适用于用户已经确认模块测试方案。
modules/<module>/test-plan.md。confirmed,或用户在当前对话中明确确认。scripts/ 下的脚本。test-manifest.yaml 的脚本路径。适用于需求或设计变更后更新上线验收测试。
test-plan.md 和相关文档变更。test-plan.md,状态改为 draft。data.md 中的数据准备和清理策略。test-manifest.yaml 的 plan_status: draft。适用于“上线前测试”“跑全量验收”“真实流程验证”。
test-manifest.yaml。status: active 且 plan_status: confirmed 的模块。priority: high > medium > low 排序。scripts/ 下的脚本,或按方案进行半自动化验证。modules/<module>/reports/<date>.md。shared/reports/<date>-full.md。test-manifest.yaml 的 last_run、last_result 和 blockers。验收结论:
test-manifest.yaml 中所有模块状态。plan_status != confirmed 的模块。last_result 为 fail 或 blocked 的模块。脚本可以使用 Python、Playwright、pytest、Vitest、curl 或项目已有工具链。选择依据是能否稳定执行真实流程,而不是框架偏好。
脚本必须满足:
可以接受的测试替身:
data.md 和报告中明确说明。不应使用:
模块报告示例:
# 用户认证模块验收报告
**模块**: auth
**执行时间**: 2026-04-20 14:30
**目标环境**: staging
**结论**: pass
## 执行统计
| 指标 | 数值 |
| --- | --- |
| 场景总数 | 2 |
| 通过 | 2 |
| 失败 | 0 |
| 阻塞 | 0 |
## 场景结果
| 场景ID | 场景名称 | 结果 | 证据 |
| --- | --- | --- | --- |
| auth-flow-001 | 新用户注册后登录 | pass | user_id=12345 |
| auth-flow-002 | 错误密码登录失败 | pass | response=401 |
## 数据处理
- 测试用户已删除。
- 登录会话已失效。
## 问题和风险
- 无。
全量报告必须包含:
test-plan.md,确认后再改脚本。development
基于已确认的需求简报创建简洁的实现契约。当需求已确认,用户要求技术方案、实现方案、API 或数据设计、代码变更契约时使用。本 skill 只设计方案,不写生产代码。
content-media
将项目想法或功能请求澄清为简洁、聚焦决策的需求简报。当用户想讨论需求、确定范围、把想法整理成开发前输入,或为 tech-design-v2 准备需求材料时使用。本 skill 只产出需求,不做技术方案或代码实现。
development
项目开发 v2 skill 套件的共享政策和交付契约。当维护、审查、分享或挂载 requirements-workshop-v2、tech-design-v2、implementation-planning-v2、plan-execution-v2 使用的公共文档时使用;当任务涉及 v2 提问策略、交付契约或禁止模拟完成策略时也使用。
development
审查项目开发 v2 流程中的需求文档、技术方案、实施计划、执行结果和跨文档一致性。当用户要求评估、审查、检查、对比、把关 requirements-workshop-v2、tech-design-v2、implementation-planning-v2、plan-execution-v2 的产物,或进入下一阶段前确认文档/执行证据是否可靠时使用。本 skill 只做审查和修订建议,不直接生成新需求、技术方案、计划或代码。