360 Secure SkillHub
360 安全技能中心

qa-scenario-tree

用于 QA 场景设计:基于需求解构表和可选风险评估,按主路径、分支路径、异常路径、数据流四类构建场景树,生成 SC- 编号场景与单场景描述块,并关联 REQ- 需求 ID;含数量建议、参考模板和交付前自检,不产出用例表或执行测试。

kokxi
kokxi
热度 60.23
最近更新 2026-09-29 12:29:50
分类:开发依赖:读写文件 / 内部调用大模型应用场景:工作流 / 模板

安装技能

复制下面的话术发给你的 Agent,它会通过 secure-skills 检索并安装该技能。

执行命令安装此 skill: npx secure-skills-cli add qa-scenario-tree
Metadata
displayName
测试场景树
name
qa-scenario-tree
description
将需求解构的结果系统化转化为主路径、备选路径、异常路径、业务规则四类测试场景。当业务流程复杂、涉及多个页面跳转或状态变化、需要确保关键路径和异常路径都有覆盖时,应当使用此技能。不要只测"正常流程"——场景树的核心价值是暴露那些"用户可能不会按你预期操作"的分支和异常路径。每个场景带唯一 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.
license
MIT
allowed-tools
Read Grep Glob
metadata
{"slug":"qa-scenario-tree","display-name":"测试场景树","version":"1.8.0","when-to-use":"用户说\"构建场景\"、\"测试场景\"、\"场景树\"、\"场景设计\"、\"测试路径\"、\"场景覆盖\"、完成需求解构后需要设计测试、业务流程复杂需要系统化梳理时","related-skills":"{\"upstream\":[\"qa-req-deconstruction\"],\"downstream\":[\"qa-boundary-deep-dive\",\"qa-combination-strategy\",\"qa-state-transition\",\"qa-ai-context-engineering\",\"qa-ai-output-critique\",\"qa-domain-modeling\",\"qa-execution-observation\",\"qa-exploratory-testing\",\"qa-test-case-design\"]}","references":"[\"assets/scenario-template.md\",\"references/scenario-types.md\"]","input-format":"{\"required\":[{\"name\":\"需求解构表\",\"type\":\"object\",\"description\":\"来自qa-req-deconstruction的输出,包含需求ID、显性/隐性/衍生需求\"}],\"optional\":[{\"name\":\"风险评估\",\"type\":\"object\",\"description\":\"来自qa-risk-intuition的输出,包含高风险区域\"}]}","output-format":"{\"traceability\":[\"每个场景带唯一ID:SC-{模块缩写}-{序号}(如 SC-LOGIN-001)\",\"关联需求ID:REQ-{需求模块缩写}-{序号}(REQ- 才是需求前缀,SC- 是场景前缀,TC_ 是用例前缀——三者不可混用)\"],\"structure\":[{\"scenario_tree\":\"场景树:按 主路径/分支路径/异常路径/数据流 四类组织,场景ID树内连续\"},{\"scenario_block\":\"单场景描述块:路径类型|关联需求|前置条件|触发条件|操作步骤|预期结果|数据变化|风险等级\"},\"数量:需求数 ×3(简单)/ ×5(中等)/ ×7(复杂);分支=需求×2、异常=需求×1.5、数据流=需求×0.5,非整数时向下取整\",\"本技能不产出 9 列用例表 —— 用例由 qa-test-case-design 分配 TC_ 编号并生成\",\"覆盖率:标注口径(基于现有需求解构表),禁止\\\"全覆盖/100%\\\"绝对化表述;未覆盖路径标注\\\"未覆盖+原因\\\"\"],\"happy_path\":\"主路径场景\",\"alternative_path\":\"分支路径场景\",\"exception_path\":\"异常路径场景\",\"data_flow\":\"数据流场景\"}","error-recovery-guidance":"{\"on_failure\":\"场景树遗漏异常路径时回退到需求解构补充\",\"retry_behavior\":\"补全异常需求后重新构建场景树\"}","categories":"[\"Development\",\"Requirements\"]","depth-requirement":"{\"reference_value\":\"见正文「场景数量要求」表:以需求数为基准,简单=需求数×3 / 中等=×5 / 复杂=×7(绝对倍数)\",\"minimum\":\"四类路径(主路径/分支路径/异常路径/数据流)至少覆盖3类;未覆盖的类必须标注原因\"}"}

⚠️ 本技能单独使用效果有限,建议配合完整技能集(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. 编号规则

对象 格式 示例 说明
场景 ID SC-{模块缩写}-{序号} SC-LOGIN-001 树内连续,不按类别分段
需求 ID REQ-{需求模块缩写}-{序号} REQ-AUTH-001 每个场景必填关联
用例 ID TC_{模块}_{功能}_{序号} — 本技能不用,用例由 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%"绝对化表述