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:
@@ -0,0 +1,138 @@
|
||||
# 运单资料文件包下载需求 评审报告
|
||||
|
||||
> 评审人: 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 个阻断项修复后即可达到可执行与可导出标准 |
|
||||
Reference in New Issue
Block a user