Day 4 —— 用例设计方法(二):场景法 + 错误推测法 + 判定表
一、场景法(也叫流程分析法)
1. 核心思想
大多数 Bug 不在单个功能,而在功能串起来走的时候。场景法就是按用户真实操作路径设计用例。
2. 两个概念:基本流 + 备选流
| 概念 | 含义 | 例子 |
|---|---|---|
| 基本流 | 一路顺畅走到底的正确路径 | 登录成功→下单→支付成功 |
| 备选流 | 中途出现异常/分歧的分支 |
密码错、库存不足、支付失败
|
基本流 1 条,备选流 n 条,每条基本流和每条备选流都能组合出用例。
3. 举例:登录 → 下单 → 支付
| 流 | 路径 | 类型 |
|---|---|---|
| 基本流 | 登录成功 → 选商品 → 提交订单 → 支付成功 | 基本流 |
| 备选 1 | 密码错误,登录失败 | 备选流 |
| 备选 2 | 商品库存不足,下单失败 | 备选流 |
| 备选 3 | 余额不足,支付失败 | 备选流 |
| 备选 4 | 支付中断后返回,订单是否保留 | 备选流 |
| 备选 5 | 重复提交,是否生成重复订单 | 备选流 |
重点:备选流里的"支付中断""重复提交""超时"这类才是真实项目故障重灾区。
4. 场景法步骤
- 画出主要业务流程(基本流)
- 找出所有可能出错或分叉的节点(备选流)
- 每个分叉点设计用例,覆盖正向 + 异常 + 超时
口诀:一条顺路走到底,岔路口上做文章;正常异常加超时,三条线都别漏。
二、错误推测法
1. 核心思想
靠经验和直觉,猜哪里最容易出错,专门去测。 没有固定公式,全靠积累。
2. 常见"爱出错"的地方(背下来)
| 场景 | 典型问题 |
|---|---|
| 空值/空格 | 只输空格能否提交 |
| 重复提交 | 连点按钮是否生成多条 |
| 特殊字符 | '、;、<script>(SQL 注入/XSS) |
| 极端数值 | 0、负数、超大数、超长字符串 |
| 时间边界 | 跨天、跨月、闰年 2 月 29 |
| 网络异常 | 断网、弱网、超时 |
| 并发 | 两个人同时抢最后一件库存 |
| 权限越权 | A 用户能否看 B 用户订单 |
口诀:空格重复特殊符,极端数值和时间;断网超时和并发,权限越权最容易漏。
3. 举例
测一个"提交订单"按钮,错误推测清单:
- 连点 5 次 → 是否生成 5 个订单?
- 金额填负数 / 0 → 能否提交?
- 商品数量填 999999 → 有无上限校验?
- 断网时点击 → 有无友好提示?
- 篡改请求金额 → 后端是否校验(不只是前端)?
最后一条最值钱:很多 Bug 是"前端校验了、后端没校验",改个请求包就绕过了。
三、判定表(因果图)
1. 什么时候用
当多个条件组合决定一个结果时用。比如"会员折扣",要同时看是否会员、消费金额、是否有优惠券。
2. 判定表结构
| 条件/动作 | 规则1 | 规则2 | 规则3 | 规则4 |
|---|---|---|---|---|
| 是否会员 | 是 | 是 | 否 | 否 |
| 金额≥100 | 是 | 否 | 是 | 否 |
| 打 9 折 | ✓ | |||
| 打 95 折 | ✓ | |||
| 无折扣 | ✓ | ✓ |
做法:列出所有条件 → 列出所有条件组合(2 的 n 次方)→ 填每种的预期结果 → 每种组合一条用例。
3. 判定表 vs 等价类
| 方法 | 解决 | 特点 |
|---|---|---|
| 等价类/边界值 | 单个输入合法不合法 | 单维度 |
| 判定表 | 多个条件组合的结果 | 多维度组合 |
| 场景法 | 多步骤流程 | 时间顺序 |
| 错误推测 | 经验猜错 | 靠积累 |
📋 小结表(Day 4)
| 方法 | 解决什么 | 核心要点 |
|---|---|---|
| 场景法 | 多步骤流程 | 基本流 + 备选流,覆盖异常/超时/重复提交 |
| 错误推测法 | 经验盲区 | 空格、重复点击、特殊字符、极端值、并发、越权 |
| 判定表 | 多条件组合 | 列条件 → 列组合 → 填结果 → 每组一条用例 |
| 对照 | 一个维度用等价类,多维度用判定表,有流程用场景法,没把握用错误推测 | 四种方法按场景选 |
四种方法怎么选:
- 单个输入框校验 → 等价类 + 边界值
- 多条件组合算结果 → 判定表
- 有先后步骤的业务流程 → 场景法
- 不知道还能测什么、想补漏 → 错误推测法
口诀:单输入等价边,多条件判定表;有流程走场景,没思路靠推测。
🔑 口诀
基本流一路顺,备选流找岔口;正常异常加超时,三条线都别漏;空格重复特殊符,极端数值与时间;断网超时加并发,权限越权最易漏;多条件列判定表,组合齐全不漏项。
一句话记:流程用场景、组合用判定、补漏靠推测。
✍️ 练习题(Day 4)
- 场景法里的"基本流"和"备选流"分别指什么?各举一个例子。
- 需求:"用户注册后,邮箱需激活才能登录,激活链接 24 小时内有效。"请用场景法列出 1 条基本流和 3 条备选流。
- 请用错误推测法,为一个"上传头像"功能列出至少 5 个容易出错的测试点。
- 判定表题:某电商促销规则——"是会员且消费满 100 打 8 折;是会员不满 100 但满 50 打 9 折;非会员一律原价"。请画出判定表(条件 + 规则 + 动作)。
- 判断题:错误推测法有严格的公式步骤,任何人都能得出完全相同的用例。(对/错?为什么)
第 4 题参考思路:条件为"是否会员""是否满 100""是否满 50",组合 8 条规则,其中部分组合被前一条优先规则覆盖(涉及规则优先级,判定表里要标出"不可能"或"按优先级取"的情况)。
浙公网安备 33010602011771号