Files
QaAutomationHub/output/analysis/安徽运八需求_覆盖率审计.md

18 KiB
Raw Permalink Blame History

安徽运八需求 覆盖率审计

审计日期: 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-002ETC 有 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项风险)
  • 追溯方法: 正向追溯 (需求→测试点) + 反向追溯 (用例→需求) + 风险覆盖交叉验证
  • 覆盖率计算: 需求→测试点 = 已覆盖需求条目 / 总需求条目; 过度覆盖 = 无需求依据的用例 / 总用例数