agentleFS
KokxiKokxi/qa-test-skills/skills/qa-scenario-tree/SKILL.md

qa-scenario-tree

Skill31 starsChanged 48 days agoMITView on GitHub

将需求解构的结果系统化转化为主路径、备选路径、异常路径、业务规则四类测试场景。当业务流程复杂、涉及多个页面跳转或状态变化、需要确保关键路径和异常路径都有覆盖时,应当使用此技能。不要只测"正常流程"——场景树的核心价值是暴露那些"用户可能不会按你预期操作"的分支和异常路径。每个场景带唯一 ID(SC-{模块缩写}-{序号})并关联回需求 ID(REQ-)。 触发场景:构建场景、测试场景、场景树、场景设计、测试路径、场景覆盖、业务流程复杂需要系统化梳理时。 Use when the user asks about: building a test scenario tree — main path, alternate path, exception path, and data flow scenarios with traceable SC-/REQ- IDs.

The file

Files
SKILL.md

⚠️ 本技能单独使用效果有限,建议配合完整技能集(12 步工作流)使用。安装:npx skills add Kokxi/qa-test-skills

⚠️ 安全警告:本技能的示例可能涉及订单号、支付金额、截图、身份证、手机号等敏感数据。 实际使用时请勿粘贴真实生产数据、客户信息或财务凭证;测试前应脱敏/掩码处理。 本技能仅在 workspace/ 输出评估文件,不持久化、不外传、不跨会话复用。

场景树构建

核心原则

用树结构组织测试场景,确保覆盖完整、层次清晰。

不要只测正常流程——场景树的核心价值是暴露那些"用户可能不会按你预期操作"的分支和异常路径。

1. 四类路径速查

路径类型覆盖目标数量最容易漏
主路径核心业务流程完整性需求数 ×1多角色主路径不同
分支路径条件分支、用户选择需求数 ×2配置项组合、权限分支
异常路径各类异常处理需求数 ×1.5第三方超时后的恢复能力
数据流数据 CRUD + 跨模块一致性需求数 ×0.5跨模块数据同步断链

非整数时向下取整(5 条需求 → 异常 7 条、数据流 2 条),不要为凑数造半条场景。 四类至少覆盖 3 类,未覆盖的类必须写明原因——四类全上的场景树在真实项目里很少。

2. 场景数量要求

关键指标:以需求数为基准,按项目复杂度放大。

复杂度倍数示例(需求 5 条)复杂度判断标准
简单项目×3场景 15 个单模块、低风险、无并发
中等项目×5场景 25 个多模块、中风险、少量并发
复杂项目×7场景 35 个跨模块、高风险、高并发

3. 编号规则

对象格式示例说明
场景 IDSC-{模块缩写}-{序号}SC-LOGIN-001树内连续,不按类别分段
需求 IDREQ-{需求模块缩写}-{序号}REQ-AUTH-001每个场景必填关联
用例 IDTC_{模块}_{功能}_{序号}—本技能不用,用例由 qa-test-case-design 分配

三者不可混用。历史版本本技能的 traceability 把"关联需求ID"写成了 TC_ 前缀, 已修正为 REQ-。

4. 加载时机

需要时才读,不要一上来全读:

什么时候读读哪个
展开某一类场景的完整覆盖清单,或按四步法逐类构建references/scenario-types.md(四类详解 + 构建方法 + 漂移处理)
写场景树或场景描述块assets/scenario-template.md(树骨架 + 描述块 + 填写要求 + 自检)

5. 产出

场景树骨架:

登录功能
├─ 主路径
│   ├─ SC-LOGIN-001:用户名密码登录成功
│   └─ SC-LOGIN-002:手机号验证码登录成功
├─ 分支路径
│   ├─ SC-LOGIN-003:记住我
│   ├─ SC-LOGIN-004:第三方登录
│   └─ SC-LOGIN-005:多因素认证
├─ 异常路径
│   ├─ SC-LOGIN-006:用户名不存在
│   ├─ SC-LOGIN-007:密码错误
│   ├─ SC-LOGIN-008:验证码过期
│   ├─ SC-LOGIN-009:账号被锁定
│   └─ SC-LOGIN-010:网络中断
└─ 数据流
    ├─ SC-LOGIN-011:登录状态存储
    ├─ SC-LOGIN-012:Token 生成与刷新
    └─ SC-LOGIN-013:登录日志记录

单场景描述块:

### SC-LOGIN-014 — 支付回调超时后的订单状态

- **路径类型**:异常路径
- **关联需求**:REQ-PAY-003
- **前置条件**:订单处于"支付中"已 30 分钟;回调地址注入 3 秒延迟
- **触发条件**:用户点击支付,网关响应超时
- **操作步骤**:1) 发起支付注入延迟 2) 等待超时 3) 查订单状态 4) 手动补发回调
- **预期结果**:超时后订单进入"支付中"而非判失败;补发后转"已支付"不二次扣款;
  30 分钟无回调则自动关单并释放库存
- **数据变化**:订单 支付中→已支付;支付单唯一无重复;库存净扣减 1
- **风险等级**:高(资损)

完整模板与填写要求见 assets/scenario-template.md。

本技能不产出 9 列用例表——场景到用例的转换由 qa-test-case-design 完成。

6. 交付前自检

  • 四类路径都有场景;某类不适用时写"不适用 + 原因"
  • 场景 ID 唯一、树内连续、格式 SC-{模块}-{序号},无 TC_ 混用
  • 每个场景关联到 REQ- 需求 ID,无孤儿场景
  • 场景数达到数量要求;小数维度已向下取整
  • 异常路径均验证了恢复能力(报错后状态、能否重试、重试有无重复副作用)
  • 数据流场景逐个数据对象写了前后状态
  • 无主路径/异常路径混排
  • 覆盖率已标注口径,无"全覆盖/100%"绝对化表述

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.