购物车测试案例¶
购物车看起来简单,但它连接商品、库存、价格、优惠、登录状态和订单创建。测试时要特别关注数据同步和边界条件。
需求背景¶
用户可以把商品加入购物车,修改数量,勾选商品,删除商品,并从购物车结算。商品库存不足或已下架时不能继续下单。
测试点拆解¶
| 维度 | 测试点 |
|---|---|
| 添加商品 | 单规格、多规格、重复添加、未登录添加 |
| 数量修改 | 加 1、减 1、输入数量、最小值、最大值 |
| 库存 | 库存充足、库存不足、库存为 0、商品下架 |
| 价格 | 单价、总价、优惠价、价格变动 |
| 勾选 | 单选、全选、取消选择、跨店铺选择 |
| 删除 | 删除单个、批量删除、删除后恢复 |
| 数据同步 | 页面显示、接口返回、数据库记录一致 |
| 兼容性 | 刷新页面、重新登录、不同设备查看 |
用例示例¶
| 编号 | 测试点 | 步骤 | 预期结果 |
|---|---|---|---|
| CART-001 | 添加商品 | 商品详情页选择规格并加入购物车 | 购物车数量增加,列表出现该商品 |
| CART-002 | 重复添加 | 同一规格商品加入两次 | 商品数量累加,不出现重复行 |
| CART-003 | 数量减到 1 后继续减 | 商品数量为 1 时点击减号 | 数量保持 1 或提示不能小于 1 |
| CART-004 | 输入超过库存数量 | 输入数量大于库存 | 提示库存不足,数量不应保存为非法值 |
| CART-005 | 商品下架后结算 | 商品加入购物车后后台下架,再结算 | 阻止结算并提示商品已下架 |
| CART-006 | 全选商品 | 点击全选 | 所有可购买商品被选中,总价正确 |
| CART-007 | 删除商品 | 删除购物车中的商品 | 商品从购物车消失,数据库记录同步删除或标记删除 |
数据库校验¶
建议校验:
- 购物车表是否新增记录。
- 用户 ID、商品 ID、规格 ID 是否正确。
- 数量是否和页面一致。
- 删除后是物理删除还是逻辑删除。
- 商品价格变化后购物车展示是否按需求刷新。
测试数据准备¶
| 数据 | 用途 |
|---|---|
| 正常用户 | 验证添加、修改、删除、勾选 |
| 未登录状态 | 验证游客购物车或未登录限制 |
| 库存充足商品 | 验证正常加入购物车 |
| 库存为 1 的商品 | 验证边界数量 |
| 下架商品 | 验证不可结算 |
| 多规格商品 | 验证规格 ID 和价格是否正确 |
如果项目支持优惠券或促销价,还要准备一件有优惠的商品,专门检查购物车总价。
执行步骤示例¶
- 登录正常用户,清空购物车。
- 选择库存充足商品加入购物车。
- 刷新页面,确认商品仍在购物车。
- 修改数量为 2,再改为超过库存的数量。
- 勾选部分商品,检查总价是否只计算已勾选商品。
- 将商品下架或库存改为 0,再尝试结算。
- 删除商品,确认页面、接口、数据库结果一致。
接口与 SQL 校验示例¶
缺陷示例¶
| 字段 | 内容 |
|---|---|
| 标题 | 购物车商品数量可修改为超过库存数量 |
| 前置条件 | 商品库存为 5,购物车已有该商品 1 件 |
| 复现步骤 | 在购物车中将数量改为 6 并保存 |
| 实际结果 | 数量保存成功,总价按 6 件计算 |
| 期望结果 | 提示库存不足,数量不能超过当前可售库存 |
| 影响 | 后续下单可能出现库存超卖或订单失败 |
容易漏测¶
- 商品加入购物车后价格发生变化。
- 商品加入购物车后库存不足。
- 勾选部分商品时总价计算错误。
- 未登录用户加入购物车后登录,数据是否合并。
- 多端同时修改购物车,数据是否同步。
复盘问题¶
- 购物车价格应该保存加入时价格,还是每次按实时价格计算?
- 库存是在加入购物车时扣减,还是下单时扣减?
- 未登录购物车数据应该存在哪里?