3. 基于场景法的电商下单流程测试用例设计
场景法在下单流程中的落点
场景法把一条业务路径拆成“基本流 + 备选流”。电商下单的基本流是:浏览商品 → 加入购物车 → 进入结算页 → 选择优惠券 → 提交订单 → 支付成功 → 订单生成。备选流则是在任一环节出现异常或替代路径,例如库存不足、优惠券失效、支付超时、用户取消支付。测试用例设计的关键,是让每条备选流都能从基本流中“分叉”出来,并最终回到可验证的终态。
基本流与备选流的用例映射
把上面的场景图转成可执行的测试用例,需要为每条路径指定明确的输入数据、操作步骤和预期结果。以下用例表覆盖基本流和三条备选流,每条用例都从“浏览商品”开始,保证端到端可执行。
| 用例编号 | 场景路径 | 关键输入/前置条件 | 操作步骤 | 预期结果 |
|---|---|---|---|---|
| TC-ORDER-01 | 基本流 | 商品库存充足;优惠券有效且满足门槛;支付账户余额充足 | 浏览商品 → 加入购物车 → 结算 → 选择优惠券 → 提交订单 → 完成支付 | 订单状态为“已支付”,优惠金额正确抵扣,库存扣减成功 |
| TC-ORDER-02 | 备选流 A:库存不足 | 商品库存为 0 或提交时被其他用户抢空 | 浏览商品 → 加入购物车 → 结算 → 提交订单 | 页面提示“库存不足”,订单不生成,购物车商品保留 |
| TC-ORDER-03 | 备选流 B:优惠券失效 | 优惠券已过期或商品不满足使用条件 | 浏览商品 → 加入购物车 → 结算 → 选择已失效优惠券 → 提交订单 | 提示“优惠券已失效”,订单按原价计算,用户可重新选择或放弃 |
| TC-ORDER-04 | 备选流 C:支付超时 | 订单提交成功,进入支付页后不完成支付 | 浏览商品 → 加入购物车 → 结算 → 提交订单 → 进入支付页 → 等待超时 | 订单状态变为“待支付”或“已关闭”,库存释放,用户可重新下单 |
用例执行时的关键检查点
- 库存一致性:备选流 A 触发后,确认库存未被扣减,且购物车中商品数量不变。
- 优惠券状态回滚:备选流 B 中,若用户已选中失效券,提交后应清除该券的选中状态,避免重复提交时再次报错。
- 支付超时后的库存释放:备选流 C 中,超时后需验证库存是否回到可用池,防止“超卖”或“少卖”。
- 终态可区分:三条备选流的终态不同(未生成订单 / 原价订单 / 待支付或关闭),用例断言必须精确匹配,不能只检查“有提示”。
场景法用例的覆盖标准:基本流至少 1 条,每条备选流至少 1 条;若备选流内部还有条件分支(如优惠券失效分为“过期”和“不满足门槛”),应拆成独立用例或使用等价类合并,避免遗漏。