Files
Yb-QaAutomationHub/output/analysis/运单资料文件包下载需求_评审报告.md
T
xst 901b6741ff 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 锁文件
2026-09-09 09:31:55 +08:00

139 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.
# 运单资料文件包下载需求 评审报告
> 评审人: case-reviewer(Agentic QE Fleet · review 战区)
> 评审时间: 2026-09-08
> 被评审对象: output/test_cases/运单资料文件包下载需求_测试用例.md(82 条,PLT_TMS_FPKG_001~082)
> 评审依据: agents/review/case_reviewer.md(7 维度)、knowledge_base/01_standards/review_checklist.md、test_case_template.md、definition_of_done.md
> 校准输入: requirements/运单资料文件包下载需求.md(v1.0 定稿,13 项确认决议)、output/test_points/运单资料文件包下载需求_测试点.md(59 测试点)、output/analysis/运单资料文件包下载需求_风险评估.md(P1=RISK-AVAILABILITY)、output/analysis/运单资料文件包下载需求_测试数据.md(145 组数据)、knowledge_base/01_standards/terminology.md
> 核验手段: 逐条人工评审 + 脚本核验(表格列数、编号连续性、优先级/类型/模块分布、必填列空值、数据 ID 与数据文件交叉比对)
## 评审概览
| 指标 | 值 |
| :--- | :--- |
| 用例总数 | 82 |
| 阻断项 | 3 |
| 建议项 | 4 |
| 优化项 | 7 |
| 评分 | 89/100 |
总体结论:用例集质量高——表头/列数/编号/模块路径零缺陷(脚本核验),59/59 测试点全部承接,13 项确认决议全部落地无违背,术语与术语表一致,预期结果普遍做到"UI/接口反馈 + 数据状态"双覆盖。3 个阻断项集中在 2 处测试数据引用缺陷与 1 处场景遗漏(0 有效行终态待确认项未显式标注),均可精确定位、快速修复;修复后即可达到可执行标准。
## 阻断项
### B-001: 039 的测试数据引用与数据文件定义冲突(XLS-006 行数标注错误)
- 用例编号: PLT_TMS_FPKG_039
- 行号: 表格数据行第 39 行(文件 L69)
- 问题: 测试数据列标注 `XLS-006(1000 行)`,但 XLS-006 在测试数据文件中定义为 1~2000 行的"行数上限合法文件(2000 行全有效)"(测试数据文件 L35),且同文件 015/061/072/082 均按 2000 行使用 XLS-006。本用例步骤与前置条件均要求"1000 行规模合法清单(CNC-001/CNC-006)"。数据 ID 与行数标注自相矛盾,执行人按 ID 取数会取到 2000 行文件,与步骤"上传 1000 行清单"冲突,无法按写明数据直接操作。
- 修复建议: 测试数据列改为 `BND-007(1000 行清单,按 CNC-006 的 500 批×2 运单混合结构构造)`,与 072 的写法保持一致。
- 修复后预期: 数据 ID、步骤、前置条件、数据文件定义四方一致,执行人可直接构造 1000 行清单执行进度观察断言。
### B-002: 026 的数据构造自相矛盾(序号重复行 vs 序号互不相同)
- 用例编号: PLT_TMS_FPKG_026
- 行号: 表格数据行第 26 行(文件 L56)
- 问题: 前置条件为"1 行合法(XLS-001)+1 行序号重复(XLS-106 重复行)+……各行序号取互不相同的合法值"。序号重复行必须与文件内另一行同序号才会触发"序号重复"失败;若按字面"各行序号互不相同"构造,该行不会失败,实际失败数=4,与预期断言"成功数=1+失败数=5=总行数 6"冲突。执行人按字面执行将得到与预期不符的结果。
- 修复建议: 前置条件改写为"重复行与合法行 XLS-001 共用序号 1(XLS-001 为首现行保留并成功,重复行计失败,口径同 020),其余 4 个失败行(XLS-110/111/113/107)序号取互不相同的合法值(如 2/3/4/5)"。
- 修复后预期: 按前置条件可直接构造 6 行数据,执行结果与断言 1/4(成功=1、失败=5)自洽,5 类失败原因互不串行。
### B-003: "全部行数据级失败(0 有效行)"场景无用例承接且待确认口径未显式标注
- 用例编号: 无(场景缺口,涉及 CMB-018 / 数据缺口 #14)
- 行号: 用例集整体(文末"未收敛的 ⚠️ 待确认清单"与"其他实现口径确认项"均未收录该项)
- 问题: 需求 4.2.2 处理原则未定义"剔除失败行后 0 有效行"的任务终态(已完成·部分失败 or 失败)与是否生成空文件包;测试数据文件已将该场景构造为 CMB-018 并列为数据缺口 #14("需求方/开发确认")。用例文件对缺口 #15/#16/#17 均已显式纳入文末确认项,唯独遗漏 #14:既无用例承接该异常/边界场景,也无 ⚠️ 待确认标注。对照 review_checklist 阻断项"需求存在明显待确认项,但未显式标注"及 DoD §4"不得静默遗漏",属于状态流转维度的不闭合。
- 修复建议: 新增 1 条 P1 功能测试用例(建议编号 PLT_TMS_FPKG_083,模块 平台端-运单管理-运单文件包-数据校验):前置构造 3 行全非法清单(XLS-101+XLS-110+XLS-107),断言任务终态、成功数=0、统计一致且对象存储无空包(口径按缺口 #14 确认后回填,暂按"已完成·部分失败、不生成空 zip"设计并在备注标注 `⚠️ 待确认:0 有效行终态,见数据缺口 #14`);同时在"其他实现口径确认项"补充缺口 #14 条目。
- 修复后预期: 0 有效行边界具备可执行用例与显式待确认标注,与其他数据缺口处理方式一致,无静默遗漏。
## 建议项
### S-001: 007/008 多机构隔离用例的数据与环境前置未闭环
- 用例编号: PLT_TMS_FPKG_007 / PLT_TMS_FPKG_008
- 行号: 表格数据行第 37/38 行(文件 L37/L38)
- 问题: B 机构运营账号、任务编号 TB、运单号 YDB-001 均为行内临时记号,未分配数据 ID,也未列入数据缺口清单(缺口 #1 仅覆盖本机构运单号映射);测试环境是否为多机构部署亦无来源标注(脚本核验:YDB-001 是全部 82 条中唯一在数据文件无定义的引用)。执行前无法确认数据可获取,前置条件可复现性存疑。
- 修复建议: 为 B 机构数据分配数据 ID(如 ACC-B01、YDB-001)并在测试数据文件"数据缺口"补充"多机构部署环境 + B 机构运营账号 + B 机构运单"条目;若测试环境不支持多机构部署,在 007/008 备注显式说明取舍原因,不得静默保留。
- 修复后预期: 007/008 的前置条件可复现、数据来源可追溯,与全文件数据 ID 纪律一致。
### S-002: 007/008 以 super_admin 充当"A 机构运营账号"做隔离断言存在口径风险
- 用例编号: PLT_TMS_FPKG_007 / PLT_TMS_FPKG_008
- 行号: 表格数据行第 37/38 行(文件 L37/L38)
- 问题: 数据文件定义 ACC-001 为"超级管理员(代行运营人员)、全部权限"。超管在多机构部署下可能按设计具备跨机构可见性:若如此,断言"ACC-001 任务列表不显示 B 机构任务"会因角色能力而失败(误报缺陷),或掩盖机构隔离缺陷(漏报)。
- 修复建议: 机构隔离断言改用绑定 A 机构的非超管运营账号(可复用 ACC-002 并补充机构绑定关系),或在 007 前置条件中先与开发确认 super_admin 在多机构下的可见范围并将结论写入预期结果。
- 修复后预期: 隔离断言基于受控权限角色,失败时可归因到数据权限缺陷而非角色差异。
### S-003: 007 的 P2 与项目画像"权限类必测机构隔离"硬约束权重不匹配
- 用例编号: PLT_TMS_FPKG_007(关联 PLT_TMS_FPKG_008)
- 行号: 表格数据行第 37 行(文件 L37)
- 问题: 项目画像 §10 要求权限类用例必须验证机构数据隔离,007 承载任务列表+下载双隔离主场景却为 P2(沿袭测试点 TP-M-005 的 P2 定级),008(上传行级失败隔离)同为 P2。按 review_checklist §8"不得把高风险场景错误下沉到 P2"的精神,主隔离场景降权依据不足。
- 修复建议: 将 007 升为 P1(008 可保持 P2);或在"P2/P3 用例取舍说明"中补充机构隔离保持 P2 的权重论证(如当前部署形态下跨机构风险实际较低)。
- 修复后预期: 优先级与项目画像硬约束的权重口径一致,或有显式的降权理由。
### S-004: 跨货源归批(不拆批侧)规则组合未承接
- 用例编号: 无(建议并入 045 或 046,涉及 CMB-007)
- 行号: 关联表格数据行第 75/76 行(文件 L75/L76)
- 问题: "同一司机+身份证+车牌三要素一致、运单分属不同货源时仍归 1 批(归批不看货源单号)"是归批规则(REQ-010)的关键组合验证:现有用例覆盖了"任一要素不同即拆批"(046/047),但"三要素一致不因货源不同而拆批"的负向对照缺失;数据文件已构造 CMB-007 却无用例承接。
- 修复建议: 在 045 或 046 的上传清单中并入 CMB-007 行组(张三+皖A12345 跨 HY202609001/HY202609002 的运单各 1 单),增加断言"跨货源运单仍归同一批次包,两个运单包分别按各自货源单号命名"。
- 修复后预期: 归批维度"拆批"与"不拆批"两侧均有用例,防止实现按货源单号错误分组。
## 优化项
### O-001: 046 单条用例合并两个真实业务场景,与文末取舍说明表述不一致
- 用例编号: PLT_TMS_FPKG_046
- 行号: 表格数据行第 76 行(文件 L76)
- 说明: 046 含两次独立上传(CMB-003 同司机换车、CMB-004 同车换司机),而文末取舍说明将 TP-P-002 列为"不同真实业务场景拆为独立用例",与实际不符。两场景验证点同为"任一要素不同即拆批",故列为优化。
- 建议: 拆为两条独立用例(同司机换车 / 同车换司机),或将取舍说明中 TP-P-002 的表述修正为"按要素维度拆分(046 换车与换司机、047 同名不同证)"。
### O-002: 033 五种状态颜色映射未列明"待处理"标签颜色
- 用例编号: PLT_TMS_FPKG_033
- 行号: 表格数据行第 63 行(文件 L63)
- 说明: 断言 2 仅列处理中蓝/已完成绿/失败红/已完成·部分失败橙,未明确"待处理"标签颜色(原型为灰色态)。
- 建议: 补齐"待处理灰色",使五种状态的颜色映射断言完整闭环。
### O-003: 049 断言 2 措辞"(非空目录亦无文件)"存在歧义
- 用例编号: PLT_TMS_FPKG_049
- 行号: 表格数据行第 79 行(文件 L79)
- 说明: 括号内表述易被误读,测试点原文意图是"既不得生成空的司机/车辆证件子目录,也不得含任何证件文件"。
- 建议: 改写为"确无司机证件/车辆证件子目录(既不生成空目录,目录内也不得含任何证件文件)"。
### O-004: 041"构造同 026 数据"的引用与实际失败集不一致
- 用例编号: PLT_TMS_FPKG_041
- 行号: 表格数据行第 71 行(文件 L71)
- 说明: 041 实际为 XLS-101/110/111/113 四类失败行(序号 0/不存在/错配/无法归批),026 为 XLS-106/110/111/113/107 五类;"构造同 026 数据"会误导执行人复制错误失败集。
- 建议: 改为"参照 026 的构造方式,含 XLS-101/110/111/113 四类失败行 + 1 行合法行"。
### O-005: ERR-034(源文件名 XSS)已定义数据但无用例承接
- 用例编号: 建议并入 PLT_TMS_FPKG_029
- 行号: 关联表格数据行第 59 行(文件 L59)
- 说明: 数据文件定义了 ERR-034(`<img src=x onerror=alert(1)>.xlsx`,接口构造,列表转义展示断言),029 已覆盖源文件名超长/特殊字符/Unicode,仅差 XSS 变体一处断言(属 TP-U-016 防御完整性)。
- 建议: 在 029 断言 2 中并入"含脚本标签的源文件名在任务列表转义展示、不触发弹窗"。
### O-006: CNC-007(双账号并发上传)未承接
- 用例编号: 建议并入 PLT_TMS_FPKG_073 或 066
- 行号: 关联表格数据行第 103/96 行(文件 L103/L96)
- 说明: CNC-007(ACC-001 与 ACC-006 同时上传,任务互不干扰、上传人字段各自正确)为数据文件已构造的多账号并发场景,当前无用例覆盖;066 仅覆盖双账号下载。
- 建议: 在 073 的 5 任务并发中安排双账号提交并核对上传人字段,成本极低。
### O-007: XLS-005/BND-024 与 XLS-115 两处已构造数据未承接
- 用例编号: 建议在 019/026 执行时顺带探测
- 行号: 关联表格数据行第 49/56 行(文件 L49/L56)
- 说明: 大数值序号 50000 合法(XLS-005/BND-024)与单行多重非法的失败原因取值优先级(XLS-115)均无用例显式承接;前者可与确认项 #9 的 BND-025~027 同批探测,后者可在 026 执行时顺带验证原因展示优先级(019 断言 2 已有"首要或并列展示"的铺垫)。
- 建议: 不新增用例,在 019/026 的步骤或备注中补一句顺带探测说明即可。
## 专项核查结论(任务指定核查项)
1. **预期结果双覆盖(UI/接口 + 数据状态)**: 通过。82 条用例的预期结果均同时覆盖页面/接口反馈与数据状态校验(典型:010 统计卡片计数与数据库任务表比对、011 数据库无任务记录、016 对象存储无空包残留、061 zip 全量清点与统计"不出现两张皮"、065 下载前后数据库字段一致、066 服务端完成时间与存储不变、076 保留期字段与清理记录)。仅 030(易用性)与 033(标签映射)以 UI 断言为主,与类型定位匹配,且状态字典的数据侧校验由 032 断言 4 兜底。
2. **测试步骤引用具体测试数据**: 通过。全部 82 条步骤/数据列均引用数据文件 ID(XLS/ERR/BND/IDC/STT/CMB/CNC),脚本核验引用 ID 100% 在数据文件有定义(唯 B-001 的错误标注与 S-001 的 YDB-001 除外);多数步骤还写明构造手段(openpyxl 构造、接口直传、抓包重放、运维配合 mock)。
3. **P1 风险 RISK-AVAILABILITY(并发排队/幂等/重试)专项**: 已覆盖且步骤可执行——073 并发上限与排队(BND-051~053/CNC-002/003,10 秒级轮询+终态逐一验证 zip,备注显式"不得省略")、074 毫秒级并发幂等(前端防抖+后端幂等键双断言,CNC-008)、075 上传超时提示与重试防双任务、057/058 OBS 单文件重试两侧边界(恰 3 次)、079/080 OBS 整体不可用降级与恢复、066 下载幂等(CNC-005 哈希比对)、043 处理中服务异常置失败。P1 风险缓解链完整。
4. **术语一致性**: 通过。菜单名"运单文件包"、批次/文件包(批次包)/运单包/总包/最小序号运单/电子回单/失败清单/审计日志/幂等性等用法与需求二章、4.4.2 及 terminology.md 一致;角色用"车队长""运营人员"无同义词混用;"银行电子回单"口径与术语表定义吻合。
5. **已确认决议核对(第八章 13 项)**: 全部落地且无违背——#1→002、#2→003/004、#3/#12→048/064、#4→049、#5→050、#6→023、#7→034、#8→053/054、#9→015/017、#10→076、#11→069(防过度实现)、#13→020。Q1/Q4/Q5/Q6 四项保留待确认已在 044/063/077/067 备注显式标注(符合 DoD,不计缺陷);Q2/Q3 的收敛在 015/016 备注留有"实现不符需回归修订"的触发条件,处理得当。
6. **追溯与统计**: 59/59 测试点全部有用例承接(文件头映射表逐条核对无遗漏);历史缺陷 BUG-202607-01/02/03 分别落到 068、058/074、061/062/063 且备注带 [AI修正] 来源标注;文末自述的优先级/类型/模块分布与脚本实测完全一致。
## 维度评分
| 维度 | 得分 | 说明 |
| :--- | :---: | :--- |
| 结构完整性 | 20/20 | 表头与 template 逐字一致;82 行均 10 列、无残缺无全角竖线;必填列无空;模块全部为层级路径且分布与自述一致;编号 001~082 连续唯一(脚本核验) |
| 可执行性 | 18/25 | 数据 ID 纪律优秀、步骤含轮询/构造/抓包等可操作手段;扣分项:039 数据引用错误(B-001)、026 数据构造自相矛盾(B-002)、007/008 环境与数据前置未闭环(S-001/S-002) |
| 原子性 | 14/15 | 无"多关键断言混杂"的阻断问题;拆分/合并总体遵循文末原则;扣分项:046 双场景合一且取舍说明表述不一致(O-001) |
| 预期结果质量 | 18/20 | 预期具体可验证、普遍含数据库/对象存储侧校验、失败可定位(前端/后端/规则/数据/异步分层断言);扣分项:0 有效行状态流转场景缺失致覆盖不闭合(B-003) |
| 类型准确性 | 10/10 | 枚举全部合法且与内容匹配(安全性 10 条对应越权/注入/审计/合规,回归 7 条均有历史缺陷或冲突修订依据,性能 3 条对应 RT/并发容量);自述类型分布与实测一致 |
| 优先级合理性 | 9/10 | P0=32(39%)与测试点 P0 占比(42%)匹配,全部 P0 测试点有 P0 用例承接,无高风险下沉;扣分项:007 机构隔离 P2 权衡存疑(S-003) |
| **合计** | **89/100** | 3 个阻断项修复后即可达到可执行与可导出标准 |