Files
Yb-QaAutomationHub/output/analysis/物流公司管理需求_覆盖率审计.md
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

16 KiB
Raw Permalink Blame History

物流公司管理需求 覆盖率审计

生成时间: 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(实测区间),无稀疏盲区模块。