- 需求 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 脚本骨架、覆盖率审计脚本与指标、评审修复脚本
20 KiB
20 KiB
物流公司管理需求 评审报告
评审对象:
output/test_cases/物流公司管理需求_测试用例.md(164 条用例,表头 L22、分隔线 L23、用例 1164 对应 L24L187) 评审依据:knowledge_base/01_standards/review_checklist.md、test_case_template.md、definition_of_done.md、output/test_points/物流公司管理需求_测试点.md(159 个测试点)、output/analysis/物流公司管理需求_风险评估.md(RISK-DATA P1)、requirements/物流公司管理需求.md(v1.1)、output/analysis/物流公司管理需求_测试数据.md本报告仅评审与给出修复文本,不修改用例文件;修复由流水线按本报告统一执行。
评审概览
| 指标 | 值 |
|---|---|
| 用例总数 | 164 |
| 阻断项 | 2 |
| 建议项 | 9 |
| 优化项 | 3 |
| 评分 | 92/100 |
评审结论摘要:
- 口径写反类问题:未发现。八个高危口径逐条核对通过(详见"口径专项核对"),其中"停用公司在核算弹窗不可见 / 在打款筛选下拉可见"两个相反口径分列于正确用例、未写反未合并。
- 结构、原子性、类型、优先级四个维度逐项核对通过;RISK-DATA(P1) 三类核心场景(并发唯一、快照、删除保护)均落到 P0/P1 用例。
- 11 处测试点
⚠️ 待确认的承接用例全部带[待确认]标注;另 6 项口径细化中 2 项(口径 a、f)存在标注缺失,构成阻断项。 - 主要的可执行性风险集中在跨用例执行顺序(LC-04 删除与重建资源的唯一执行点未定义)。
口径专项核对(阻断级维度,逐条给出结论)
| 口径项 | 结论 | 证据用例 |
|---|---|---|
| 总原则:关联仅记录展示、不阻断任何流程(强约束仅 BR-01/BR-04) | 逐项核对通过 | PLT_TMS_LC_022/031、PLT_BSC_LC_022 均含"无阻断/不影响"正反向断言 |
| 核算即运单核算、无"核算单";"核算单"仅出现在"禁出现"核验语境 | 逐项核对通过 | PLT_TMS_LC_001(全页检索禁字样)、015(无核算单表新增行)、078;全文检索"核算单"11 处全部为负向语境 |
| 单选、选填、仅启用公司可选、无生效合同可勾选、未选公司保存为"无外协公司" | 逐项核对通过 | PLT_TMS_LC_003(仅启用)、008(Q3 可勾选)、009(Q1 单选)、013(Q2 未选保存) |
| 两个相反可见性口径:核算弹窗"停用不可见" vs 打款下拉"含停用" | 逐项核对通过(未写反、未合并) | 不可见:PLT_TMS_LC_003、PLT_BSC_LC_057/059;含停用:PLT_TMS_LC_037、PLT_BSC_LC_058;037 与 003 互为对照 |
| 快照口径:改名/停用/删除后历史展示不变 | 逐项核对通过 | PLT_TMS_LC_050(改名)、051(停用)、052(删除);PLT_BSC_LC_053/058 联动 |
| Q5 道路运输经营许可证选填;Q6 合同附件不设大小上限 | 逐项核对通过(无"超大小被拒"反向断言) | PLT_BSC_LC_019(Q5)、075(Q6,"大文件不被前端大小校验拒绝") |
| 分页默认 20(可选 10/20/50/100)、导出上限 20000(截断或提示,非硬拒) | 逐项核对通过 | PLT_BSC_LC_010、014、083;PLT_TMS_LC_006 |
| RISK-DATA(P1) 核心场景(唯一性双保险/快照/删除保护) | 逐项核对通过(均 P0/P1,无下沉) | PLT_BSC_LC_037(并发同码)、050/051/052/053、PLT_TMS_LC_050/051/052 |
阻断项
B-001: 待确认口径 f(纯空格/空白字符判定)承接用例缺失 [待确认] 标注且按单一口径断言
- 用例编号: PLT_BSC_LC_028(L51)、PLT_BSC_LC_032(L55)
- 问题: 两例预期结果分别写"纯空格提交按未填处理被阻断(trim 后为空口径)""纯空格按未填处理被阻断",把测试数据 §10 补充-6 的待确认口径直接当成已确认事实;同源的 PLT_BSC_LC_022 已按规范标
[待确认],而 028/032 备注("对应TP-B-010;REQ-007"、"对应TP-B-014;REQ-007(漏测清单 §1 超长字符)")无任何标注。属"待确认相关用例缺失显式标注",且与文末自检结论"待确认项 11+6 处均在备注与文末显式标注"的声明不符。 - 修复建议(可直接套用):
- PLT_BSC_LC_028 备注改为:
对应TP-B-010;REQ-007;[待确认] 纯空格/空白字符在必填字段中是否按空处理(见测试数据 §10 补充-6,与 PLT_BSC_LC_022 同口径) - PLT_BSC_LC_028 预期结果第 3 条改为:
3. 纯空格提交的实际行为记录(按空拦截 或 通过),与测试数据 §10 补充-6 口径比对后回归(评审确认前不得静默按单一口径判定) - PLT_BSC_LC_032 备注改为:
对应TP-B-014;REQ-007(漏测清单 §1 超长字符);[待确认] 纯空格/空白字符是否按空处理(见测试数据 §10 补充-6) - PLT_BSC_LC_032 预期结果第 3 条改为:
3. 纯空格提交的实际行为记录(按空拦截 或 通过),与 PLT_BSC_LC_022 口径比对后回归
- PLT_BSC_LC_028 备注改为:
- 修复后预期: 028/032 与 022 的待确认处理方式一致(标注 + 记录实际行为 + 评审后回归),满足"待确认项必须显式标注、不得臆造"的门禁要求。
B-002: 待确认口径 a(合同附件扩展名大小写)承接声明落空——无标注、无样本、无步骤
- 用例编号: PLT_BSC_LC_073(L96)、PLT_BSC_LC_074(L97)
- 问题: 用例文末待确认汇总声明"a) 合同附件扩展名大小写口径(.PDF/.Jpg 是否放行)——承接 PLT_BSC_LC_073/074",但两例备注均无
[待确认]标注,且全文(含 073/074 步骤与预期)无 AT-03 样本、无任何大写扩展名验证(全文检索"AT-03""大写扩展名"命中 0 处)。该待确认项实际处于"有声明、无承接、无标注"状态,属标注缺失型漏项。 - 修复建议(可直接套用):
- PLT_BSC_LC_073 步骤追加:
5. 上传大写扩展名样本(合同.PDF、合同.Jpg,AT-03)并记录实际口径 - PLT_BSC_LC_073 预期结果追加:
5. 大写扩展名的实际处理行为记录(大小写不敏感放行 或 仅接受小写并提示),与评审结论对齐后回归,不得静默按单一口径断言 - PLT_BSC_LC_073、PLT_BSC_LC_074 备注分别追加:
;[待确认] 合同附件扩展名大小写口径(.PDF/.Jpg 是否放行,见测试数据 §10 补充-1)
- PLT_BSC_LC_073 步骤追加:
- 修复后预期: 口径 a 具备显式承接用例与标注,AT-03 样本纳入执行范围,大小写放行结论由评审确认后固定。
建议项
S-001: PLT_BSC_LC_017 步骤 3 与步骤 4 流程矛盾,后半段不可按序执行
- 用例编号: PLT_BSC_LC_017(L40)
- 问题: 步骤 3 预期"上传后提交不再因营业执照阻断并保存成功"——一旦保存成功表单即关闭、记录已创建;步骤 4"删除已上传的营业执照后再次提交"在同一表单流程内无法继续(且同名二次提交会先被名称唯一性拦截,阻断原因不再是营业执照)。
- 修复建议: 步骤 3 改为
上传营业执照_测试甲.jpg 后再次提交(验证提交不再因营业执照被阻断;完整成功链路由 PLT_BSC_LC_038 覆盖);步骤 4 改为在新增页重新打开表单(名称改用"云南测试营业执照校验物流有限公司2"等新唯一值),上传营业执照后删除该证件,再次提交。 - 修复后预期: "未传→阻断、上传→通过、删除→再阻断"三步在同一环境可连续执行,各步阻断原因均指向营业执照。
S-002: LC-04 删除动作无唯一执行点——PLT_BSC_LC_049 与 PLT_BSC_LC_054 均执行确认删除
- 用例编号: PLT_BSC_LC_049(L72)、PLT_BSC_LC_054(L77)
- 问题: 049 步骤 4"再次点击删除并在确认框中确认"会实际完成 LC-04 删除(LC-04 无合同无引用,校验必然通过);054 前置却要求"LC-04 存在且列表可见"并再次执行删除。两例在同一数据集上先后执行必有一例失效,且 006/034/035/036/053/056/061 的"LC-04 已删除"前置来源不明。
- 修复建议: 让 049 只验证"取消不变更"与"确认后进入删除校验流程",删除主执行归 054:049 步骤 4 改为
再次点击删除并在确认框中确认,记录删除结果(本步完成后 LC-04 即为已逻辑删除状态),并在 054 前置注明若 PLT_BSC_LC_049 已执行确认删除,则本用例前置改为"LC-04 已逻辑删除",步骤 1 改由备用样本(新造可删除公司)执行;或反向:049 删除步骤 4、删除动作统一由 054 执行。 - 修复后预期: DL-04 删除动作全程只发生一次,依赖"LC-04 已删除"的后续用例前置有确定来源。
S-003: "删除后重建"同一资源被 4 条用例重复消费,顺序执行时互相拦截
- 用例编号: PLT_BSC_LC_034(L57)、035(L58)、036(L59)、061(L84)
- 问题: 四例均以 LC-04 的名称/统一社会信用代码/简称码(YND)作为"删除后可复用"样本并断言创建成功:034 创建同名公司、035 创建同码公司、036 创建同简称码公司、061 同时创建同名+同码公司(另加 YND 公司)。顺序执行时先创建者的 active(deleted=0)记录会命中后创建者的唯一性校验,与各例"允许创建成功"预期直接冲突(034/061 撞名称、035/061 撞代码、036/061 撞简称码)。
- 修复建议: 保留单一"重建"样本(DL-06),做一次性创建:由 PLT_BSC_LC_061 执行"名称+代码+简称码"三个复用创建,其余用例改为核对已创建记录;或为 061 另备独立样本(新造并删除一家临时公司,复用其三元组)。同时在各例备注标注承接关系(如"承接 DL-06 重建记录,本用例只核对不新建")。
- 修复后预期: 唯一性不含已删除公司(BR-01)的结论由一次可复现的创建链证明,四例之间不再互相拦截。
S-004: PLT_BSC_LC_061 步骤与预期计数不一致
- 用例编号: PLT_BSC_LC_061(L84)
- 问题: 步骤 1、2 共新建 2 家公司,但预期第 2 条写"新建公司与已删除行在数据库并存(deleted=0 与 deleted=1 两条记录)"、第 3 条写"列表仅展示新建公司(1 条)",均按 1 家新公司计数,步骤与预期对不上。
- 修复建议: 预期第 2 条改为
新建的 2 家公司与已删除行在数据库并存(2 条 deleted=0 + 1 条 deleted=1),无唯一性误拦;预期第 3 条改为列表仅展示新建的 2 家公司(不含已删除行),导出/统计不混淆新旧。若希望保持 1 家新建,则将步骤 2 的简称码复用并入步骤 1 同一表单,并同步调整预期。 - 修复后预期: 计数断言与步骤一一对应,执行时可直接按行核对。
S-005: PLT_BSC_LC_052 构造路径二义、预期第 1/2 条无法唯一判定
- 用例编号: PLT_BSC_LC_052(L75)
- 问题: 步骤 1"用 LC-02 移除引用后重试或新造公司"给出两条互斥构造路径(移除 WT-03 引用会污染被 051/058 等复用的共享样本);预期第 1/2 条仅写"不因合同条件阻断(提示原因不含生效合同)",对"删除到底成功还是被其他条件阻断"没有可唯一判定的最终结果。
- 修复建议: 固定构造路径:步骤 1 改为
新造公司 A(仅挂待生效合同、无运单/货源引用)发起删除,步骤 2 改为新造公司 B(仅挂已过期合同、无引用)发起删除;预期第 1/2 条改为删除成功(deleted=1、列表消失),提示中不含"生效合同"原因;若产品口径为阻断则按双分支记录实际行为。 - 修复后预期: 构造不动用 LC-02/WT-03 共享样本,判定标准唯一,与 TP-D-004 三态拆分要点一一对应。
S-006: PLT_BSC_LC_067 步骤 4 与预期第 3 条表述互斥
- 用例编号: PLT_BSC_LC_067(L90)
- 问题: 步骤 4"在 LC-03 下新增另一条编号 HT-2026-0001 复核允许性"与预期第 3 条"LC-03 下再次新增同号仍被拒"方向相反(跨公司重复的"允许性"已由步骤 3 的 LC-01/LC-03 同号并存证明;步骤 4 实际验证的是同公司唯一)。
- 修复建议: 步骤 4 改为
在 LC-03 下再次新增编号 HT-2026-0001,验证同公司唯一性仍然生效;预期第 3 条保持"仍被拒(同公司唯一基于 company_id 范围)"不变。 - 修复后预期: 步骤与预期同向,"同公司唯一/跨公司允许"两条规则分别可证。
S-007: PLT_TMS_LC_037 与 PLT_BSC_LC_056 对"已删除公司在打款下拉"口径不一致
- 用例编号: PLT_TMS_LC_037(L143)、PLT_BSC_LC_056(L79)
- 问题: 037 预期第 4 条把"已删除公司是否出现在打款筛选下拉"作为"记录实际行为"的观察项;而 056 预期第 1 条与 TP-D-008、测试数据 SS-08 均断言"列表、导出、核算勾选、货源选择、打款筛选下拉均不含已删除公司"。同一问题一处断言、一处观察,执行结论会互相冲突。
- 修复建议: 统一为断言(推荐):037 预期第 4 条该分句改为
已删除公司不出现在打款筛选下拉(与 PLT_BSC_LC_056/TP-D-008/SS-08 一致);或反之两处都改为"记录实际行为"并补[待确认]标注(二选一)。 - 修复后预期: 删除终态的可见性口径在两例中一致,质量门禁引用唯一结论。
S-008: 合同三个时间字段的必填校验无对应用例(建议增强 PLT_BSC_LC_069)
- 用例编号: PLT_BSC_LC_069(L92)
- 问题: 需求 6.4 明确签订时间/生效时间/过期时间均必填,且数据样本 CD-04(任一为空应阻断)已备;但用例仅覆盖"过期≤生效"的序关系(069),异常流程中缺"任一时间为空保存被阻断",与 DoD"异常流程/空值必须覆盖"存在缺口。
- 修复建议: PLT_BSC_LC_069 步骤追加
5. 分别留空签订时间、生效时间、过期时间各保存一次;预期追加5. 三项任一为空保存均被阻断、错误字段就近标红,弹窗不关闭、数据库无非法记录(样本 CD-04);备注追加"CD-04"。 - 修复后预期: 合同弹窗必填校验形成完整异常覆盖,CD-04 样本有承接。
S-009: PLT_BSC_LC_020 未覆盖道路运输经营许可证的格式白名单
- 用例编号: PLT_BSC_LC_020(L43)
- 问题: TP-B-005 要求"各证件允许格式逐一上传成功",020 覆盖了营业执照(jpg/jpeg/png/pdf)与身份证(jpg/jpeg/png + pdf/bmp 拒绝),但许可证(jpg/jpeg/png/pdf)既无通过样本也无拒绝样本(全文仅 PLT_BSC_LC_019 上传了 pdf 一个样本),"各证件"覆盖不完整。
- 修复建议: PLT_BSC_LC_020 步骤 1 改为
营业执照与道路运输经营许可证分别依次上传 .jpg/.jpeg/.png/.pdf 四格式;步骤 2 补充许可证上传 .bmp 被拒;测试数据列补DOC-07(许可证四格式)。 - 修复后预期: 四类证件白名单验证与需求 6.2 表格逐项对应,无覆盖盲区。
优化项
O-001: 笔误三处(不影响执行,建议顺手修正)
- PLT_BSC_LC_010 备注"漏收清单 §4 分页"应为"漏测清单 §4 分页"(L33)。
- PLT_BSC_LC_019 预期"不传许可证时提单成功"应为"提交成功"(L42)。
- PLT_BSC_LC_066 测试数据"生效=T-0、过期=T+365"建议改为"生效时间=T、过期时间=T+365"(L89,与 PLT_TMS_LC_081 的"生效时间=T"统一)。
O-002: 泛化尾述可收敛为具体断言
- PLT_BSC_LC_012 预期第 3 条"导出按钮行为符合平台口径"建议写明
导出按钮不可点 或 给出无数据提示(记录实际行为)(L35)。 - PLT_BSC_LC_041 预期第 4 条"页面功能正常"、PLT_TMS_LC_011 预期第 4 条"搜索、分页、单选功能正常"、PLT_TMS_LC_074 预期第 3 条"记录可正常操作"建议补具体动作与结果(如"可执行打款/驳回,状态流转与未筛选时一致")(L64 / L117 / L180)。
O-003: 数据引用小差异对齐
- PLT_TMS_LC_005 步骤关键词("测试庚""91532301")与所引 BLK-03 定义的样本("批量测试物流公司001""91530102MA00000")不一致,建议步骤或引用二者对齐其一(L111)。
- PLT_BSC_LC_040 步骤"连续点击'提交'按钮 3 次"与数据列 UQ-10 表述"1 秒连点 2 次"不一致,建议统一为 3 次并同步数据口径(L63)。
维度评分
| 维度 | 得分 | 说明 |
|---|---|---|
| 结构完整性 | 20/20 | 逐项核对通过。表头与 REQUIRED_COLUMNS 逐字一致;164 行每行恰 10 列、无空单元格、无半角竖线入格、无单元格内换行(统一 <br>);编号连续(BSC 001 |
| 可执行性 | 20/25 | 步骤均含具体菜单路径/按钮/输入值与测试数据 ID,无"输入合法数据"类空话;扣分:017 流程矛盾(S-001)、049/054 与 034/035/036/061 执行资源冲突(S-002/S-003)、052 构造二义(S-005) |
| 原子性 | 15/15 | 逐项核对通过。单主验证点;合成用例(022/052/064/070/081)与测试点 1:1 对应;边界成对(50/51、200/201、20000/20001)为文首组合约定且方向正确 |
| 预期结果质量 | 17/20 | 全部同时含 UI/接口反馈与数据状态变化(落库字段/状态位/日志/唯一约束/快照);扣分:028/032/073/074 待确认断言标注缺失(B-001/B-002)、052/061 预期与步骤计数/方向不一致(S-004/S-005)、037 第 4 条与 056 口径打架(S-007) |
| 类型准确性 | 10/10 | 逐项核对通过。135 功能/13 回归/11 安全/2 冒烟/1 性能/1 兼容/1 易用,无"其他";XSS 注入归安全、空态归易用、历史数据兼容归兼容、大数据导出归性能,均与内容匹配 |
| 优先级合理性 | 10/10 | 逐项核对通过。P0=55 与 P0 测试点 53 个全量承接(TP-B-009 拆分);P1=81/P2=23/P3=5 与测试点分布同构;RISK-DATA 核心场景(037、050/051/052/053、PLT_TMS_LC_050~052)均在 P0/P1,无高风险下沉 |
总分: 92/100
待确认项映射核对结论(门禁引用)
- 测试点文件 11 处
⚠️ 待确认对应的 11 组承接用例(TP-B-017→036、TP-C-003→046、TP-D-005→053、TP-E-007→068、TP-F-020→020、TP-F-021→021、TP-F-024→024、TP-H-008→041、TP-I-002→046、TP-X-013→079、TP-X-014→080)备注全部带[待确认]标注——逐项核对通过。 - 另 6 项口径细化(测试数据 §10 补充-1~6):b/c/d/e 四项(029、030、023、026)已标注——通过;a 项(073/074)与 f 项(028/032)标注缺失,见 B-001/B-002。
- 历史缺陷防御用例(068~071)均标
[AI修正: 历史缺陷防御];冲突修订用例(067/068/072/073/074/076/077)均标[AI修正: 冲突修订]——逐项核对通过。 - 追溯性核对通过:164 条用例备注全部含 TP 编号,覆盖率声明(159/159)与映射清单一致。
修复执行清单(供流水线直接落修)
| 优先级 | 用例编号(行号) | 动作 |
|---|---|---|
| 阻断 | PLT_BSC_LC_028(L51)、PLT_BSC_LC_032(L55) | 按 B-001 补 [待确认] 标注并改写预期第 3 条为"记录实际行为" |
| 阻断 | PLT_BSC_LC_073(L96)、PLT_BSC_LC_074(L97) | 按 B-002 追加 AT-03 大写扩展名步骤/预期,备注补 [待确认] 标注 |
| 建议 | PLT_BSC_LC_017/049/054/034/035/036/061/052/067 | 按 S-001~S-006 改写步骤/预期/前置,统一执行顺序约束 |
| 建议 | PLT_TMS_LC_037 或 PLT_BSC_LC_056 | 按 S-007 统一"已删除公司在打款下拉"口径(推荐断言"不含") |
| 建议 | PLT_BSC_LC_069、PLT_BSC_LC_020 | 按 S-008/S-009 扩充必填时间与许可证格式覆盖 |
| 优化 | PLT_BSC_LC_010/019/066/012/041、PLT_TMS_LC_011/074/005、PLT_BSC_LC_040 | 按 O-001~O-003 修正笔误与泛化表述、对齐数据引用 |