# 历史典型缺陷复盘 > 这些是过去项目中发生过的真实 Bug,生成新用例时,请针对这些逻辑设计防御性测试用例。 ### 缺陷 ID: BUG-202310-05--示例 - **模块**: 购物车 - **描述**: 商品降价后加入购物车,随后商品恢复原价,结算时依然按降价后的价格计算,导致资损。 - **根因**: 购物车缓存了价格,结算时未重新从商品中心获取最新价格。 - **防御用例**: `验证商品加入购物车后,后台修改价格,结算时系统自动更新为最新价格`。 ### 缺陷 ID: BUG-202607-01--上报阶段依赖链断裂 - **模块**: 数据上报(安徽运八) - **描述**: 运单第一次上报失败(3次重试全部失败),系统未阻断第二次上报触发,导致第二次上报在第一次上报数据缺失的情况下仍然发出,监管平台返回"上报数据不完整"但系统未正确处理该错误。 - **根因**: 上报阶段间的依赖校验仅在前端做了按钮控制,后端接口缺少前置上报完成状态校验。 - **防御用例**: `验证第一次上报失败后,后端接口层面拒绝第二次/第三次上报请求,返回明确错误码"前置上报未完成"`。`验证三个上报阶段依赖链的每个节点,后端均做了前置状态校验(前端+后端双重拦截)`。 ### 缺陷 ID: BUG-202607-02--重试幂等缺陷导致重复上报 - **模块**: 数据上报(安徽运八) - **描述**: 第一次上报超时后进入自动重试,运营人员在重试期间点击"手动上传",系统同时发出了两次上报请求,导致监管平台侧出现两条重复运单记录,触发"运单重复"核验异常。 - **根因**: 手动上传和自动重试共用同一上报接口,但缺少分布式锁或幂等键校验。 - **防御用例**: `验证上报重试期间手动触发上传时,系统提示"上报处理中"并拒绝重复提交`。`验证同一运单同一上报阶段在1分钟内只能有一条成功上报记录`。 ### 缺陷 ID: BUG-202607-03--跨模块数据不一致 - **模块**: 数据上报(安徽运八)/ 账户管理 - **描述**: 财务在账户管理模块修改了打款金额(从10000元调整为9500元),但第二次上报仍然发送了旧的10000元金额,导致资金流水核验"金额不匹配"异常。运单管理、支付流水、上报三个模块的数据不同步。 - **根因**: 上报模块在运单装货完成时缓存了合同金额,打款完成后未从支付流水表重新获取实际打款金额,而是使用了缓存的合同金额。 - **防御用例**: `验证第二次上报的资金流水数据来源于支付流水表(非运单表/缓存),上报金额与财务实际打款金额一致`。`验证财务修改打款金额后,上报模块能感知数据变更并使用最新值`。 ### 缺陷 ID: BUG-202607-04--省份代码硬编码 - **模块**: 数据上报(安徽运八) - **描述**: 系统上线安徽运八时,司机信息中的省份代码仍使用云南省代码"28",而非安徽省代码"34",导致第一批运单的司机资质核验全部异常。 - **根因**: 省份代码在代码中硬编码为项目默认值(云南省=28),未根据上报目标省份动态切换。 - **防御用例**: `验证安徽运八上报的省份代码为安徽省代码,与项目默认云南代码隔离`。`验证多省份部署场景下,上报数据中省份相关字段(省份代码/行政区划代码)与目标省份一致`。