返回测试成长路线
Main Track / Tutorial 04

需求评审与测试方案设计教程

在写用例之前先把规则问清、风险排好、范围定准,让测试投入集中在真正影响用户和资金的地方。

9 个章节商城交易案例评审 + 方案 + 练习
01

需求评审不是找错字

建立共同理解

你要让需求变得可实现、可验证、可验收

产品提出“用户支付后可以退款”,还不能直接写用例。你需要继续确认谁能退、何时能退、退多少、失败后怎么办,以及订单、支付记录和库存如何变化。

把一句需求推进到可测试状态
业务目标为什么要做
明确规则谁在何时做什么
异常约定失败与重试
验收证据如何判断完成
评审的产出不是“测试已知悉”,而是问题清单、确认后的验收标准、风险清单和待办责任人。
02

用六个问题拆解 PRD

从文字到业务模型

先读主干

  • 谁:游客、会员、客服或系统任务。
  • 做什么:登录、下单、支付或退款。
  • 为什么:用户目标与业务价值。

再补边界

  • 什么条件:库存、金额、时间和权限。
  • 结果去哪:页面、接口、数据库和消息。
  • 失败怎么办:提示、回滚、重试和补偿。

可执行步骤

  1. 通读一遍,只标出角色、动作和结果。
  2. 第二遍圈出金额、数量、时间、状态和权限词。
  3. 画出登录→下单→支付→退款主流程。
  4. 为每个节点补充失败、取消、超时和重复操作。
  5. 把不能唯一判断结果的句子加入问题清单。
03

用场景问题发现需求漏洞

不要替需求做决定

商城评审问题示例

模块评审问题隐藏风险
登录登录态有效多久?支付前是否二次校验?过期、跨端登录、账号冻结
下单价格与库存以页面还是服务端为准?改价、超卖、重复提交
支付支付超时后订单是什么状态?重复扣款、回调乱序、金额不一致
退款部分退款如何计算优惠和运费?超额退款、重复退款、状态回退

把模糊描述改成验收标准

模糊:退款成功后更新订单。明确:当支付成功的订单发起整单退款且支付渠道受理时,退款单进入“处理中”;收到成功回调后,订单进入“已退款”,退款金额等于实付金额,库存按约定恢复。

没有被确认的规则写成“待确认”,不要凭经验补成产品决定。评审记录需要保留结论、负责人和截止时间。
04

先按风险决定测试顺序

影响 × 可能性
风险矩阵决定验证深度
高影响 × 高概率

立即覆盖并设置阻断条件

高影响 × 低概率

验证容灾、监控和补偿

低影响 × 高概率

纳入主要回归

低影响 × 低概率

记录并按资源安排

商城风险排序

  • P0:重复支付或超额退款,直接造成资金损失。
  • P0:支付成功但订单仍待支付,造成履约和投诉。
  • P1:优惠券边界计算错误,影响部分订单金额。
  • P1:登录过期后提交未给出可恢复提示。
  • P2:退款列表文案换行,功能仍可完成。

风险驱动用例

  • 当用户连续点击支付时,只生成一次有效支付并只扣款一次。
  • 当退款回调重复到达时,退款状态和金额只更新一次。
  • 当支付金额与订单应付金额不一致时,系统拒绝入账并告警。
05

写清测试范围与不测范围

边界可追溯
范围从变更向外扩散,但必须有边界
需求变更退款规则
直接影响退款接口
关联回归订单与支付
明确不测真实资金渠道

本次退款需求的范围示例

范围内容理由
本次测试登录校验、创建订单、模拟支付、整单退款直接受需求影响的核心交易链路
关联回归订单列表、库存、优惠券、支付记录共享数据或状态可能被改动
本次不测真实银行卡扣款、生产短信、物流履约无授权或无可控环境,记录替代验证
“不测”不等于“不负责”。要写明原因、剩余风险、替代证据和由谁确认接受。
06

把风险变成分层测试策略

选对验证位置
一条退款规则在不同层级的验证
单元金额计算
接口权限与幂等
集成支付回调与消息
端到端用户完整退款

功能与数据

  • 验证登录、下单、支付、退款主路径和异常路径。
  • 核对订单、支付单、退款单、库存和优惠券。
  • 覆盖重复请求、乱序回调与补偿任务。

专项与环境

  • 高风险接口补充性能和安全测试。
  • Web 与 App 覆盖目标浏览器和系统版本。
  • 第三方支付使用沙箱或可控 Mock。

接口结果的统一判断

下面的创建订单和退款申请示例统一使用 HTTP 200。HTTP 200 只表示请求已被服务正常处理;仍要检查业务码是否成功,以及订单、支付和退款状态是否符合规则。

07

估算时间、数据和依赖

方案能够落地

按工作拆分估算

  1. 列出评审、用例设计、数据准备、执行、缺陷回归和报告。
  2. 按 P0/P1/P2 风险估算用例与轮次,不按页面数拍脑袋。
  3. 标出支付沙箱、测试账号、Mock、日志权限等依赖。
  4. 预留联调变化和高风险缺陷回归时间。
  5. 若时间被压缩,明确减少哪些范围以及残余风险。

小型迭代资源表

工作输入输出
评审与设计PRD、原型、接口草案问题清单、风险、用例
环境与数据账号、商品、支付沙箱可重复执行的数据集
执行与回归可测版本、日志权限结果、缺陷、回归证据
发布判断修复状态、阻塞项结论与剩余风险
08

用准入准出控制测试质量

开始和结束都有条件

测试准入

  • 需求与验收标准已确认
  • 代码自测和冒烟通过
  • 环境及依赖可用
  • 测试数据与日志权限就绪

测试准出

  • P0 用例全部通过
  • 阻断缺陷已关闭并回归
  • 关联回归结果可追溯
  • 剩余风险已有负责人接受
准出不是“没有 Bug”。它是基于明确范围、证据与剩余风险作出的发布判断。
09

完成一份退款测试方案

从评审到决策

练习

  1. 为“支付成功订单支持整单退款”列出 10 个评审问题。
  2. 画出登录、下单、支付、退款的主流程和三条异常分支。
  3. 列出 6 个风险并给出优先级与理由。
  4. 分别写出本次测试、关联回归和不测范围。
  5. 按单元、接口、集成和端到端设计测试策略。
  6. 定义准入、准出和阻断发布条件。

需求可测

  • 角色清楚
  • 规则无歧义
  • 异常有约定
  • 验收有证据

方案可执行

  • 范围明确
  • 风险已排序
  • 资源已确认
  • 依赖有负责人

结论可决策

  • 准入准出明确
  • 阻断条件明确
  • 剩余风险明确
  • 记录可追溯