# 历史典型缺陷复盘

> 这些是过去项目中发生过的真实 Bug，生成新用例时，请针对这些逻辑设计防御性测试用例。
>
> **关联知识**：以下缺陷的防御场景已同步到 `common_missed_scenes.md` §6（数据上报与外部系统对接），生成测试点时会自动交叉引用。

### 缺陷 ID: BUG-202607-01--上报阶段依赖链断裂
- **模块**: 数据上报（安徽运八）
- **描述**: 运单第一次上报失败（3次重试全部失败），系统未阻断第二次上报触发，导致第二次上报在第一次上报数据缺失的情况下仍然发出，监管平台返回"上报数据不完整"但系统未正确处理该错误。
- **根因**: 上报阶段间的依赖校验仅在前端做了按钮控制，后端接口缺少前置上报完成状态校验。
- **防御用例**: `验证第一次上报失败后，后端接口层面拒绝第二次/第三次上报请求，返回明确错误码"前置上报未完成"`。`验证三个上报阶段依赖链的每个节点，后端均做了前置状态校验（前端+后端双重拦截）`。
- **关联易漏场景**: `common_missed_scenes.md` → 6.多阶段依赖链

### 缺陷 ID: BUG-202607-02--重试幂等缺陷导致重复上报
- **模块**: 数据上报（安徽运八）
- **描述**: 第一次上报超时后进入自动重试，运营人员在重试期间点击"手动上传"，系统同时发出了两次上报请求，导致监管平台侧出现两条重复运单记录，触发"运单重复"核验异常。
- **根因**: 手动上传和自动重试共用同一上报接口，但缺少分布式锁或幂等键校验。
- **防御用例**: `验证上报重试期间手动触发上传时，系统提示"上报处理中"并拒绝重复提交`。`验证同一运单同一上报阶段在1分钟内只能有一条成功上报记录`。
- **关联易漏场景**: `common_missed_scenes.md` → 6.重试+手动触发并发

### 缺陷 ID: BUG-202607-03--跨模块数据不一致
- **模块**: 数据上报（安徽运八）/ 账户管理
- **描述**: 财务在账户管理模块修改了打款金额（从10000元调整为9500元），但第二次上报仍然发送了旧的10000元金额，导致资金流水核验"金额不匹配"异常。运单管理、支付流水、上报三个模块的数据不同步。
- **根因**: 上报模块在运单装货完成时缓存了合同金额，打款完成后未从支付流水表重新获取实际打款金额，而是使用了缓存的合同金额。
- **防御用例**: `验证第二次上报的资金流水数据来源于支付流水表（非运单表/缓存），上报金额与财务实际打款金额一致`。`验证财务修改打款金额后，上报模块能感知数据变更并使用最新值`。
- **关联易漏场景**: `common_missed_scenes.md` → 6.跨模块数据一致性 / 6.上报数据字段溯源

### 缺陷 ID: BUG-202607-04--省份代码硬编码
- **模块**: 数据上报（安徽运八）
- **描述**: 系统上线安徽运八时，司机信息中的省份代码仍使用云南省代码"28"，而非安徽省代码"34"，导致第一批运单的司机资质核验全部异常。
- **根因**: 省份代码在代码中硬编码为项目默认值（云南省=28），未根据上报目标省份动态切换。
- **防御用例**: `验证安徽运八上报的省份代码为安徽省代码，与项目默认云南代码隔离`。`验证多省份部署场景下，上报数据中省份相关字段（省份代码/行政区划代码）与目标省份一致`。
- **关联易漏场景**: `common_missed_scenes.md` → 6.省份/区域配置隔离
