test(运单资料文件包下载): 需求文档与 QE Fleet 全流程测试设计产物入库

- 需求 v1.0 定稿(md+docx)与 UI 原型入库;确认单判定 docx 为同文载体、安徽运八并行无冲突
- 全流程产物:分析 + 59 测试点 + 85 用例 + 测试数据 145 组;评审 3 阻断与覆盖缺口 GAP-001 已修复,裁决 PASS_WITH_FIX
- 导出 Excel(云效模型)+ XMind + 版本快照 v1;含 docx 生成脚本与转换校验产物
- .gitignore 排除 node_modules 与 Excel 锁文件
This commit is contained in:
xst
2026-09-09 09:31:55 +08:00
parent c7cc4d5648
commit 901b6741ff
48 changed files with 8183 additions and 0 deletions
@@ -0,0 +1,254 @@
# 运单资料文件包下载需求 覆盖率审计
> 生成时间: 2026-09-08
> 审计对象: output/test_points/运单资料文件包下载需求_测试点.md(59 个 TP)→ output/test_cases/运单资料文件包下载需求_测试用例.md(82 条 TC)
> 追溯骨干: output/analysis/运单资料文件包下载需求_分析.md 第 9 章(26 条 REQ)
> 风险基线: output/analysis/运单资料文件包下载需求_风险评估.md(P0=0,P1=1 RISK-AVAILABILITY,P2=4)
> 质量门限: fleet_config quality_gate.min_coverage = 0.95;P0 测试点→用例 100%;P1 测试点→用例 ≥90%;P0 风险 100%
> 审计方法: 以用例"备注列"与测试点"对应 REQ 标注"建立三级追溯;对全部 59 个 TP→TC 映射逐条核对关键验证点承接情况(非仅核对编号),并对 REQ→TP 表与 TP 描述的标注一致性做了交叉验证
## 覆盖概览
| 指标 | 值 | 目标 | 状态 |
| :--- | :---: | :---: | :---: |
| 需求→测试点覆盖率 | 100%(26/26) | ≥ 95% | ✅ |
| 测试点→用例覆盖率(全量) | 100%(59/59) | - | ✅ |
| P0 测试点→用例覆盖率 | 100%(25/25,且均有 P0 级用例承接) | 100% | ✅ |
| P1 测试点→用例覆盖率 | 100%(26/26) | ≥ 90% | ✅ |
| P2/P3 测试点→用例覆盖率 | 100%(8/8) | - | ✅ |
| P0 风险覆盖率 | 100%(P0 风险项=0,空集成立) | 100% | ✅ |
| P1 风险(RISK-AVAILABILITY)覆盖率 | 100%(关联缓解测试点全部有用例) | ≥ 90% | ✅ |
| 用例逆向追溯率 | 100%(82/82 条用例均可追溯到 REQ/TP) | - | ✅ |
| 过度覆盖率 | 0%(0/82 硬性冗余;另 1 条条件性冗余待 Q1 确认) | ≤ 5% | ✅ |
**总体结论**: 三级追溯链完整,全部量化指标达标,无"无测试点的需求"、无"无用例的测试点"、无"无需求依据的用例"。但存在 7 项覆盖缺口,其中 **GAP-001 为 BLOCKED 级**(P0 需求 REQ-015 的关键验证点未固化为用例断言,源于需求 4.4.4 条款边界未确认),其余 6 项为待确认口径传导的断言未固化或边角场景未覆盖。详见"覆盖缺口"。
**抽查验证说明**(对可疑标注的实测核对,非仅采信编号):
1. TC-001(冒烟)同时承接 TP-U-002/TP-T-001/TP-D-001 —— 核实其步骤覆盖模板下载→上传建任务→状态流转→下载解压全链路,与三个 TP 的主验证点相符;TP 的细粒度验证点(如统计卡片 +1、标签颜色)由 TC-010/032/033 完整承接,冒烟仅为主链路补充,判定合理。
2. TC-030(TP-U-017)备注"防重复点击归 PLT_TMS_FPKG_074 验证" —— 核实 TC-074 确以"1 秒内连点 5 次 + 接口并发重放"验证防抖与幂等,交叉引用成立,非断言遗漏。
3. TC-053/054(TP-P-007,全需求最易错点)—— 核实覆盖"校验失败剔除→证件改挂重算"与"单运单批次整批不生成"两条路径,但 TP-P-007 关键验证点 2"最小序号运单仅缺电子回单(文件缺失剔除)时同样重算挂载"无用例固化(用例文件自认数据缺口 #17 未收敛),登记为 GAP-001(BLOCKED)。
4. TC-047(TP-P-002)为"同名同车牌不同身份证"变体 —— 核实在 TP-P-002 关键验证点范围内(同车牌+不同司机/身份证拆批),非冗余拆分。
5. REQ-017 追溯表列有 TP-N-005,而 TP-N-005 描述写"对应 REQ-002/REQ-026" —— 核实其关键验证点含"审计日志可反查谁在何时下载了哪个任务(联动 TP-D-003)",实质支撑 REQ-017,判定为标注不一致而非覆盖缺口(建议下版统一 TP 描述)。
6. TC-009(TP-U-001)"模板内填写说明不参与数据解析"与 TP-U-001 关键验证点逐字对应;TC-013(TP-U-004)"列顺序打乱允许"与 TP-U-004 关键验证点逐字对应 —— 标注可信。
## 需求→测试点 追溯矩阵
> 26/26 全覆盖。测试点列表以测试点文档文末"REQ 追溯对照表"为准,并已与各 TP 描述中的"对应 REQ-X"标注逐条交叉验证一致(除上述 TP-N-005 描述标注差异)。
| 需求条目 | 测试点 | 用例数 | 覆盖状态 |
| :--- | :--- | :---: | :---: |
| REQ-001: 新增"运单文件包"菜单挂运单管理下,上传入口+任务列表结构(P0) | TP-M-001、TP-U-002、TP-N-008 | 4(001/002/010/082) | ✅ |
| REQ-002: 菜单权限控制,仅运营人员可见可操作(P0) | TP-M-002、TP-M-003、TP-M-004、TP-M-005、TP-N-005 | 7(003~008/078) | ✅ |
| REQ-003: 模板下载 xlsx 三列(P1) | TP-U-001 | 1(009) | ✅ |
| REQ-004: 上传限制 xlsx、≤2000 行、≤10MB(P1) | TP-U-002、TP-U-006、TP-U-007、TP-U-017、TP-N-007 | 8(001/010/015~018/030/081) | ✅ |
| REQ-005: 文件级校验整体拒绝并提示具体原因(P0) | TP-U-002、TP-U-003、TP-U-004、TP-U-005 | 6(001/010~014) | ✅ |
| REQ-006: 数据级校验六类行级失败(P0) | TP-U-008~TP-U-016(9 个) | 11(019~029) | ✅ |
| REQ-007: 剔除失败行继续有效行,记"已完成·部分失败"(P0) | TP-U-015、TP-T-002 | 3(026/027/034) | ✅ |
| REQ-008: 任务状态机五态(P0) | TP-T-001、TP-T-002、TP-T-003、TP-D-004 | 7(001/032~036/068) | ✅ |
| REQ-009: 任务列表十字段完整(P1) | TP-T-004 | 2(037/038) | ✅ |
| REQ-010: 三要素归批,换车/换司机拆批(P0) | TP-P-001、TP-P-002 | 3(045~047) | ✅ |
| REQ-011: 三层目录结构与命名,最小序号带证件后缀(P0) | TP-P-003、TP-P-011、TP-T-008 | 3(044/048/060) | ✅ |
| REQ-012: 运单包内容矩阵,单运单批次仍含证件(P0) | TP-P-004、TP-P-012 | 2(049/061) | ✅ |
| REQ-013: 合同/回单/证件数据来源口径(P1) | TP-P-005、TP-P-006、TP-P-013 | 5(050~052/062/063) | ✅ |
| REQ-014: 子目录组织与重名追加 (1)(2)(P1) | TP-P-010 | 1(059) | ✅ |
| REQ-015: 文件缺失不阻断记清单;最小序号剔除重算改挂;单文件重试 3 次(P0) | TP-P-007、TP-P-008、TP-P-009、TP-P-013、TP-N-006 | 10(053~058/062/063/079/080) | ✅(⚠️ GAP-001 子验证点未固化) |
| REQ-016: 任务完成后下载总包 zip,重复下载幂等(P0) | TP-D-001、TP-D-002、TP-D-004、TP-D-005、TP-D-006、TP-N-007 | 8(001/065~071/081) | ✅ |
| REQ-017: 下载审计日志:操作人/时间/任务编号(P0) | TP-D-003、TP-N-005 | 2(067/078) | ✅(⚠️ GAP-004 失败清单留痕待确认) |
| REQ-018: 失败清单下载 xlsx 四列(P1) | TP-T-006 | 2(041/042) | ✅ |
| REQ-019: 异步处理,列表可见进度(P1) | TP-T-005 | 2(039/040) | ✅ |
| REQ-020: 1000 单规模 30 分钟内完成(P1) | TP-N-001 | 1(072) | ✅ |
| REQ-021: 保留 7 天过期清理不可下载(P1) | TP-N-004 | 2(076/077) | ✅(⚠️ GAP-003 展示/临界口径待确认) |
| REQ-022: 多任务排队,并发上限 1~2(P1) | TP-N-002、TP-N-003 | 3(073~075) | ✅ |
| REQ-023: 同一文件重复上传允许,独立任务(P2) | TP-U-018、TP-N-003 | 3(031/074/075) | ✅ |
| REQ-024: 系统异常置"失败",删除后重传(P1) | TP-T-003、TP-T-007、TP-N-006 | 5(035/036/043/079/080) | ✅ |
| REQ-025: 按批次包单独下载本期不做(P3,负向范围) | TP-D-005 | 1(069) | ✅ |
| REQ-026: zip 不加密,依赖权限+审计补偿(P2) | TP-P-014、TP-N-005(追溯表口径;TP-M-005 描述亦标注 REQ-026) | 4(007/008/064/078) | ✅ |
## 测试点→用例 追溯矩阵
> 59/59 全覆盖,按模块归组呈现。用例编号省略前缀 PLT_TMS_FPKG_。"优先级"列为测试点优先级;已核实全部 P0 测试点均有 P0 级用例承接,无高风险场景下沉。
### 模块 TP-M 菜单与权限(5 个测试点)
| 测试点 | 优先级 | 用例 | 覆盖状态 |
| :--- | :---: | :--- | :---: |
| TP-M-001 菜单入口与页面骨架 | P0 | 002 | ✅ |
| TP-M-002 运营人员可见可操作 | P0 | 003 | ✅ |
| TP-M-003 非授权角色不可见且 URL 直达被拦截 | P0 | 004、005 | ✅ |
| TP-M-004 接口层越权防御 | P1 | 006 | ✅ |
| TP-M-005 机构数据隔离 | P2 | 007、008 | ✅ |
### 模块 TP-U 上传与校验(18 个测试点)
| 测试点 | 优先级 | 用例 | 覆盖状态 |
| :--- | :---: | :--- | :---: |
| TP-U-001 模板下载 | P0 | 009 | ✅(⚠️ GAP-006 多 Sheet/合并单元格口径未覆盖) |
| TP-U-002 正常上传创建任务正向链路 | P0 | 001、010 | ✅ |
| TP-U-003 非 xlsx 格式整体拒绝 | P0 | 011 | ✅ |
| TP-U-004 列名缺失或不符整体拒绝 | P0 | 012、013 | ✅(⚠️ GAP-006 同上关联) |
| TP-U-005 文件损坏整体拒绝 | P1 | 014 | ✅ |
| TP-U-006 行数边界 2000/2001/空清单 | P1 | 015、016 | ✅(Q2/Q3 已收敛) |
| TP-U-007 文件大小边界 10MB 临界 | P1 | 017、018 | ✅ |
| TP-U-008 序号非正整数行级失败 | P0 | 019 | ✅(⚠️ GAP-005 序号极值边界未单列) |
| TP-U-009 序号重复行级失败(全文件唯一) | P0 | 020 | ✅ |
| TP-U-010 货源单号/运单号为空行级失败 | P0 | 021 | ✅ |
| TP-U-011 运单号不存在行级失败 | P0 | 022 | ✅(⚠️ GAP-007 大小写口径未显式覆盖) |
| TP-U-012 货源单号不一致行级失败 | P0 | 023 | ✅ |
| TP-U-013 运单号文件内重复行级失败 | P0 | 024 | ✅ |
| TP-U-014 缺司机/车辆信息无法归批 | P0 | 025 | ✅ |
| TP-U-015 单文件混合多类错误(规则组合) | P1 | 026、027 | ✅ |
| TP-U-016 单元格特殊字符与超长内容防御 | P1 | 028、029 | ✅ |
| TP-U-017 上传弹窗交互细项 | P1 | 030(防重复点击交叉引用 074) | ✅ |
| TP-U-018 同一文件重复上传独立任务 | P2 | 031 | ✅ |
### 模块 TP-T 任务与列表(8 个测试点)
| 测试点 | 优先级 | 用例 | 覆盖状态 |
| :--- | :---: | :--- | :---: |
| TP-T-001 状态机正向流转与状态标签 | P0 | 001、032、033 | ✅ |
| TP-T-002 已完成·部分失败状态 | P0 | 034 | ✅ |
| TP-T-003 失败状态与删除重传 | P1 | 035、036 | ✅ |
| TP-T-004 列表字段、排序与分页 | P1 | 037、038 | ✅ |
| TP-T-005 异步处理与进度可见 | P1 | 039、040 | ✅ |
| TP-T-006 失败清单下载内容 | P1 | 041、042 | ✅ |
| TP-T-007 处理中系统异常一致性 | P1 | 043 | ✅ |
| TP-T-008 任务详情与结构预览弹窗(原型功能) | P3 | 044 | ✅(⚠️ Q1 待确认,条件性 RED-001) |
### 模块 TP-P 打包归批与文件包结构(14 个测试点)
| 测试点 | 优先级 | 用例 | 覆盖状态 |
| :--- | :---: | :--- | :---: |
| TP-P-001 三要素归批正向 | P0 | 045 | ✅ |
| TP-P-002 换车/换司机拆批(规则组合) | P0 | 046、047 | ✅ |
| TP-P-003 三层目录结构与命名规则 | P0 | 048 | ✅ |
| TP-P-004 内容矩阵与单运单批次 | P0 | 049 | ✅ |
| TP-P-005 合同口径(含承运不含委托/框架) | P1 | 050 | ✅ |
| TP-P-006 电子回单与证件档案口径 | P1 | 051、052 | ✅ |
| TP-P-007 最小序号剔除后证件挂载重算 | P0 | 053、054 | ✅(⚠️ GAP-001 BLOCKED:文件缺失剔除路径断言未固化) |
| TP-P-008 文件缺失不阻断任务 | P0 | 055、056 | ✅ |
| TP-P-009 单文件下载失败自动重试 3 次 | P1 | 057、058 | ✅ |
| TP-P-010 子目录组织与重名文件处理 | P1 | 059 | ✅ |
| TP-P-011 批次包命名特殊字符与超长防御 | P1 | 060 | ✅ |
| TP-P-012 大批量打包完整性与统计一致性 | P1 | 061 | ✅ |
| TP-P-013 打包数据来源溯源与实时性 | P1 | 062、063 | ✅(⚠️ GAP-002 Q4 口径未确认) |
| TP-P-014 zip 不加密暴露面确认 | P2 | 064 | ✅ |
### 模块 TP-D 下载与幂等审计(6 个测试点)
| 测试点 | 优先级 | 用例 | 覆盖状态 |
| :--- | :---: | :--- | :---: |
| TP-D-001 任务完成后下载总包 | P0 | 001、065 | ✅ |
| TP-D-002 重复下载幂等 | P0 | 066 | ✅ |
| TP-D-003 下载审计日志 | P0 | 067 | ✅(⚠️ GAP-004 Q6 失败清单留痕待确认) |
| TP-D-004 处理中/未完成任务不可下载(双重校验) | P1 | 068 | ✅ |
| TP-D-005 按批次包单独下载不做(负向确认) | P3 | 069 | ✅ |
| TP-D-006 下载中断与大文件弱网 | P1 | 070、071 | ✅ |
### 模块 TP-N 非功能:性能/并发/保留期/异常恢复(8 个测试点)
| 测试点 | 优先级 | 用例 | 覆盖状态 |
| :--- | :---: | :--- | :---: |
| TP-N-001 性能基线 1000 单 30 分钟 | P1 | 072 | ✅ |
| TP-N-002 多任务并发排队上限 1~2 | P1 | 073 | ✅ |
| TP-N-003 并发提交与重复提交幂等 | P1 | 074、075 | ✅ |
| TP-N-004 保留期 7 天过期边界 | P1 | 076、077 | ✅(⚠️ GAP-003 Q5/临界口径待确认) |
| TP-N-005 敏感数据合规补偿控制 | P2 | 078 | ✅ |
| TP-N-006 OBS 依赖不可用降级与恢复 | P1 | 079、080 | ✅ |
| TP-N-007 zip 中文目录与多来源 xlsx 兼容性 | P2 | 081 | ✅ |
| TP-N-008 新增菜单对既有功能回归隔离 | P2 | 082 | ✅ |
## 风险覆盖审计
| 风险项 | 等级 | 关联缓解测试点 | 用例承接 | 覆盖判定 |
| :--- | :---: | :--- | :--- | :---: |
| (无 P0 风险项) | P0 | - | - | ✅ 100%(空集成立,无阻断项) |
| RISK-AVAILABILITY 可用性(并发/重试/幂等/容量,评分 12) | P1 | TP-N-002(并发排队主场景)、TP-N-003(重复/并发提交幂等)、TP-D-002(下载幂等)、TP-P-009(OBS 重试 3 次)、TP-N-001(容量基线)、TP-T-007/TP-N-006(异常恢复) | 073、074/075、066、057/058、072、043、079/080 | ✅ 100% ≥ 90%(测试点文档明确"不得静默省略"的主场景 TP-N-002 已有专项用例 073) |
| RISK-FINANCIAL 资损(评分 5) | P2 | 无专属 TP(本需求为只读导出,无直接资损动作);缓解依赖幂等/并发类 TP | 同上幂等/并发用例 | ✅ 缓解面已覆盖 |
| RISK-COMPLIANCE 合规(评分 5) | P2 | TP-M-004、TP-M-005、TP-P-014、TP-N-005、TP-D-003 | 006、007/008、064、078、067 | ✅ 100%(权限+审计补偿链均有用例) |
| RISK-DATA 数据(评分 4) | P2 | TP-P-012、TP-P-013、TP-U-016 | 061、062/063、028/029 | ✅ 100% |
| RISK-COMPATIBILITY 兼容性(评分 3) | P2 | TP-N-007 | 081 | ✅ 100% |
**说明**: 本项目 P0 风险 = 0,无 P0 风险阻断项。P1 风险 RISK-AVAILABILITY 的缓解面(并发排队、重复提交幂等、下载幂等、OBS 重试、容量基线、异常恢复共 7 个测试点)全部有用例承接且无断言缺失,覆盖率 100%,满足 ≥90% 目标。
## 覆盖缺口
### 缺口 GAP-001: 最小序号运单因文件缺失被剔除后证件改挂重算——关键验证点未固化为用例断言 【BLOCKED】
- 需求条目: REQ-015(P0)/ 测试点 TP-P-007(P0,测试点文档自评"全需求最易错点")
- 缺口类型: 关键验证点未固化为用例(部分覆盖——TC-053/054 已覆盖"校验失败剔除"与"单运单批次整批剔除"两条路径,缺"文件缺失剔除"路径)
- 风险等级: P0
- 现状: TP-P-007 关键验证点 2"最小序号运单仅缺电子回单(文件缺失剔除)时同样重算挂载"无用例承接;用例文件已自认该场景依赖需求 4.4.4 条款一(缺失不剔除仅记清单)与条款二(剔除改挂)的适用边界未确认(实现口径确认项 3,数据缺口 #17,CMB-010/011 未固化)
- 建议: 【阻断验收签发,不阻断用例执行】需求方确认 4.4.4 条款一/二在"最小序号运单仅缺回单/合同"场景的边界后,基于 TC-053 补充变体用例(批次最小序号运单仅缺回单)并固化证件改挂断言;确认前该子项按 BLOCKED 跟踪
### 缺口 GAP-002: 打包期间源数据变更口径(快照 vs 实时)未确认,断言无法取值
- 需求条目: REQ-013/REQ-015(P1/P0)/ 测试点 TP-P-013 / 用例 063
- 缺口类型: 断言未固化(用例已建,核心断言 1 依赖 Q4 二选一)
- 风险等级: P1
- 现状: TC-063 仅能验证"全任务一致"(不混杂),无法验证口径正确性;新回单是否入包无判定基准
- 建议: 需求方在快照/实时中二选一后回填 TC-063 断言 1,并同步 TP-P-013 回归口径
### 缺口 GAP-003: 过期任务展示形态与 7 天临界口径未确认,两条用例断言双口径悬置
- 需求条目: REQ-021(P1)/ 测试点 TP-N-004 / 用例 076、077
- 缺口类型: 断言未固化(TC-077 断言 1 依赖 Q5:新增"已过期"展示态 or 原状态+按钮置灰;TC-076 断言 2 依赖 BND-032"完成时间+7 天整"实现口径)
- 风险等级: P1
- 建议: 确认 Q5 展示形态与保留期临界算法后回填断言;临界口径建议直接写死为"完成时间 +7×24h"或明确实现值
### 缺口 GAP-004: 失败清单下载是否记审计日志未确认,审计留痕范围存在豁口
- 需求条目: REQ-017(P0)/ 测试点 TP-D-003 / 用例 067
- 缺口类型: 断言未覆盖(失败清单含货源单号/运单号,属敏感业务数据,其下载留痕当前无用例断言,依赖 Q6)
- 风险等级: P1(REQ-017 主体"文件包下载审计"已由 TC-067 完整覆盖,本缺口为其延伸留痕项)
- 建议: 采纳用例文件建议"一并留痕"(与文件包下载同表或同流水),确认后在 TC-067 补充失败清单下载审计断言
### 缺口 GAP-005: 序号 int32 上限与 Excel 15 位精度截断边界无用例固化
- 需求条目: REQ-006(P0)/ 测试点 TP-U-008 / 用例 019
- 缺口类型: 边界场景无用例(用例文件实现口径确认项 9 自认"TP-U-008 未单列用例,建议执行 019 时顺带探测")
- 风险等级: P2(序号业务上通常 ≤2000,极值输入概率低,但一旦静默截断将破坏"最小序号"判定链)
- 建议: 在 TC-019 清单中显式追加 2 行极值序号数据(int32 上限、15 位以上数字),固化断言"合法或明确报错,不得静默截断"
### 缺口 GAP-006: 多 Sheet 工作簿、表头后附加说明行、合并单元格清单的解析口径无用例
- 需求条目: REQ-004/REQ-005(P1/P0)/ 测试点 TP-U-001、TP-U-004
- 缺口类型: 边界场景无用例(数据缺口 #15 自认"本文件未固化断言")
- 风险等级: P2
- 现状: TC-009 仅覆盖"模板自带说明行不参与解析"这一特例;用户自造多 Sheet/说明行/合并单元格文件的读取行为(读取首 Sheet?整体拒绝?)无任何用例约束
- 建议: 补充 1 条解析口径用例,或经需求/开发确认后显式声明"仅读首 Sheet、其余忽略"并写入用例前置说明
### 缺口 GAP-007: 运单号大小写匹配口径未显式覆盖
- 需求条目: REQ-006(P0)/ 测试点 TP-U-011 / 用例 022
- 缺口类型: 边界场景无用例(TP-U-011 关键验证点含"大小写/前后空格匹配口径一致",TC-022 仅覆盖前后空格变体,无大小写变体行)
- 风险等级: P3
- 建议: 在 TC-022 清单追加 1 行大小写变体运单号,验证存在性校验与实际导出同口径
## 过度覆盖
### 冗余 RED-001(条件性): TC-044 结构预览弹窗用例悬于未确认功能之上
- 用例: PLT_TMS_FPKG_044(承接 TP-T-008,标注 REQ-011)
- 问题: "查看结构/文件包结构预览"仅见于原型、需求正文未定义(待确认 Q1)。当前状态下可追溯到 TP-T-008→REQ-011,不计为硬性冗余;但若需求方确认本期裁剪该功能,TC-044 即成为无需求依据的过度覆盖
- 建议: Q1 确认裁剪则删除 TC-044 并同步移除 TP-T-008;确认实现则按弹窗实际字段回填断言后保留。冗余率影响: 裁剪情形下 1/82 ≈ 1.2%,仍 ≤ 5% 门限
**硬性冗余统计**: 0/82 = 0%(全部 82 条用例均可逆向追溯到 REQ/TP),≤ 5% 门限 ✅
**冗余倾向观察(不判为 RED,保留合理)**: TC-081 断言 3(.xls 改后缀 .xlsx 被拒)与 TC-011 部分重叠——属兼容性维度的跨模块交叉验证(RISK-COMPATIBILITY),且两用例执行环境不同(解压工具/浏览器 vs 接口直传),保留合理;TC-001 冒烟与明细用例存在主链路重叠,属用例文件声明的"端到端冒烟单独成条"设计原则,保留合理。
## 覆盖热力图
> 按 TP 文档六大模块统计。关联需求条目数为该模块 TP 触及的去重 REQ 数(一条 REQ 可跨多模块被计数,合计 40 条次 > 26 条);用例数含跨模块共用的 TC-001(冒烟,在三个模块各计 1 次,合计 84 计次 - 2 重复 = 82 条唯一)。
| 模块 | 关联需求条目 | 测试点(P0/P1/P2/P3) | 用例 | 覆盖密度 |
| :--- | :---: | :---: | :---: | :--- |
| 菜单与权限 | 3(REQ-001/002/026) | 5(3/1/1/0) | 7 | ███ 适中 |
| 上传与校验 | 7(REQ-001/003/004/005/006/007/023) | 18(11/6/1/0) | 24 | ██████████ 密集 |
| 任务与列表 | 7(REQ-007/008/009/011/018/019/024) | 8(2/5/0/1) | 14 | ██████ 较密 |
| 打包归批与文件包结构 | 7(REQ-010/011/012/013/014/015/026) | 14(6/7/1/0) | 20 | ████████ 密集 ⚠️ GAP-001 |
| 下载与幂等审计 | 4(REQ-008/016/017/025) | 6(3/2/0/1) | 8 | ███ 适中 ⚠️ GAP-004 |
| 非功能 | 12(REQ-001/002/004/015/016/017/020/021/022/023/024/026) | 8(0/5/3/0) | 11 | █████ 较密 ⚠️ GAP-003 |
**盲区高亮**:
- 无硬盲区: 不存在"无测试点的需求"(26/26)、"无用例的测试点"(59/59)、"无需求依据的用例"(82/82)。
- 待确认型盲区(需求侧未决传导,非用例缺失): 集中在 **打包归批**(GAP-001,文件缺失剔除触发证件改挂的口径,BLOCKED)与 **非功能**(GAP-003,过期展示/临界口径);**下载与幂等审计** 的盲区为审计留痕范围延伸(GAP-004)。
- 密度观察: 上传与校验(24 用例/18 TP,均值 1.33)与打包归批(20/14,均值 1.43)覆盖最厚,与"校验规则 + 归批规则是本需求复杂度核心"的判断一致;下载与幂等审计均值 1.33 但绝对量最少(8 条),其中 3 个 P0(下载/幂等/审计)均有专项 P0 用例,密度虽低但关键面无缺口。
- 模块口径说明: 用例文件的模块分布(菜单权限 7/上传校验 13/数据校验 10/任务列表 13/打包归批 20/下载审计 7/非功能 11/跨模块冒烟 1)中,"数据校验"10 条在本热力图中并入"上传与校验"(对应 TP-U-008~016 的承接用例),"跨模块冒烟"001 按其实际承接的 TP 归入三个模块重复计数。
## 审计结论
量化指标全部达标(需求覆盖 100%、P0/P1 测试点覆盖 100%、过度覆盖 0%),追溯标注质量高(抽查 6 处可疑标注,5 处成立、1 处为无害的描述不一致)。**签发建议: 有条件通过** —— 以 GAP-001(BLOCKED,REQ-015 关键验证点"文件缺失剔除→证件改挂"断言未固化)的需求侧确认为签发前置条件;GAP-002~004 随 Q4/Q5/Q6 确认回填断言;GAP-005~007 为低成本补强项,建议随执行批次吸收。