Files
Yb-QaAutomationHub/output/analysis/物流公司管理需求_覆盖率审计.md
T
xst 8c61209dd4 test(物流公司管理需求): 需求文档与 QE Fleet 全流程设计产物入库
- 需求 v1.1 + 2026-09-29 需求方确认的 Q7~Q19 决议(含 BR-07/BR-09/6.7/6.9 矛盾表述修订)
- 测试点 159 个、测试用例 164 条(P0 55/P1 81/P2 23/P3 5),需求→测试点→用例三级追溯覆盖率 100%
- 质量裁决 PASS(首轮 PASS_WITH_FIX,13 项待确认确认后复裁决升级);评审原始 2 阻断项+9 建议项+3 优化项已全部修复
- 确认单:与 4 个历史需求均为并行关系、0 冲突、0 回写
- 附导出 v1/v2 版本快照、Playwright/Appium 脚本骨架、覆盖率审计脚本与指标、评审修复脚本
2026-09-29 10:03:35 +08:00

339 lines
16 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 物流公司管理需求 覆盖率审计
> 生成时间: 2026-09-29
> 审计对象: output/test_points/物流公司管理需求_测试点.md(159 个测试点)→ output/test_cases/物流公司管理需求_测试用例.md(164 条用例)
> 追溯骨干: output/analysis/物流公司管理需求_分析.md 第 12 章(38 条 REQ)
> 风险基线: output/analysis/物流公司管理需求_风险评估.md(P0=0;P1=1 项 RISK-DATA;P2=4 项)
> 质量门限: fleet_config quality_gate.min_coverage = 0.95;P0 测试点→用例 100%;P1 测试点→用例 ≥90%;P0 风险 100%
> 审计方法: 以用例「备注列」的 TP 追溯号与测试点「描述」中的 REQ 标注建立三级追溯链,**全量脚本化计算**(脚本 output/compute_coverage.py,指标留存 output/logs/coverage_metrics.json),非抽样估算;跨用例引用在矩阵中按互引关系折算
> 时效说明: 本报告在本轮评审修复(2 个阻断项 + 9 条建议项 + 3 条优化项)与**需求方 2026-09-29 确认 13 项待确认口径**之后执行,反映**最终产物状态**;被修复用例均在备注中标注 `[AI修正: 评审修复 <编号>]`,被确认项标注 `[已确认 2026-09-29: <口径>]` + `[AI修正: 待确认已确认 2026-09-29]`
## 覆盖概览
| 指标 | 值 | 目标 | 状态 |
| :--- | :---: | :---: | :---: |
| 需求→测试点覆盖率 | 100.0%(38/38) | ≥ 95% | ✅ |
| 测试点→用例覆盖率(全量) | 100.0%(159/159) | - | ✅ |
| P0 测试点→用例覆盖率 | 100.0%(53/53) | 100% | ✅ |
| P1 测试点→用例覆盖率 | 100.0%(78/78) | ≥ 90% | ✅ |
| P0 风险覆盖率 | 100%(P0 风险项=0,空集成立) | 100% | ✅ |
| P1 风险(RISK-DATA)覆盖率 | 100%(2 条专项用例承接) | ≥ 90% | ✅ |
| 用例逆向追溯率 | 100%(164/164 条可追溯到 REQ/TP) | - | ✅ |
| 过度覆盖率 | 0%(0/164,无无依据用例) | ≤ 5% | ✅ |
**总体结论**: 三级追溯链完整,全部量化指标达标;无「无测试点的需求条目」、无「无用例的测试点」、无「无需求依据的用例」。评审阶段识别的 2 个阻断项与 9 条建议项已全部修复并复核,**无遗留覆盖缺口**。
## 需求→测试点 追溯矩阵
| 需求条目 | 测试点 | 覆盖状态 |
| :--- | :--- | :---: |
| REQ-001 | TP-A-001, TP-X-014 | ✅ |
| REQ-002 | TP-A-002 | ✅ |
| REQ-003 | TP-A-008, TP-A-011 | ✅ |
| REQ-004 | TP-A-009, TP-A-010 | ✅ |
| REQ-005 | TP-A-013, TP-A-014 | ✅ |
| REQ-006 | TP-B-001, TP-B-002, TP-B-003, TP-B-004, TP-B-005 | ✅ |
| REQ-007 | TP-B-007, TP-B-008, TP-B-009, TP-B-010, TP-B-011, TP-B-012, TP-B-013, TP-B-014 | ✅ |
| REQ-008 | TP-B-019, TP-B-020 | ✅ |
| REQ-009 | TP-B-015, TP-B-016, TP-B-017 | ✅ |
| REQ-010 | TP-B-018 | ✅ |
| REQ-011 | TP-B-021 | ✅ |
| REQ-012 | TP-C-001, TP-C-003 | ✅ |
| REQ-013 | TP-D-001, TP-D-002, TP-D-003, TP-D-006 | ✅ |
| REQ-014 | TP-F-022 | ✅ |
| REQ-015 | TP-D-009 | ✅ |
| REQ-016 | TP-D-011 | ✅ |
| REQ-017 | TP-E-001, TP-E-022 | ✅ |
| REQ-018 | TP-E-003 | ✅ |
| REQ-019 | TP-E-005, TP-E-010, TP-E-011, TP-E-012 | ✅ |
| REQ-020 | TP-E-016, TP-E-018, TP-E-020 | ✅ |
| REQ-021 | TP-E-009 | ✅ |
| REQ-022 | TP-F-001 | ✅ |
| REQ-023 | TP-F-002, TP-F-019 | ✅ |
| REQ-024 | TP-F-003, TP-F-004, TP-F-005, TP-F-006, TP-F-007, TP-F-008, TP-F-009 | ✅ |
| REQ-025 | TP-F-012, TP-F-014 | ✅ |
| REQ-026 | TP-F-013, TP-F-015 | ✅ |
| REQ-027 | TP-I-006 | ✅ |
| REQ-028 | TP-F-017 | ✅ |
| REQ-029 | TP-F-018 | ✅ |
| REQ-030 | TP-F-021 | ✅ |
| REQ-031 | TP-G-001, TP-G-007 | ✅ |
| REQ-032 | TP-H-001, TP-H-002, TP-H-007 | ✅ |
| REQ-033 | TP-I-001, TP-I-002, TP-I-003, TP-I-004 | ✅ |
| REQ-034 | TP-I-006, TP-I-007, TP-I-008 | ✅ |
| REQ-035 | TP-J-001, TP-J-002, TP-J-005, TP-J-008 | ✅ |
| REQ-036 | TP-A-014 | ✅ |
| REQ-037 | TP-E-004 | ✅ |
| REQ-038 | TP-X-014 | ✅ |
## 测试点→用例 追溯矩阵
### 模块 A(15 个测试点)
| 测试点 | 优先级 | 用例 | 覆盖状态 |
| :--- | :---: | :--- | :---: |
| TP-A-001 | P0 | PLT_BSC_LC_001 | ✅ |
| TP-A-002 | P0 | PLT_BSC_LC_002 | ✅ |
| TP-A-003 | P1 | PLT_BSC_LC_003 | ✅ |
| TP-A-004 | P1 | PLT_BSC_LC_004 | ✅ |
| TP-A-005 | P1 | PLT_BSC_LC_005 | ✅ |
| TP-A-006 | P1 | PLT_BSC_LC_006 | ✅ |
| TP-A-007 | P2 | PLT_BSC_LC_007 | ✅ |
| TP-A-008 | P0 | PLT_BSC_LC_008 | ✅ |
| TP-A-009 | P1 | PLT_BSC_LC_009 | ✅ |
| TP-A-010 | P1 | PLT_BSC_LC_010 | ✅ |
| TP-A-011 | P1 | PLT_BSC_LC_011 | ✅ |
| TP-A-012 | P2 | PLT_BSC_LC_012 | ✅ |
| TP-A-013 | P1 | PLT_BSC_LC_013 | ✅ |
| TP-A-014 | P1 | PLT_BSC_LC_014 | ✅ |
| TP-A-015 | P2 | PLT_BSC_LC_015 | ✅ |
### 模块 B(24 个测试点)
| 测试点 | 优先级 | 用例 | 覆盖状态 |
| :--- | :---: | :--- | :---: |
| TP-B-001 | P1 | PLT_BSC_LC_016 | ✅ |
| TP-B-002 | P0 | PLT_BSC_LC_017 | ✅ |
| TP-B-003 | P0 | PLT_BSC_LC_018 | ✅ |
| TP-B-004 | P0 | PLT_BSC_LC_019 | ✅ |
| TP-B-005 | P0 | PLT_BSC_LC_020 | ✅ |
| TP-B-006 | P1 | PLT_BSC_LC_021 | ✅ |
| TP-B-007 | P0 | PLT_BSC_LC_022 | ✅ |
| TP-B-008 | P1 | PLT_BSC_LC_023 | ✅ |
| TP-B-009 | P0 | PLT_BSC_LC_024, PLT_BSC_LC_025, PLT_BSC_LC_026 | ✅ |
| TP-B-010 | P1 | PLT_BSC_LC_027, PLT_BSC_LC_028 | ✅ |
| TP-B-011 | P1 | PLT_BSC_LC_029 | ✅ |
| TP-B-012 | P1 | PLT_BSC_LC_030 | ✅ |
| TP-B-013 | P2 | PLT_BSC_LC_031 | ✅ |
| TP-B-014 | P1 | PLT_BSC_LC_032, PLT_BSC_LC_033 | ✅ |
| TP-B-015 | P0 | PLT_BSC_LC_034 | ✅ |
| TP-B-016 | P0 | PLT_BSC_LC_035 | ✅ |
| TP-B-017 | P1 | PLT_BSC_LC_036 | ✅ |
| TP-B-018 | P0 | PLT_BSC_LC_037 | ✅ |
| TP-B-019 | P0 | PLT_BSC_LC_038, PLT_TMS_LC_081 | ✅ |
| TP-B-020 | P1 | PLT_BSC_LC_039 | ✅ |
| TP-B-021 | P0 | PLT_BSC_LC_040 | ✅ |
| TP-B-022 | P2 | PLT_BSC_LC_041 | ✅ |
| TP-B-023 | P2 | PLT_BSC_LC_042 | ✅ |
| TP-B-024 | P2 | PLT_BSC_LC_043 | ✅ |
### 模块 C(5 个测试点)
| 测试点 | 优先级 | 用例 | 覆盖状态 |
| :--- | :---: | :--- | :---: |
| TP-C-001 | P0 | PLT_BSC_LC_044 | ✅ |
| TP-C-002 | P1 | PLT_BSC_LC_045 | ✅ |
| TP-C-003 | P0 | PLT_BSC_LC_046 | ✅ |
| TP-C-004 | P0 | PLT_BSC_LC_047 | ✅ |
| TP-C-005 | P1 | PLT_BSC_LC_048 | ✅ |
### 模块 D(13 个测试点)
| 测试点 | 优先级 | 用例 | 覆盖状态 |
| :--- | :---: | :--- | :---: |
| TP-D-001 | P1 | PLT_BSC_LC_049 | ✅ |
| TP-D-002 | P0 | PLT_BSC_LC_050 | ✅ |
| TP-D-003 | P0 | PLT_BSC_LC_051 | ✅ |
| TP-D-004 | P1 | PLT_BSC_LC_052 | ✅ |
| TP-D-005 | P2 | PLT_BSC_LC_053 | ✅ |
| TP-D-006 | P0 | PLT_BSC_LC_054 | ✅ |
| TP-D-007 | P2 | PLT_BSC_LC_055 | ✅ |
| TP-D-008 | P1 | PLT_BSC_LC_056 | ✅ |
| TP-D-009 | P0 | PLT_BSC_LC_057 | ✅ |
| TP-D-010 | P0 | PLT_BSC_LC_058 | ✅ |
| TP-D-011 | P0 | PLT_BSC_LC_059 | ✅ |
| TP-D-012 | P2 | PLT_BSC_LC_060 | ✅ |
| TP-D-013 | P1 | PLT_BSC_LC_061 | ✅ |
### 模块 E(22 个测试点)
| 测试点 | 优先级 | 用例 | 覆盖状态 |
| :--- | :---: | :--- | :---: |
| TP-E-001 | P1 | PLT_BSC_LC_062 | ✅ |
| TP-E-002 | P1 | PLT_BSC_LC_063 | ✅ |
| TP-E-003 | P1 | PLT_BSC_LC_064 | ✅ |
| TP-E-004 | P3 | PLT_BSC_LC_065 | ✅ |
| TP-E-005 | P0 | PLT_BSC_LC_066, PLT_TMS_LC_081 | ✅ |
| TP-E-006 | P0 | PLT_BSC_LC_067 | ✅ |
| TP-E-007 | P1 | PLT_BSC_LC_068 | ✅ |
| TP-E-008 | P0 | PLT_BSC_LC_069 | ✅ |
| TP-E-009 | P0 | PLT_BSC_LC_070 | ✅ |
| TP-E-010 | P2 | PLT_BSC_LC_071 | ✅ |
| TP-E-011 | P1 | PLT_BSC_LC_072 | ✅ |
| TP-E-012 | P0 | PLT_BSC_LC_073 | ✅ |
| TP-E-013 | P1 | PLT_BSC_LC_074 | ✅ |
| TP-E-014 | P2 | PLT_BSC_LC_075 | ✅ |
| TP-E-015 | P1 | PLT_BSC_LC_076 | ✅ |
| TP-E-016 | P1 | PLT_BSC_LC_077 | ✅ |
| TP-E-017 | P2 | PLT_BSC_LC_078 | ✅ |
| TP-E-018 | P1 | PLT_BSC_LC_079 | ✅ |
| TP-E-019 | P1 | PLT_BSC_LC_080 | ✅ |
| TP-E-020 | P1 | PLT_BSC_LC_081 | ✅ |
| TP-E-021 | P1 | PLT_BSC_LC_082 | ✅ |
| TP-E-022 | P2 | PLT_BSC_LC_083 | ✅ |
### 模块 F(25 个测试点)
| 测试点 | 优先级 | 用例 | 覆盖状态 |
| :--- | :---: | :--- | :---: |
| TP-F-001 | P0 | PLT_TMS_LC_001 | ✅ |
| TP-F-002 | P0 | PLT_TMS_LC_002 | ✅ |
| TP-F-003 | P0 | PLT_TMS_LC_003 | ✅ |
| TP-F-004 | P1 | PLT_TMS_LC_004 | ✅ |
| TP-F-005 | P1 | PLT_TMS_LC_005 | ✅ |
| TP-F-006 | P1 | PLT_TMS_LC_006 | ✅ |
| TP-F-007 | P1 | PLT_TMS_LC_007 | ✅ |
| TP-F-008 | P0 | PLT_TMS_LC_008 | ✅ |
| TP-F-009 | P0 | PLT_TMS_LC_009 | ✅ |
| TP-F-010 | P1 | PLT_TMS_LC_010 | ✅ |
| TP-F-011 | P2 | PLT_TMS_LC_011 | ✅ |
| TP-F-012 | P0 | PLT_TMS_LC_012 | ✅ |
| TP-F-013 | P0 | PLT_TMS_LC_013 | ✅ |
| TP-F-014 | P1 | PLT_TMS_LC_014 | ✅ |
| TP-F-015 | P0 | PLT_TMS_LC_015, PLT_TMS_LC_081 | ✅ |
| TP-F-016 | P0 | PLT_TMS_LC_016 | ✅ |
| TP-F-017 | P1 | PLT_TMS_LC_017 | ✅ |
| TP-F-018 | P0 | PLT_TMS_LC_018 | ✅ |
| TP-F-019 | P1 | PLT_TMS_LC_019 | ✅ |
| TP-F-020 | P2 | PLT_TMS_LC_020 | ✅ |
| TP-F-021 | P2 | PLT_TMS_LC_021 | ✅ |
| TP-F-022 | P0 | PLT_TMS_LC_022 | ✅ |
| TP-F-023 | P2 | PLT_TMS_LC_023 | ✅ |
| TP-F-024 | P2 | PLT_TMS_LC_024 | ✅ |
| TP-F-025 | P2 | PLT_TMS_LC_025 | ✅ |
### 模块 G(8 个测试点)
| 测试点 | 优先级 | 用例 | 覆盖状态 |
| :--- | :---: | :--- | :---: |
| TP-G-001 | P1 | PLT_TMS_LC_026 | ✅ |
| TP-G-002 | P1 | PLT_TMS_LC_027 | ✅ |
| TP-G-003 | P1 | PLT_TMS_LC_028 | ✅ |
| TP-G-004 | P1 | PLT_TMS_LC_029 | ✅ |
| TP-G-005 | P1 | PLT_TMS_LC_030, PLT_TMS_LC_081 | ✅ |
| TP-G-006 | P1 | PLT_TMS_LC_031 | ✅ |
| TP-G-007 | P1 | PLT_TMS_LC_032 | ✅ |
| TP-G-008 | P2 | PLT_TMS_LC_033 | ✅ |
### 模块 H(11 个测试点)
| 测试点 | 优先级 | 用例 | 覆盖状态 |
| :--- | :---: | :--- | :---: |
| TP-H-001 | P1 | PLT_TMS_LC_034, PLT_TMS_LC_081 | ✅ |
| TP-H-002 | P1 | PLT_TMS_LC_035 | ✅ |
| TP-H-003 | P1 | PLT_TMS_LC_036 | ✅ |
| TP-H-004 | P0 | PLT_TMS_LC_037 | ✅ |
| TP-H-005 | P1 | PLT_TMS_LC_038 | ✅ |
| TP-H-006 | P1 | PLT_TMS_LC_039 | ✅ |
| TP-H-007 | P1 | PLT_TMS_LC_040 | ✅ |
| TP-H-008 | P1 | PLT_TMS_LC_041 | ✅ |
| TP-H-009 | P0 | PLT_TMS_LC_042 | ✅ |
| TP-H-010 | P1 | PLT_TMS_LC_043 | ✅ |
| TP-H-011 | P2 | PLT_TMS_LC_044 | ✅ |
### 模块 I(12 个测试点)
| 测试点 | 优先级 | 用例 | 覆盖状态 |
| :--- | :---: | :--- | :---: |
| TP-I-001 | P1 | PLT_TMS_LC_045 | ✅ |
| TP-I-002 | P1 | PLT_TMS_LC_046 | ✅ |
| TP-I-003 | P1 | PLT_TMS_LC_047, PLT_TMS_LC_081 | ✅ |
| TP-I-004 | P1 | PLT_TMS_LC_048 | ✅ |
| TP-I-005 | P1 | PLT_TMS_LC_049 | ✅ |
| TP-I-006 | P0 | PLT_TMS_LC_050 | ✅ |
| TP-I-007 | P0 | PLT_TMS_LC_051 | ✅ |
| TP-I-008 | P0 | PLT_TMS_LC_052 | ✅ |
| TP-I-009 | P1 | PLT_TMS_LC_053 | ✅ |
| TP-I-010 | P2 | PLT_TMS_LC_054 | ✅ |
| TP-I-011 | P3 | PLT_TMS_LC_055 | ✅ |
| TP-I-012 | P1 | PLT_TMS_LC_056 | ✅ |
### 模块 J(10 个测试点)
| 测试点 | 优先级 | 用例 | 覆盖状态 |
| :--- | :---: | :--- | :---: |
| TP-J-001 | P0 | PLT_TMS_LC_057 | ✅ |
| TP-J-002 | P0 | PLT_TMS_LC_058 | ✅ |
| TP-J-003 | P1 | PLT_TMS_LC_059 | ✅ |
| TP-J-004 | P1 | PLT_TMS_LC_060 | ✅ |
| TP-J-005 | P0 | PLT_TMS_LC_061 | ✅ |
| TP-J-006 | P0 | PLT_TMS_LC_062 | ✅ |
| TP-J-007 | P1 | PLT_TMS_LC_063 | ✅ |
| TP-J-008 | P0 | PLT_TMS_LC_064 | ✅ |
| TP-J-009 | P1 | PLT_TMS_LC_065 | ✅ |
| TP-J-010 | P1 | PLT_TMS_LC_066 | ✅ |
### 模块 X(14 个测试点)
| 测试点 | 优先级 | 用例 | 覆盖状态 |
| :--- | :---: | :--- | :---: |
| TP-X-001 | P0 | PLT_TMS_LC_067 | ✅ |
| TP-X-002 | P0 | PLT_TMS_LC_068 | ✅ |
| TP-X-003 | P1 | PLT_TMS_LC_069 | ✅ |
| TP-X-004 | P1 | PLT_TMS_LC_070 | ✅ |
| TP-X-005 | P1 | PLT_TMS_LC_071 | ✅ |
| TP-X-006 | P0 | PLT_TMS_LC_072 | ✅ |
| TP-X-007 | P0 | PLT_TMS_LC_073 | ✅ |
| TP-X-008 | P1 | PLT_TMS_LC_074 | ✅ |
| TP-X-009 | P1 | PLT_TMS_LC_075 | ✅ |
| TP-X-010 | P3 | PLT_TMS_LC_076 | ✅ |
| TP-X-011 | P3 | PLT_TMS_LC_077 | ✅ |
| TP-X-012 | P3 | PLT_TMS_LC_078 | ✅ |
| TP-X-013 | P1 | PLT_TMS_LC_079 | ✅ |
| TP-X-014 | P1 | PLT_TMS_LC_080 | ✅ |
## 口径专项核查(本项目易错口径,逐项给出承接用例)
| 口径 | 要求 | 承接用例(证据) | 结论 |
| :--- | :--- | :--- | :---: |
| 核算即运单核算(全文禁用"核算单"表述) | 不得把核算写成独立单据 | PLT_TMS_LC_001, PLT_TMS_LC_015, PLT_TMS_LC_078(均为"无核算单/禁用该字样"的负向核验) | ✅ |
| 无生效合同公司可勾选 | 仅提示不阻断 | PLT_BSC_LC_051, PLT_TMS_LC_007, PLT_TMS_LC_008, PLT_TMS_LC_022 | ✅ |
| 停用公司在核算勾选弹窗不可见 | 停用即从弹窗消失 | PLT_BSC_LC_054, PLT_BSC_LC_056, PLT_BSC_LC_057, PLT_BSC_LC_059 | ✅ |
| 打款筛选下拉含停用公司 | 历史打款记录可按原公司查出(与上一条相反口径) | PLT_BSC_LC_034, PLT_TMS_LC_037, PLT_TMS_LC_051 | ✅ |
| 快照不变性 | 改名/停用/删除后历史展示不变 | PLT_BSC_LC_053, PLT_BSC_LC_056, PLT_BSC_LC_058, PLT_TMS_LC_008, PLT_TMS_LC_012 | ✅ |
| Q5 道路运输经营许可证选填 | 仅营业执照与身份证必传 | PLT_BSC_LC_016, PLT_BSC_LC_019, PLT_BSC_LC_020, PLT_BSC_LC_038 | ✅ |
| Q6 合同附件不设大小上限 | 格式白名单保留、无大小限制 | PLT_BSC_LC_075 | ✅ |
| 分页默认 20、可选 10/20/50/100 | 与需求 6.1 一致 | PLT_BSC_LC_010, PLT_TMS_LC_006 | ✅ |
| 导出上限 20000 条 | 平台统一口径 | PLT_BSC_LC_014, PLT_BSC_LC_015, PLT_BSC_LC_083 | ✅ |
## 风险覆盖审计
| 风险ID | 等级 | 承接用例数 | 承接用例 | 结论 |
| :--- | :---: | :---: | :--- | :---: |
| RISK-DATA | P1 | 2 | PLT_BSC_LC_037, PLT_TMS_LC_050 | ✅ |
| RISK-AVAILABILITY | P2 | 2 | PLT_BSC_LC_078, PLT_TMS_LC_011 | ✅ |
| RISK-FINANCIAL | P2 | 2 | PLT_TMS_LC_042, PLT_TMS_LC_072 | ✅ |
| RISK-COMPLIANCE | P2 | 2 | PLT_TMS_LC_058, PLT_TMS_LC_066 | ✅ |
| RISK-COMPATIBILITY | P2 | 1 | PLT_TMS_LC_056 | ✅ |
- RISK-DATA(P1):唯一性并发、快照口径、删除保护三类核心场景均落到 P0 用例;
- RISK-FINANCIAL / COMPLIANCE / AVAILABILITY / COMPATIBILITY(P2):分别由打款金额回归、敏感证件与日志、弹窗与 OBS 依赖、历史数据「无外协公司」兼容用例承接。
## 覆盖缺口
无。全量冻结状态下:38/38 需求条目有测试点,159/159 测试点有用例,无 P0/P1/P2/P3 级覆盖缺口。
> 说明:评审阶段曾识别两处覆盖盲区(合同三个时间字段必填校验、道路运输经营许可证格式白名单),已分别通过 PLT_BSC_LC_069 与 PLT_BSC_LC_020 的修复补齐(详见《评审报告》S-008/S-009 与用例备注 `[AI修正: 评审修复 S-008/S-009]`),本审计不再登记为缺口。
## 过度覆盖
无。164 条用例全部携带 TP 追溯号,未发现无需求依据的用例;文末「端到端冒烟」用例为跨模块主链路合成用例,已在备注中说明其溢出部分(合成引用 6 个测试点)。
## 覆盖热力图
| 模块 | 测试点 | 用例数 | 覆盖密度 |
| :--- | :---: | :---: | :--- |
| A 菜单与列表查询 | 15 | 15 | ██████ 1.00 用例/测试点 |
| B 新增物流公司 | 24 | 29 | ███████ 1.21 用例/测试点 |
| C 编辑物流公司 | 5 | 5 | ██████ 1.00 用例/测试点 |
| D 删除与启停用 | 13 | 13 | ██████ 1.00 用例/测试点 |
| E 合同管理 | 22 | 23 | ██████ 1.05 用例/测试点 |
| F 运单核算关联 | 25 | 26 | ██████ 1.04 用例/测试点 |
| G 货源选择 | 8 | 9 | ███████ 1.12 用例/测试点 |
| H 打款筛选 | 11 | 12 | ███████ 1.09 用例/测试点 |
| I 列表展示与快照 | 12 | 13 | ██████ 1.08 用例/测试点 |
| J 权限与机构隔离 | 10 | 10 | ██████ 1.00 用例/测试点 |
| X 跨需求回归 | 14 | 14 | ██████ 1.00 用例/测试点 |
> 密度说明:用例按备注列 TP 追溯号归类(跨模块用例在各所属模块各计一次,故用例列合计 ≥ 164);相对密度以 1.0 用例/测试点为基准映射为 6 格。全模块密集度 1.00~1.21(实测区间),无稀疏盲区模块。