安徽运八需求 覆盖率审计
审计日期: 2026-07-13
审计范围: 需求文档 (requirement.md) → 测试点 (103个) → 测试用例 (128个) → 风险评估 (2项)
审计方法: 四维追溯矩阵 + 风险覆盖核查 + 覆盖热力图
覆盖概览
| 指标 |
值 |
目标 |
状态 |
| 需求→测试点覆盖率 |
93.75% (45/48) |
>= 95% |
FAIL |
| P0测试点→用例覆盖率 |
100% (25/25) |
100% |
PASS |
| P1测试点→用例覆盖率 |
100% (50/50) |
>= 90% |
PASS |
| P0风险覆盖率 |
N/A (无P0风险项) |
100% |
PASS |
| P1风险覆盖率 |
100% (1/1) |
>= 90% |
PASS |
| 过度覆盖率 |
0% (0/128) |
<= 5% |
PASS |
结论: 需求→测试点覆盖率 93.75% 未达到 95% 门槛,存在3个覆盖缺口需补充。P0 测试点→用例覆盖率 100% 达标,风险覆盖率达标,无过度覆盖。
覆盖缺口
缺口 GAP-001: 第一次上报列表字段完整性 — 无测试点
- 需求条目: REQ-B-07 (需求文档 Section 2.2 "列表字段")
- 缺口类型: 无测试点覆盖
- 风险等级: P1
- 详细说明: 需求明确列出第一次上报列表页的14个字段(货源单号、运单号、托运单号、车牌号、司机姓名、托运方名称、业务类型、货物名称、装货地址、卸货地址、运输里程、合同编号、上报状态、操作)。其他模块(看板/第二次/第三次/ETC/申诉/日志)均有列表字段完整性的测试点(TP-A-008, TP-C-004, TP-D-002, TP-E-002, TP-F-002, TP-G-005),但第一次上报模块缺少对应的列表字段完整性测试点。现有 TP-A-008 覆盖的是看板列表字段(不同字段集合),TP-B-011/012 覆盖的是详情弹窗字段(非列表)。
- 对比: 同为"列表字段"需求项,第二次上报有 TP-C-004,第三次上报有 TP-D-002,ETC 有 TP-E-002,仅第一次上报缺失。
- 建议: 新增测试点 TP-B-020,验证第一次上报列表页14个字段完整且顺序与需求一致。对应新增用例覆盖。
缺口 GAP-002: 第二次上报自动重试机制 — 无测试点
- 需求条目: REQ-C-05 (需求文档 Section 2.3 "特殊说明" 第4条)
- 缺口类型: 无测试点覆盖
- 风险等级: P1
- 详细说明: 需求明确要求"若上报失败,系统会自动重试(最多3次),若仍失败则告警通知运营人员"。其他上报阶段均已有自动重试测试点(第一次: TP-B-007, 第三次: TP-D-007, ETC: TP-E-006),但第二次上报模块缺少对应的自动重试测试点。第二次上报是核验项最多的阶段(7类核验),也是最容易出现异常的环节,重试机制缺失覆盖是高风险的遗漏。
- 对比: 三阶段+ETC共4个上报入口,第一次/第三次/ETC均有重试测试点,仅第二次缺失。
- 建议: 新增测试点 TP-C-023,验证第二次上报失败后自动重试最多3次、间隔递增、全部失败后告警。对应新增用例覆盖。
缺口 GAP-003: 第二次上报详情弹窗分组字段完整性 — 无测试点
- 需求条目: REQ-C-08 (需求文档 Section 2.3 "详情弹窗字段分组")
- 缺口类型: 无测试点覆盖
- 风险等级: P2
- 详细说明: 需求明确定义第二次上报详情弹窗的6个分组,其中"资金流水信息"分组包含10个必选字段(支付金额、支付方式、支付时间、付款方名称、收款方名称、收款人、收款账号、收款账号类型、流水号、支付状态)和"车辆轨迹信息"分组包含6个必选字段(定位类型、定位时间、定位地点、经度、纬度、轨迹类型)。现有 TP-C-004 覆盖的是列表字段(14个列表字段),而非详情弹窗分组字段。其他模块的详情弹窗均有字段完整性测试点(第一次: TP-B-011/012, 第三次: TP-D-003, ETC: TP-E-003, 申诉: TP-F-004),仅第二次上报缺失。
- 对比: 同为"详情弹窗字段分组"需求项,第一次上报有 TP-B-011/012,第三次上报有 TP-D-003,仅第二次上报缺失独立的详情弹窗测试点。
- 建议: 新增测试点 TP-C-024,验证第二次上报详情弹窗6个分组(运单/托运方/收货方/资金流水/车辆轨迹/异常)的字段完整性和数据正确性。资金流水10字段和车辆轨迹6字段需重点验证。对应新增用例覆盖。
需求→测试点 追溯矩阵
模块A: 上报运单看板 (7条需求)
| 需求条目 |
需求描述 |
测试点 |
覆盖状态 |
| REQ-A-01 |
看板模糊搜索(运单号/托运单号/货源单号) |
TP-A-001 |
PASS |
| REQ-A-02 |
看板按上报阶段筛选(全部/第一次/第二次/第三次) |
TP-A-002 |
PASS |
| REQ-A-03 |
看板按核验状态筛选(全部/异常/通过) |
TP-A-003 |
PASS |
| REQ-A-04 |
看板按申诉状态筛选(全部/未申诉/申诉中/申诉通过/申诉驳回) |
TP-A-004 |
PASS |
| REQ-A-05 |
操作按钮(查询/重置/导出) |
TP-A-001, TP-A-006, TP-A-007 |
PASS |
| REQ-A-06 |
看板列表14字段 |
TP-A-008 |
PASS |
| REQ-A-07 |
操作列(申诉/进度/详情) + 详情弹窗分组 |
TP-A-010, TP-A-011 |
PASS |
模块B: 第一次上报-装货完成 (9条需求)
| 需求条目 |
需求描述 |
测试点 |
覆盖状态 |
| REQ-B-01 |
装货完成后自动触发(仅安徽税源地) |
TP-B-001, TP-B-002 |
PASS |
| REQ-B-02 |
上报数据包含7个子对象必选字段 |
TP-B-001, TP-B-003 |
PASS |
| REQ-B-03 |
核验通过后自动调用修改字段接口 |
TP-B-006 |
PASS |
| REQ-B-04 |
上报失败自动重试最多3次 |
TP-B-007 |
PASS |
| REQ-B-05 |
全部重试失败后通知运营人员 |
TP-B-008 |
PASS |
| REQ-B-06 |
上报状态规则+标签颜色 |
TP-B-009, TP-B-010 |
PASS |
| REQ-B-07 |
第一次上报列表14字段 |
无 |
GAP |
| REQ-B-08 |
详情弹窗按子对象分组(含异常信息) |
TP-B-011, TP-B-012, TP-B-013 |
PASS |
| REQ-B-09 |
手动上传按钮(仅上传失败状态) |
TP-B-009 |
PASS |
模块C: 第二次上报-打款完成 (10条需求)
| 需求条目 |
需求描述 |
测试点 |
覆盖状态 |
| REQ-C-01 |
打款完成后自动触发 |
TP-C-001 |
PASS |
| REQ-C-02 |
上报数据(运抵/资金流水/合同/轨迹) |
TP-C-001 |
PASS |
| REQ-C-03 |
资金流水单号重复系统自动检查 |
TP-C-014, TP-C-015 |
PASS |
| REQ-C-04 |
补传轨迹功能 |
TP-C-022 |
PASS |
| REQ-C-05 |
上报失败自动重试最多3次+告警 |
无(告警部分间接覆盖) |
GAP |
| REQ-C-06 |
第二次上报列表字段 |
TP-C-004 |
PASS |
| REQ-C-07 |
收款账号类型(个人/对公)+标签颜色 |
TP-C-005 |
PASS |
| REQ-C-08 |
详情弹窗6分组字段完整性 |
无 |
GAP |
| REQ-C-09 |
7类核验(通过+异常各14场景) |
TP-C-006~TP-C-019 |
PASS |
| REQ-C-10 |
第二次上报依赖第一次完成 |
TP-C-020 |
PASS |
模块D: 第三次上报-开票完成 (7条需求)
| 需求条目 |
需求描述 |
测试点 |
覆盖状态 |
| REQ-D-01 |
开票完成后触发(依赖第二次) |
TP-D-001, TP-D-005 |
PASS |
| REQ-D-02 |
上报数据(运单+发票+油气发票) |
TP-D-001, TP-D-004 |
PASS |
| REQ-D-03 |
增值税发票验证失败处理 |
TP-D-006 |
PASS |
| REQ-D-04 |
上报失败自动重试最多3次+告警 |
TP-D-007 |
PASS |
| REQ-D-05 |
第三次上报列表11字段 |
TP-D-002 |
PASS |
| REQ-D-06 |
详情弹窗字段分组(发票17字段+油气发票) |
TP-D-003, TP-D-008 |
PASS |
| REQ-D-07 |
发票金额精度校验(价税合计2位小数) |
TP-D-010 |
PASS |
模块E: ETC发票上传 (6条需求)
| 需求条目 |
需求描述 |
测试点 |
覆盖状态 |
| REQ-E-01 |
ETC发票上传触发 |
TP-E-001 |
PASS |
| REQ-E-02 |
税务抵扣前置条件 |
TP-E-004 |
PASS |
| REQ-E-03 |
ETC发票验证失败处理 |
TP-E-005 |
PASS |
| REQ-E-04 |
上报失败自动重试最多3次+告警 |
TP-E-006 |
PASS |
| REQ-E-05 |
ETC上传列表11字段 |
TP-E-002 |
PASS |
| REQ-E-06 |
详情弹窗3分组(运单7+ETC18+异常4) |
TP-E-003 |
PASS |
模块F: 异常申诉功能 (5条需求)
| 需求条目 |
需求描述 |
测试点 |
覆盖状态 |
| REQ-F-01 |
申诉完整闭环(异常查询→发起→反馈→判断) |
TP-F-001, TP-F-003 |
PASS |
| REQ-F-02 |
申诉列表13字段 |
TP-F-002 |
PASS |
| REQ-F-03 |
申诉详情弹窗5分组字段 |
TP-F-004 |
PASS |
| REQ-F-04 |
申诉复核说明(省平台复核,驳回可重新申诉) |
TP-F-006 |
PASS |
| REQ-F-05 |
异常代码一览表映射 |
TP-F-011 |
PASS |
模块G: 上报日志 (4条需求)
| 需求条目 |
需求描述 |
测试点 |
覆盖状态 |
| REQ-G-01 |
查询条件(单号/阶段/结果/时间范围) |
TP-G-001~TP-G-004 |
PASS |
| REQ-G-02 |
日志列表9字段 |
TP-G-005 |
PASS |
| REQ-G-03 |
详情弹窗(完整请求/响应报文) |
TP-G-006 |
PASS |
| REQ-G-04 |
所有上报接口调用记录全覆盖 |
TP-G-007 |
PASS |
跨模块需求
| 需求条目 |
需求描述 |
测试点 |
覆盖状态 |
| REQ-X-01 |
三阶段依赖链完整性 |
TP-B-005, TP-C-020, TP-D-005, TP-X-001 |
PASS |
| REQ-X-02 |
非安徽税源地不上报 |
TP-B-002, TP-X-004 |
PASS |
| REQ-X-03 |
多省份数据隔离 |
TP-X-005 |
PASS |
测试点→用例 追溯矩阵
完整103条追溯见测试用例文件内置映射表(第199-305行),以下为P0测试点专项核查。
P0测试点覆盖确认 (25/25 = 100%)
| P0测试点 |
描述 |
对应用例 |
覆盖状态 |
| TP-A-001 |
看板模糊搜索 |
AH_REPORT_DASH_001, 002, 003 |
PASS |
| TP-B-001 |
装货完成后自动触发第一次上报 |
AH_REPORT_R1_001 |
PASS |
| TP-B-002 |
仅安徽税源地运单触发 |
AH_REPORT_R1_002, 003 |
PASS |
| TP-B-004 |
省份代码=34(防历史缺陷) |
AH_REPORT_R1_003, 006 |
PASS |
| TP-B-005 |
第一次是后续前置条件(防历史缺陷) |
AH_REPORT_R1_007, 008 |
PASS |
| TP-B-014 |
第一次上报幂等性(防历史缺陷) |
AH_REPORT_R1_013, 014, CROSS_006 |
PASS |
| TP-C-001 |
打款完成后自动触发第二次上报 |
AH_REPORT_R2_001 |
PASS |
| TP-C-002 |
资金流水数据来源支付流水表(防历史缺陷) |
AH_REPORT_R2_002 |
PASS |
| TP-C-003 |
财务修改金额后使用最新金额(防历史缺陷) |
AH_REPORT_R2_003 |
PASS |
| TP-C-006 |
运单重复核验—通过场景 |
AH_REPORT_R2_005 |
PASS |
| TP-C-007 |
运单重复核验—异常场景 |
AH_REPORT_R2_006 |
PASS |
| TP-C-020 |
第二次依赖第一次完成(防历史缺陷) |
AH_REPORT_R2_024 |
PASS |
| TP-C-021 |
第二次上报幂等性(防历史缺陷) |
AH_REPORT_R2_025, CROSS_006 |
PASS |
| TP-D-001 |
开票完成后触发第三次上报 |
AH_REPORT_R3_001 |
PASS |
| TP-D-005 |
第三次依赖第二次完成(防历史缺陷) |
AH_REPORT_R3_006, 007 |
PASS |
| TP-E-001 |
ETC发票上传触发 |
AH_REPORT_ETC_001 |
PASS |
| TP-E-004 |
税务抵扣前置条件 |
AH_REPORT_ETC_004 |
PASS |
| TP-F-001 |
申诉完整闭环 |
AH_REPORT_APL_001 |
PASS |
| TP-F-003 |
申诉状态流转全路径 |
AH_REPORT_APL_004, 005 |
PASS |
| TP-G-001 |
日志按单号模糊搜索 |
AH_REPORT_LOG_001, 002 |
PASS |
| TP-G-002 |
日志按上报阶段筛选 |
AH_REPORT_LOG_003 |
PASS |
| TP-X-001 |
三阶段依赖链端到端(防历史缺陷) |
AH_REPORT_CROSS_001 |
PASS |
| TP-X-002 |
多模块数据一致性(防历史缺陷) |
AH_REPORT_CROSS_002 |
PASS |
| TP-X-003 |
安徽运八全流程完整链路 |
AH_REPORT_CROSS_003 |
PASS |
| TP-X-004 |
非安徽税源地全流程不上报 |
AH_REPORT_CROSS_004 |
PASS |
P1测试点覆盖核查 (50/50 = 100%)
全部50个P1测试点均有对应用例覆盖,详见测试用例文件内置映射表。抽查5个高风险P1测试点:
| P1测试点 |
描述 |
对应用例 |
覆盖状态 |
| TP-B-003 |
第一次上报建单信息格式校验 |
AH_REPORT_R1_004, 005, 021 (3条) |
PASS |
| TP-B-007 |
第一次上报自动重试3次 |
AH_REPORT_R1_010 |
PASS |
| TP-C-019 |
轨迹合规核验—异常(点位不足) |
AH_REPORT_R2_022, 023 (2条) |
PASS |
| TP-D-006 |
增值税发票验证失败 |
AH_REPORT_R3_008, 009 (2条) |
PASS |
| TP-E-007 |
ETC税额计算精度(资损风险) |
AH_REPORT_ETC_008 |
PASS |
风险覆盖审计
风险矩阵覆盖
| 风险ID |
等级 |
风险描述 |
覆盖测试点 |
覆盖用例 |
覆盖状态 |
| RISK-FINANCIAL |
P1 |
ETC税额计算/发票金额精度/打款金额数据溯源,涉及资损 |
TP-C-002, TP-C-003, TP-D-010, TP-E-007 |
AH_REPORT_R2_002, R2_003, R3_012, ETC_008 |
PASS |
| RISK-AVAILABILITY |
P2 |
监管平台接口超时/弱网/服务不可用导致上报中断 |
TP-B-007, TP-B-015, TP-B-016, TP-D-007, TP-E-006, TP-F-013 |
AH_REPORT_R1_010, R1_015, R1_016, R3_010, ETC_007, APL_015 |
PASS |
风险覆盖统计
| 风险等级 |
总数 |
已覆盖 |
覆盖率 |
目标 |
状态 |
| P0 |
0 |
0 |
N/A |
100% |
PASS |
| P1 |
1 |
1 |
100% |
>= 90% |
PASS |
| P2 |
1 |
1 |
100% |
— |
PASS |
过度覆盖审计
反向追溯: 用例 → 需求
全部128条测试用例均可追溯至明确的测试点,所有测试点均可追溯至需求条目或历史缺陷(历史缺陷本身源于需求Bug)。
| 检查项 |
结果 |
| 总用例数 |
128 |
| 可追溯用例 |
128 |
| 无需求依据的用例 |
0 |
| 冗余/重复用例 |
0 |
| 过度覆盖率 |
0% |
| 目标(<= 5%) |
PASS |
说明: 所有用例均通过"对应TP-xxx"或"[AI修正: 历史缺陷防御]"标记明确了来源。历史缺陷用例(BUG-202607-01/02/03/04)均有对应的需求依赖项作为依据,不属于过度覆盖。
覆盖热力图
| 模块 |
需求条目 |
测试点 |
测试用例 |
覆盖密度 |
评价 |
| A 上报运单看板 |
7 |
14 |
18 |
高 |
全维度覆盖,包含UI/权限/边界/空状态 |
| B 第一次上报 |
9 |
19 |
23 |
高 |
全维度覆盖,但列表字段完整性缺失(GAP-001) |
| C 第二次上报 |
10 |
22 |
26 |
中高 |
7类核验全覆盖(亮点),但重试和详情弹窗缺失(GAP-002/003) |
| D 第三次上报 |
7 |
11 |
14 |
中高 |
主流程+异常+金额精度全覆盖 |
| E ETC发票上传 |
6 |
9 |
12 |
中高 |
税额精度(资损)专项覆盖(亮点),多发票场景覆盖 |
| F 异常申诉 |
5 |
13 |
17 |
高 |
完整闭环+状态流转+权限+异常代码映射全覆盖(亮点) |
| G 上报日志 |
4 |
9 |
11 |
中高 |
搜索/筛选/报文详情/审计全覆盖 |
| X 跨模块 |
— |
6 |
7 |
高 |
端到端链路+数据一致性+省份隔离全覆盖 |
覆盖盲区
| 盲区 |
位置 |
影响 |
| 第一次上报列表字段完整性 |
模块B |
列表字段渲染错误无法被测试捕获(如字段缺失、顺序错乱、格式错误) |
| 第二次上报自动重试 |
模块C |
最易出异常的阶段缺失重试验证,依赖链断裂后无自动恢复覆盖 |
| 第二次上报详情弹窗分组完整性 |
模块C |
资金流水10字段和车辆轨迹6字段在详情弹窗中的展示未验证 |
历史缺陷防御覆盖核查
| 历史缺陷ID |
防御测试点数 |
防御用例数 |
覆盖状态 |
| BUG-202607-01 (阶段依赖链断裂) |
4 (TP-B-005, C-020, D-005, X-001) |
6 |
PASS |
| BUG-202607-02 (重试幂等缺陷) |
5 (TP-B-014, C-021, D-009, E-008, F-012) |
6 |
PASS |
| BUG-202607-03 (跨模块数据不一致) |
3 (TP-C-002, C-003, X-002) |
4 |
PASS |
| BUG-202607-04 (省份代码硬编码) |
2 (TP-B-004, X-005) |
2 |
PASS |
全部4个已知历史缺陷均有充分的正向+反向防御覆盖。
审计结论与建议
整体评价
- 本次覆盖率审计发现 3个覆盖缺口,需求→测试点覆盖率 93.75%,略低于95%目标
- 亮点: 第二次上报7类核验逐项覆盖(通过+异常各14个测试点)、申诉完整闭环验证、跨模块端到端链路、历史缺陷100%防御覆盖、ETC税额精度专项覆盖
- 改进项: 3个缺口均为"完整性"类遗漏(列表字段/重试机制/详情弹窗),属于测试点设计时未逐条对照需求清单的系统性遗漏
建议行动
| 优先级 |
行动项 |
对应缺口 |
| P0 |
新增 TP-B-020 "第一次上报列表字段完整性校验" 及对应用例(参考 TP-C-004 结构) |
GAP-001 |
| P0 |
新增 TP-C-023 "第二次上报自动重试—最多3次间隔递增" 及对应用例(参考 TP-B-007 结构) |
GAP-002 |
| P1 |
新增 TP-C-024 "第二次上报详情弹窗分组字段完整性" 及对应用例(重点: 资金流水10字段+车辆轨迹6字段) |
GAP-003 |
| P2 |
需求"异常代码一览表"仅有标题无内容,确认后补充 TP-F-011 的详细验证数据 |
REQ-F-05 |
| P2 |
确认自动重试间隔时间(当前假设5s/15s/30s),更新所有重试用例的测试数据 |
— |
审计元数据:
- 审计依据: requirement.md (7模块/48需求条目), 测试点 (103个/7模块), 测试用例 (128个/7模块), 风险评估 (2项风险)
- 追溯方法: 正向追溯 (需求→测试点) + 反向追溯 (用例→需求) + 风险覆盖交叉验证
- 覆盖率计算: 需求→测试点 = 已覆盖需求条目 / 总需求条目; 过度覆盖 = 无需求依据的用例 / 总用例数