题目:电商下单页支持「满减券 + 折扣券 + 现金券」三类优惠按规则叠加使用。现在由你负责这块的测试,你会怎么设计用例?重点会盯哪几个地方?
难度:中级
题型:面试口述题
参考答案/答题要点:
- 先讲方法再讲点:等价类 + 边界值 + 判定表(多条件组合用判定表/因果图,比脑补全组合严谨),叠加场景必须覆盖"互斥/同享"规则矩阵。
- 单券可用性:门槛金额(差 0.01 不可用 / 刚好等于门槛 / 略超)、有效期(开始瞬间、到期最后一秒、已过期、未来生效)、适用商品范围(品类券/单品券/店铺券/平台券)、用户身份限制(新客券、会员券)。
- 叠加与计算顺序:满减 → 折扣 → 现金券的抵扣顺序不同结果不同,要和研发对齐计算规则后再定预期值;多张同类型券是否可叠。
- 金额精度(必考):以分为单位落库、避免浮点误差;优惠总额不得大于订单金额、不能出现负数;0 元单支付流程能否走通;四舍五入还是截断。
- 运费与服务费:门槛是否含运费;优惠后金额低于包邮门槛怎么算。
- 状态流转:下单锁定券 → 支付成功核销 → 取消订单/超时未支付回退,券要能再用且不能重复回退(幂等)。
- 退款场景:部分退款时优惠如何分摊、券是否退回、退回后是否已过期。
-
并发与防刷:同一张券在多端/多设备同时下单只能成功一次;库存券的超发;一人多号薅券的风控与幂等;接口层越权(改
userId领他人券、改券 ID 用高价券)。 - 一致性与非功能:购物车/确认页/订单详情/支付页/App 与 H5 与小程序的金额展示一致;高并发下优惠计算接口的性能;埋点与账单可对账。
- 收尾加分:优惠类需求最容易出资损,会主动提"上线前用线上影子/对账脚本核对,配置灰度开关,准备一键停券预案"。