当所有分析(需求解构、场景树、边界清单、组合矩阵)都已完成,需要把分析结果转化为结构化的测试用例时使用此技能。专注用例结构规范、分类体系、覆盖策略和优先级编排。不要在分析还没做完时就跳到用例生成——没有充分的输入,用例一定是泛泛的。适用于将前面的分析产出物整合为 P0-P3 分级、可追溯的标准格式测试用例。 本技能属于 QA Test Skills 技能集(49 个技能之一),完整工作流体验需安装全套:npx skills add Kokxi/qa-test-skills
编程
测试场景树
试用将需求解构的结果系统化转化为主路径、备选路径、异常路径、业务规则四类测试场景。当业务流程复杂、涉及多个页面跳转或状态变化、需要确保关键路径和异常路径都有覆盖时,应当使用此技能。不要只测"正常流程"——场景树的核心价值是暴露那些"用户可能不会按你预期操作"的分支和异常路径。每个场景都应有唯一ID(TC_{场景模块缩写}_{功能缩写}_{序号})并关联回具体需求。 本技能属于 QA Test Skills 技能集(49 个技能之一),完整工作流体验需安装全套:npx skills add Kokxi/qa-test-skills
它能做什么
将需求解构的结果系统化转化为主路径、备选路径、异常路径、业务规则四类测试场景。当业务流程复杂、涉及多个页面跳转或状态变化、需要确保关键路径和异常路径都有覆盖时,应当使用此技能。不要只测"正常流程"——场景树的核心价值是暴露那些"用户可能不会按你预期操作"的分支和异常路径。每个场景都应有唯一ID(TC_{场景模块缩写}_{功能缩写}_{序号})并关联回具体需求。 本技能属于 QA Test Skills 技能集(49 个技能之一),完整工作流体验需安装全套:npx skills add Kokxi/qa-test-skills
技能文档
⚠️ 安全警告:本技能的示例可能涉及订单号、支付金额、截图、身份证、手机号等敏感数据。 实际使用时请勿粘贴真实生产数据、客户信息或财务凭证;测试前应脱敏/掩码处理。 本技能仅在 workspace/ 输出评估文件,不持久化、不外传、不跨会话复用。
场景树构建
核心原则
用树结构组织测试场景,确保覆盖完整、层次清晰。
场景数量要求(参考值)
关键指标:根据项目复杂度调整
| 复杂度 | 倍数 | 示例(显性5条) |
|---|---|---|
| 简单项目 | ×3 | 场景15个 |
| 中等项目 | ×5 | 场景25个 |
| 复杂项目 | ×7 | 场景35个 |
复杂度判断标准:
- 简单:单模块、低风险、无并发
- 中等:多模块、中风险、少量并发
- 复杂:跨模块、高风险、高并发
场景树结构
根节点:功能模块
├─ 主路径(Happy Path) → 数量:需求数量 × 1
│ ├─ 场景1:正常流程1
│ ├─ 场景2:正常流程2
│ └─ ...
├─ 分支路径(Alternative Path) → 数量:需求数量 × 2
│ ├─ 场景A:分支条件1
│ ├─ 场景B:分支条件2
│ └─ ...
├─ 异常路径(Exception Path) → 数量:需求数量 × 1.5
│ ├─ 场景X:异常情况1
│ ├─ 场景Y:异常情况2
│ └─ ...
└─ 数据流(Data Flow) → 数量:需求数量 × 0.5
├─ 场景α:数据创建
├─ 场景β:数据流转
└─ ...
场景类型覆盖清单
主路径场景
- 核心业务流程是否覆盖?
- 正常用户操作路径是否覆盖?
- 主要功能点是否覆盖?
分支路径场景
- 不同用户角色是否覆盖?
- 不同业务规则是否覆盖?
- 不同配置选项是否覆盖?
- 不同数据状态是否覆盖?
- 不同环境条件是否覆盖?
异常路径场景
- 输入异常是否覆盖?(空值/超长/格式错误)
- 状态异常是否覆盖?(非法状态转换)
- 网络异常是否覆盖?(断网/超时/延迟)
- 依赖异常是否覆盖?(第三方服务故障)
- 并发异常是否覆盖?(数据冲突/资源竞争)
- 资源异常是否覆盖?(内存不足/磁盘满)
数据流场景
- 数据创建是否覆盖?
- 数据读取是否覆盖?
- 数据更新是否覆盖?
- 数据删除是否覆盖?
- 数据同步是否覆盖?
- 数据一致性是否覆盖?
## 构建方法
### 第1步:识别主路径
**问**:用户从开始到结束,最正常的操作路径是什么?
主路径识别:
- 用户起点:用户从哪里开始?
- 核心步骤:必须执行的步骤有哪些?
- 用户终点:用户在哪里结束?
- 成功标志:怎么算完成?
示例(电商下单): 用户浏览商品 → 加入购物车 → 选择地址 → 选择支付 → 确认支付 → 支付成功 → 生成订单
### 第2步:识别分支路径
**问**:在主路径的每一步,有什么条件分支?
分支识别方法:
- 条件判断:if-else条件是什么?
- 用户选择:用户有哪些选择?
- 状态分支:不同状态走不同路径?
- 配置分支:不同配置走不同路径?
示例(电商下单):
- 选择地址:有地址/无地址/新增地址
- 选择支付:微信支付/支付宝/银行卡
- 使用优惠券:有/无/过期
### 第3步:识别异常路径
**问**:在每个步骤,可能出什么问题?怎么恢复?
异常识别方法:
- 输入异常:用户输入错误
- 系统异常:系统故障
- 网络异常:网络问题
- 依赖异常:第三方服务问题
- 并发异常:并发操作问题
示例(电商下单):
- 加入购物车:库存不足
- 选择地址:地址不存在
- 支付:支付失败
- 支付:网络中断
### 第4步:识别数据流
**问**:数据在模块间怎么流转?在哪创建/更新/删除?
数据流识别:
- 数据创建:在哪里创建数据?
- 数据读取:在哪里读取数据?
- 数据更新:在哪里更新数据?
- 数据删除:在哪里删除数据?
- 数据一致性:数据在各模块间是否一致?
示例(电商下单):
- 订单数据:创建订单 → 更新库存 → 生成支付单
- 用户数据:读取地址 → 使用优惠券 → 更新积分
## 场景描述模板
每个场景应包含:
```markdown
### 场景SC-001:[场景名称]
**路径类型**:主路径/分支路径/异常路径/数据流
**前置条件**:
- 条件1
- 条件2
**触发条件**:
- 用户操作/系统事件
**操作步骤**:
1. 步骤1
2. 步骤2
3. 步骤3
**预期结果**:
- 结果1
- 结果2
**数据变化**:
- 数据A:[变化描述]
- 数据B:[变化描述]
**风险等级**:高/中/低
```text
## 场景树示例(登录功能)
登录功能 ├─ 主路径 │ ├─ SC-001:用户名密码登录成功 │ └─ SC-002:手机号验证码登录成功 ├─ 分支路径 │ ├─ SC-003:记住我功能 │ ├─ SC-004:第三方登录 │ └─ SC-005:多因素认证 ├─ 异常路径 │ ├─ SC-006:用户名不存在 │ ├─ SC-007:密码错误 │ ├─ SC-008:验证码过期 │ ├─ SC-009:账号被锁定 │ └─ SC-010:网络异常 └─ 数据流 ├─ SC-011:登录状态存储 ├─ SC-012:Token生成与刷新 └─ SC-013:登录日志记录
## 场景类型速查表
| 场景类型 | 覆盖目标 | 数量参考 | 典型遗漏 |
|---------|---------|---------|---------|
| 主路径 | 核心业务流程完整性 | 需求数 ×1 | 多角色主路径不同 |
| 分支路径 | 条件分支、用户选择 | 需求数 ×2 | 配置项组合、权限分支 |
| 异常路径 | 各类异常处理 | 需求数 ×1.5 | 第三方超时、并发冲突 |
| 数据流 | 数据CRUD + 一致性 | 需求数 ×0.5 | 跨模块数据同步 |
## 输出示例
**场景:测试电商下单流程**
→ 主路径:浏览→加入购物车→下单→支付→完成
→ 分支路径:未登录下单→跳转登录→继续支付
→ 异常路径:下单时库存不足、支付超时、并发下单
→ 数据流:商品信息→订单数据→支付记录→物流信息
**场景:测试用户注册**
→ 主路径:填写信息→验证手机→注册成功
→ 分支路径:手机号已注册→提示已有账号
→ 异常路径:验证码错误、手机号格式不对、网络中断
## 检查清单
场景树构建完成后检查:
- [ ] 主路径是否完整?
- [ ] 分支路径是否覆盖所有条件?
- [ ] 异常路径是否考虑全面?
- [ ] 数据流是否清晰?
- [ ] 场景间是否有重叠?
- [ ] 场景优先级是否标注?
## 场景漂移与处理
场景树常见失控现象及对策:
| 漂移类型 | 表现 | 处理方式 |
|---------|------|---------|
| 场景爆炸 | 分支路径衍生过多,树过于庞大 | 按优先级裁剪,只保留P0-P1分支 |
| 路径遗漏 | 某条分支的关键场景被跳过 | 用需求解构表逐一对照检查 |
| 深度失衡 | 某条分支挖很深,其他分支太浅 | 设定每条分支最大深度 = 主路径深度 ×1.5 |
| 层次混乱 | 主路径里混了异常路径的节点 | 强制按四类重新归类,不允许混排 |
相关技能
将模糊的需求描述系统化拆分为输入、操作、状态、输出、规则五个可测试维度,同时挖掘显性需求之外的那些"没写出来但必须满足"的隐性需求和衍生需求。当用户的需求描述只有一两句话、或者看起来功能很简单但你可能遗漏了什么的时候,一定要用此技能做深度解构。适用于任何测试任务的第二步骤——无论需求文档有多详细,解构之后总能发现盲区。 本技能属于 QA Test Skills 技能集(49 个技能之一),完整工作流体验需安装全套:npx skills add Kokxi/qa-test-skills
当新项目启动需要制定测试方案、或者迭代开始前需要确定"这期怎么测"时使用此技能。根据项目特征(新项目/迭代/重构/紧急修复)、风险分布和资源约束设计分层测试策略,明确测试范围、测试手段、准入准出标准和工具选型。一个好的测试策略让团队知道"测什么、不测什么、为什么"。输出包含风险矩阵、分级测试方案的测试策略文档。 本技能属于 QA Test Skills 技能集(49 个技能之一),完整工作流体验需安装全套:npx skills add Kokxi/qa-test-skills
当脚本化测试覆盖得差不多了、但直觉告诉你"可能还有东西没测到"时使用此技能。用系统化的探索方法(场景漫游、角色扮演、失败路径、标杆对比)来发现预设测试用例覆盖不到的问题。探索式测试不是随便点——它是有明确 charter(任务书)和时长的有目的探索。每次探索需要记录 session 笔记和发现的问题列表。 本技能属于 QA Test Skills 技能集(49 个技能之一),完整工作流体验需安装全套:npx skills add Kokxi/qa-test-skills
当需要挑战已有假设、挖掘隐含约束、发现"所有人都没想过"的测试场景时使用此技能。测试中最常犯的错误是接受了需求文档里的隐含假设——比如"用户一定会有网络"、"输入一定有内容"、"操作顺序一定正确"。用「如果不呢」的深度质疑方式反向思考,暴露那些被默认为"正常"的异常场景。每一个测试场景都应该走一遍"如果这个假设不成立呢"的质疑流程。 本技能属于 QA Test Skills 技能集(49 个技能之一),完整工作流体验需安装全套:npx skills add Kokxi/qa-test-skills
通过构建状态机、数据流图和服务依赖图来理清复杂的业务逻辑和系统边界。当需求文档复杂、涉及多个子系统交互、或者你搞不清楚数据在不同模块之间怎么流转的时候,应当使用此技能。领域建模不是为了画图而画图——它帮你发现那些"需求文档里没写的"隐式业务规则和系统边界。适用于复杂业务流程的测试范围可视化。 本技能属于 QA Test Skills 技能集(49 个技能之一),完整工作流体验需安装全套:npx skills add Kokxi/qa-test-skills