返回测试成长路线把一句需求推进到可测试状态
风险矩阵决定验证深度 范围从变更向外扩散,但必须有边界
一条退款规则在不同层级的验证
Main Track / Tutorial 04
需求评审与测试方案设计教程
在写用例之前先把规则问清、风险排好、范围定准,让测试投入集中在真正影响用户和资金的地方。
9 个章节商城交易案例评审 + 方案 + 练习
01
需求评审不是找错字
建立共同理解你要让需求变得可实现、可验证、可验收
产品提出“用户支付后可以退款”,还不能直接写用例。你需要继续确认谁能退、何时能退、退多少、失败后怎么办,以及订单、支付记录和库存如何变化。
业务目标为什么要做
明确规则谁在何时做什么
异常约定失败与重试
验收证据如何判断完成
评审的产出不是“测试已知悉”,而是问题清单、确认后的验收标准、风险清单和待办责任人。
02
用六个问题拆解 PRD
从文字到业务模型先读主干
- 谁:游客、会员、客服或系统任务。
- 做什么:登录、下单、支付或退款。
- 为什么:用户目标与业务价值。
再补边界
- 什么条件:库存、金额、时间和权限。
- 结果去哪:页面、接口、数据库和消息。
- 失败怎么办:提示、回滚、重试和补偿。
可执行步骤
- 通读一遍,只标出角色、动作和结果。
- 第二遍圈出金额、数量、时间、状态和权限词。
- 画出登录→下单→支付→退款主流程。
- 为每个节点补充失败、取消、超时和重复操作。
- 把不能唯一判断结果的句子加入问题清单。
03
用场景问题发现需求漏洞
不要替需求做决定商城评审问题示例
| 模块 | 评审问题 | 隐藏风险 |
|---|---|---|
| 登录 | 登录态有效多久?支付前是否二次校验? | 过期、跨端登录、账号冻结 |
| 下单 | 价格与库存以页面还是服务端为准? | 改价、超卖、重复提交 |
| 支付 | 支付超时后订单是什么状态? | 重复扣款、回调乱序、金额不一致 |
| 退款 | 部分退款如何计算优惠和运费? | 超额退款、重复退款、状态回退 |
把模糊描述改成验收标准
模糊:退款成功后更新订单。明确:当支付成功的订单发起整单退款且支付渠道受理时,退款单进入“处理中”;收到成功回调后,订单进入“已退款”,退款金额等于实付金额,库存按约定恢复。
没有被确认的规则写成“待确认”,不要凭经验补成产品决定。评审记录需要保留结论、负责人和截止时间。
04
先按风险决定测试顺序
影响 × 可能性高影响 × 高概率
立即覆盖并设置阻断条件
高影响 × 低概率
验证容灾、监控和补偿
低影响 × 高概率
纳入主要回归
低影响 × 低概率
记录并按资源安排
商城风险排序
- P0:重复支付或超额退款,直接造成资金损失。
- P0:支付成功但订单仍待支付,造成履约和投诉。
- P1:优惠券边界计算错误,影响部分订单金额。
- P1:登录过期后提交未给出可恢复提示。
- P2:退款列表文案换行,功能仍可完成。
风险驱动用例
- 当用户连续点击支付时,只生成一次有效支付并只扣款一次。
- 当退款回调重复到达时,退款状态和金额只更新一次。
- 当支付金额与订单应付金额不一致时,系统拒绝入账并告警。
05
写清测试范围与不测范围
边界可追溯需求变更退款规则
直接影响退款接口
关联回归订单与支付
明确不测真实资金渠道
本次退款需求的范围示例
| 范围 | 内容 | 理由 |
|---|---|---|
| 本次测试 | 登录校验、创建订单、模拟支付、整单退款 | 直接受需求影响的核心交易链路 |
| 关联回归 | 订单列表、库存、优惠券、支付记录 | 共享数据或状态可能被改动 |
| 本次不测 | 真实银行卡扣款、生产短信、物流履约 | 无授权或无可控环境,记录替代验证 |
“不测”不等于“不负责”。要写明原因、剩余风险、替代证据和由谁确认接受。
06
把风险变成分层测试策略
选对验证位置单元金额计算
接口权限与幂等
集成支付回调与消息
端到端用户完整退款
功能与数据
- 验证登录、下单、支付、退款主路径和异常路径。
- 核对订单、支付单、退款单、库存和优惠券。
- 覆盖重复请求、乱序回调与补偿任务。
专项与环境
- 高风险接口补充性能和安全测试。
- Web 与 App 覆盖目标浏览器和系统版本。
- 第三方支付使用沙箱或可控 Mock。
接口结果的统一判断
下面的创建订单和退款申请示例统一使用 HTTP 200。HTTP 200 只表示请求已被服务正常处理;仍要检查业务码是否成功,以及订单、支付和退款状态是否符合规则。
07
估算时间、数据和依赖
方案能够落地按工作拆分估算
- 列出评审、用例设计、数据准备、执行、缺陷回归和报告。
- 按 P0/P1/P2 风险估算用例与轮次,不按页面数拍脑袋。
- 标出支付沙箱、测试账号、Mock、日志权限等依赖。
- 预留联调变化和高风险缺陷回归时间。
- 若时间被压缩,明确减少哪些范围以及残余风险。
小型迭代资源表
| 工作 | 输入 | 输出 |
|---|---|---|
| 评审与设计 | PRD、原型、接口草案 | 问题清单、风险、用例 |
| 环境与数据 | 账号、商品、支付沙箱 | 可重复执行的数据集 |
| 执行与回归 | 可测版本、日志权限 | 结果、缺陷、回归证据 |
| 发布判断 | 修复状态、阻塞项 | 结论与剩余风险 |
08
用准入准出控制测试质量
开始和结束都有条件测试准入
- 需求与验收标准已确认
- 代码自测和冒烟通过
- 环境及依赖可用
- 测试数据与日志权限就绪
测试准出
- P0 用例全部通过
- 阻断缺陷已关闭并回归
- 关联回归结果可追溯
- 剩余风险已有负责人接受
准出不是“没有 Bug”。它是基于明确范围、证据与剩余风险作出的发布判断。
09
完成一份退款测试方案
从评审到决策练习
- 为“支付成功订单支持整单退款”列出 10 个评审问题。
- 画出登录、下单、支付、退款的主流程和三条异常分支。
- 列出 6 个风险并给出优先级与理由。
- 分别写出本次测试、关联回归和不测范围。
- 按单元、接口、集成和端到端设计测试策略。
- 定义准入、准出和阻断发布条件。
需求可测
- 角色清楚
- 规则无歧义
- 异常有约定
- 验收有证据
方案可执行
- 范围明确
- 风险已排序
- 资源已确认
- 依赖有负责人
结论可决策
- 准入准出明确
- 阻断条件明确
- 剩余风险明确
- 记录可追溯