Files
Yb-QaAutomationHub/output/test_points/物流公司管理需求_测试点.md
T
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

1417 lines
100 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.
# 物流公司管理需求 测试点
> 生成时间: 2026-09-29
> 需求文档: requirements/物流公司管理需求.md(v1.1,Q1–Q6 决议已确认)/标准化输入 output/normalized_inputs/物流公司管理需求/requirement.md
> 依据: output/analysis/物流公司管理需求_分析.md(REQ-001~REQ-038 追溯链、11.2 五项待确认口径已于 2026-09-29 全部确认)、_风险评估.md(RISK-DATA P1=最高风险;RISK-AVAILABILITY/FINANCIAL/COMPLIANCE/COMPATIBILITY 均 P2)、_测试策略.md、_关联与冲突.md、decisions/物流公司管理需求_确认结论.md(并行关系、0 冲突、Q7 已确认、安徽运八回归关注点)、需求文档第八章补充确认 Q7~Q19(2026-09-29)
> 知识库: knowledge_base/00_project/project_profile.md、01_standards/definition_of_done.md、01_standards/terminology.md、02_history/common_missed_scenes.md、02_history/historical_defects.md、03_best_practices/(order_manage_cases / payment_flow_cases / data_reporting_cases / ui_automation_best_practices)
> 术语口径: 物流公司 / 物流合同 / 生效合同 / 运费核算(运单核算) / 无外协公司 / 货主打款 / 财务打款 / 幂等性 / 审计日志;**全文禁用"核算单"表述**(核算即运单核算,无独立核算单,操作对象一律为运单)
> 核心口径: 物流公司及其在运单/货源/打款上的关联**仅作记录展示,不影响任何流程**;唯一强约束是档案自身的 BR-01 唯一性与 BR-04 删除保护
> 来源标注说明: `[技术方案]` 指分析 §8《技术方案补充约束》(本需求无独立技术方案文档,约束提取自需求第七章《数据与接口要点》与项目画像技术栈)
## 测试点概览
- 总测试点数: 159
- P0: 53 / P1: 78 / P2: 23 / P3: 5
- 模块分布: A(菜单与列表查询)=15, B(新增物流公司)=24, C(编辑物流公司)=5, D(删除与启用/停用)=13, E(合同管理)=22, F(运单核算关联)=25, G(货源选择物流公司)=8, H(打款筛选)=11, I(列表展示与快照)=12, J(权限、机构隔离与行为日志)=10, X(跨需求回归与兼容)=14
- 来源分布: [需求] 134, [漏测清单] 32, [风险矩阵] 25, [项目画像] 19, [冲突修订] 7, [最佳实践] 7, [历史缺陷] 4, [技术方案] 4([营销规则] 不适用,见"不适用说明")
> 注: 一个测试点可同时归属多个来源,因此来源分布合计数 232 > 总测试点数 159。
### 覆盖维度对照(12/12 全覆盖)
| 维度 | 对应测试点 |
| :--- | :--- |
| 主流程 | TP-A-001/002/005/009、TP-B-001/019/023、TP-C-001/004/005、TP-D-001/006、TP-E-001/002/005/015/016/019/020、TP-F-001/004/005/010/012、TP-G-001/002/003/007、TP-H-001/002/003/011、TP-I-001/003/004/011 |
| 异常流程 | TP-A-012、TP-B-002/003/020、TP-D-002/003、TP-E-008/013、TP-F-011/018 |
| 边界条件 | TP-A-007/010/014、TP-B-004/008/010/012/014、TP-D-005、TP-E-004/007/010/014、TP-F-006/013/019/021、TP-I-012 |
| 数据校验 | TP-A-003/008/011/013、TP-B-005/007/009/011/013/015/016/017/022、TP-C-002/003、TP-D-012/013、TP-E-003/006/011/012/018/021/022、TP-F-002/007/015/020/024、TP-G-005、TP-H-005/006/008/010、TP-I-002/005/006/008/009/010、TP-X-012 |
| 状态流转 | TP-A-006、TP-D-004/008/009/010/011、TP-E-009、TP-F-003/017、TP-I-007、TP-X-009 |
| 权限控制 | TP-J-001~J-010 |
| 并发幂等 | TP-B-018/021、TP-D-007、TP-F-016/025 |
| 弱网超时 | TP-A-015、TP-B-024、TP-E-017、TP-F-023 |
| 规则组合 | TP-A-004、TP-D-013、TP-F-008/009/014/022、TP-G-004/006/008、TP-H-004/007/009 |
| 历史缺陷防御 | TP-X-002/003/004/005 |
| 跨需求冲突防御 | TP-X-001、TP-X-006/007/008、TP-X-010/011 |
| 项目高风险场景 | TP-B-018(并发同码·RISK-DATA)、TP-I-006/008(快照不联表·RISK-DATA)、TP-D-002/003(删除保护·RISK-DATA)、TP-A-014/015(Excel 20000 上限)、TP-E-017/TP-F-011(OBS 与弹窗依赖·RISK-AVAILABILITY)、TP-H-009/TP-X-006(金额安全回归·RISK-FINANCIAL)、TP-J-005/006/010(机构隔离与敏感证件·RISK-COMPLIANCE)、TP-I-012(历史数据兼容·RISK-COMPATIBILITY)、TP-F-018(状态已变化后操作)、TP-X-013/014(垫资打款页与同名"运费核算"菜单误伤防护·范围边界) |
### 不适用说明(显式标注,非静默省略)
- `[营销规则]` 维度不适用:项目画像 §4 明确本项目不支持营销活动/优惠券/积分体系,本需求(外协物流公司档案与记录性关联)亦无任何营销规则。
- C 端多状态场景不适用:本需求仅改造运八平台端 Web 管理后台(分析 §2.3),无司机端/货主端渠道差异;需求内多状态场景已逐状态拆分落地——物流公司(启用/停用/已删除)、合同(待生效/生效中/已过期)、运单核算(未核算/已核算),见 TP-D-004/008/009/010/011、TP-E-009、TP-F-003/017、TP-I-007。
- 金额精度维度不适用(以回归代替):本需求不新增、不修改任何金额计算(核算与打款均不改金额逻辑),因此不做金额精度正向用例;金额相关风险以回归方式覆盖(TP-H-009、TP-X-006/007、TP-X-013)。
- 多端登录/隐私授权(漏测清单 §3 部分项)不适用:管理后台无移动端隐私授权场景;"未登录访问"已覆盖(TP-J-003)。
- 弱网(APP 端)不适用:仅有 Web 管理后台;弱网/超时以接口超时、上传依赖失败重试、弹窗加载失败重试等 Web 场景覆盖(TP-B-024、TP-E-017、TP-F-011/023)。
### 确认结论汇总(分析 §11.2 共 5 项 + 项目画像补充识别 2 项 = 11 处,**已于 2026-09-29 全部确认**)
| 编号 | 原待确认问题 | 影响测试点 | 已确认结论(2026-09-29,需求文档第八章) |
| :--- | :--- | :--- | :--- |
| Q7 | 批量核算是否支持批量填充"物流公司 / 客户收货地址" | TP-F-021 | **不支持**:批量核算逻辑不变,不填充也不清除;两字段仅单笔"修改核算"弹窗可填(Q7) |
| 口径① | 运单管理列表/导出及打款筛选的"物流公司"取值口径矛盾(BR-09/6.9"货源带入" vs 6.6"运单表") | TP-I-002、TP-H-008、TP-F-024 | **一律以运单表为准**:货源所选公司为货源维度记录,核算时按货源默认带入弹窗(运单表初始无值——未核算的运单没有值),确认核算后写入运单表;未核算/未关联显示"无外协公司",不联表实时取货源当前值(Q8) |
| 口径② | BR-04 删除保护是否覆盖"仅被货源引用、尚无运单"的公司 | TP-D-005 | **不覆盖**:仍仅"生效中合同/运单引用"两条件阻断;仅被货源引用可删除(Q9) |
| 口径③ | 简称码空值唯一性、编辑"排除自身"字段范围(含合同编号编辑排除自身) | TP-B-017、TP-C-003、TP-E-007 | 简称码空值不参与唯一;编辑时名称/统一社会信用代码/简称码/合同编号均排除自身;提交前 trim 后判重(Q13/Q16) |
| 口径④ | "客户收货地址"展示载体与范围(至少运单详情只读展示) | TP-F-020 | 以**运单详情只读展示**为验收基线;不加入运单管理列表列;导出暂不要求(Q19) |
| 范围① | 垫资-货主打款/垫资-财务打款两页是否同口径改造 | TP-X-013 | **本期不改造**:两页保持原样;需回归验证其查询与打款功能不受本次改造影响(Q17) |
| 范围② | 两个「运费核算」菜单是否同一页面/功能 | TP-X-014 | **仅改造 整车运输 → 承运结算 → 运费核算**;"运单认证核算 → 运费核算"不处理、保持原样(Q18) |
---
## 模块A: 菜单与物流公司列表查询 (15个测试点)
### TP-A-001: 菜单入口与页面骨架
- 优先级: P0
- 类型: 冒烟测试
- 覆盖维度: 主流程
- 来源: [需求]
- 描述: 对应 REQ-001。运八平台端"基础信息 → 承运管理"下出现新增菜单"物流公司管理",进入后页面自上而下为查询条件区、操作按钮区(查询/重置/新增/导出)、列表表格与分页。
- 关键验证点: 菜单名称逐字为"物流公司管理"且挂载位置正确;页面含查询条件区、查询/重置/新增/导出四个按钮、列表表格与分页组件;面包屑与菜单高亮正确;列表加载无控制台报错。
### TP-A-002: 列表查询条件控件齐全
- 优先级: P0
- 类型: 功能测试
- 覆盖维度: 主流程
- 来源: [需求]
- 描述: 对应 REQ-002。查询条件区包含:公司名称(输入框,模糊匹配)、统一社会信用代码(输入框,模糊匹配)、联系方式(输入框,模糊匹配)、状态(下拉:全部/启用/停用)、创建时间(日期范围,含当天)。
- 关键验证点: 五个查询条件控件类型与需求一致;创建时间范围支持选择起始与结束日期且含当天数据(结束日期当天的记录可被筛出);状态下拉默认"全部"。
### TP-A-003: 模糊查询匹配规则逐一验证
- 优先级: P1
- 类型: 功能测试
- 覆盖维度: 数据校验
- 来源: [需求]
- 描述: 验证公司名称、统一社会信用代码、联系方式三个输入框均支持部分字符模糊匹配,且互不串字段。
- 关键验证点: 输入公司名称部分字符可命中全部包含该字符的公司;输入信用代码前几位可命中;输入联系方式部分数字可命中;仅输入名称关键字时不会错误命中信用代码/联系方式匹配项。
### TP-A-004: 多条件组合查询
- 优先级: P1
- 类型: 功能测试
- 覆盖维度: 规则组合
- 来源: [需求]
- 描述: 验证名称/信用代码/联系方式/状态/创建时间范围多个条件叠加查询的结果精确性。
- 关键验证点: "状态=停用 + 创建时间本周"组合仅返回同时满足两项的记录;组合条件无结果时列表为空且有提示;组合筛选后分页总数与结果数一致。
### TP-A-005: 查询与重置行为
- 优先级: P1
- 类型: 功能测试
- 覆盖维度: 主流程
- 来源: [需求][漏测清单][最佳实践]
- 描述: 验证"查询"刷新列表且分页回到第 1 页,"重置"清空全部查询条件并恢复全量列表(漏测清单 §4 查询/筛选/重置完整性;后台 CRUD 标准链路)。
- 关键验证点: 查询后分页重置为第 1 页;重置清空五个条件为默认值(状态回"全部"、时间范围清空);重置后列表恢复全量默认排序;连续多次重置无异常。
### TP-A-006: 状态筛选三态拆分
- 优先级: P1
- 类型: 功能测试
- 覆盖维度: 状态流转
- 来源: [需求][漏测清单]
- 描述: 验证状态筛选"全部/启用/停用"三个选项逐一过滤准确(漏测清单 §5 状态拆分要求,不合并为模糊状态场景)。
- 关键验证点: "全部"返回启用+停用(不含已逻辑删除);"启用"仅返回启用记录;"停用"仅返回停用记录;筛选结果中状态列与所选值一一对应。
### TP-A-007: 创建时间范围边界
- 优先级: P2
- 类型: 功能测试
- 覆盖维度: 边界条件
- 来源: [需求][漏测清单]
- 描述: 验证创建时间范围筛选的日期边界:起始=结束(同一天)、起始晚于结束、范围含当天。
- 关键验证点: 起始=结束当天可筛出当天创建的记录(含当天口径);起始晚于结束时给出提示或空结果且不报错;跨月/跨年范围筛选正确。
### TP-A-008: 列表列完整性与格式
- 优先级: P0
- 类型: 功能测试
- 覆盖维度: 数据校验
- 来源: [需求][漏测清单]
- 描述: 对应 REQ-003。列表展示列完整且顺序符合需求:公司名称(超链接进入编辑页)、简称码(未设置显示"-")、统一社会信用代码、法人代表名称、联系人/联系方式、生效合同数、状态(启用绿/停用灰,行内开关)、创建人/创建时间、操作(编辑、删除)。
- 关键验证点: 十类列全部存在且顺序正确;公司名称超链接点击进入编辑页;简称码未设置时显示"-"而非空白或 null;状态开关颜色绿/灰区分;创建人/创建时间为系统记录值;操作列含编辑与删除两个入口(漏测清单 §4 列表字段一致性)。
### TP-A-009: 默认排序创建时间倒序
- 优先级: P1
- 类型: 功能测试
- 覆盖维度: 主流程
- 来源: [需求][漏测清单]
- 描述: 对应 REQ-004。列表默认按创建时间倒序排列(最新创建的公司在最前)。
- 关键验证点: 首次进入列表与重置后均按创建时间倒序;新建公司后返回列表位于首位。
### TP-A-010: 分页默认 20 条/页与每页条数切换
- 优先级: P1
- 类型: 功能测试
- 覆盖维度: 边界条件
- 来源: [需求][漏测清单]
- 描述: 对应 REQ-004。分页默认 20 条/页,每页条数可选 10/20/50/100,页码总数与实际数据量一致。
- 关键验证点: 默认展示 20 条;切换 10/50/100 生效且列表不重排错位;末页余数正确;无数据时显示空态而非空白表格。
### TP-A-011: 生效合同数实时统计口径
- 优先级: P1
- 类型: 功能测试
- 覆盖维度: 数据校验
- 来源: [需求]
- 描述: 对应 REQ-003。列表"生效合同数"列实时统计该公司状态为"生效中"的合同数量(与合同管理 Tab 中生效中合同数一致)。
- 关键验证点: 新增一张当前处于生效期内的合同后,列表生效合同数 +1;合同到期(过期时间早于当前日期)后计数 -1;删除生效中合同后计数 -1;待生效/已过期合同不计入;停用公司的合同计数照常统计。
### TP-A-012: 列表空态与查询无结果提示
- 优先级: P2
- 类型: 易用性测试
- 覆盖维度: 异常流程
- 来源: [漏测清单]
- 描述: 验证列表在无任何数据与查询无结果两种场景下的空态展示(漏测清单 §1 空值/Null 与 §4 空结果提示)。
- 关键验证点: 新环境无数据时空态有友好占位提示;查询无结果时明确提示而非空白;空态不出现控制台报错或页面崩溃。
### TP-A-013: 物流公司列表导出列完整性与筛选同步
- 优先级: P1
- 类型: 功能测试
- 覆盖维度: 数据校验
- 来源: [需求]
- 描述: 对应 REQ-005。点击"导出"将当前查询条件下的物流公司列表导出为 Excel,导出列与列表展示列一致(含公司名称、简称码、信用代码、法人、联系人/联系方式、生效合同数、状态、创建人/时间)。
- 关键验证点: 导出文件可正常打开;列与列表一一对应;导出数据与当前筛选条件一致;无数据时导出按平台口径给出提示。
### TP-A-014: 导出 20000 条上限口径
- 优先级: P1
- 类型: 功能测试
- 覆盖维度: 边界条件
- 来源: [需求][技术方案][项目画像]
- 描述: 对应 REQ-005/REQ-036。列表导出复用平台 Excel 导出组件,默认上限 20000 条(项目画像 §8.3)。
- 关键验证点: 数据量 19999 条时全量导出;恰 20000 条导出成功;超过 20000 条时按平台统一口径处理(截断或明确提示,记录实际行为并与平台其他列表保持一致);导出耗时在可接受范围、文件不损坏。
### TP-A-015: 导出大数据量稳定性
- 优先级: P2
- 类型: 性能测试
- 覆盖维度: 弱网超时
- 来源: [项目画像][漏测清单]
- 描述: 验证接近上限的数据量(如 1~2 万条)导出时页面 Loading 状态、超时保护与失败重试(项目画像 §8.3 Excel 大数据量导出)。
- 关键验证点: 导出期间有 Loading 或进度反馈,按钮防重复点击;导出超时/失败时有明确提示且可重新导出;导出期间其他查询操作不受阻塞或给出提示。
---
## 模块B: 新增物流公司 (24个测试点)
### TP-B-001: 新增页结构与对标布局
- 优先级: P1
- 类型: 功能测试
- 覆盖维度: 主流程
- 来源: [需求]
- 描述: 对应 REQ-006。点击"新增"进入新增页,布局对标"企业货主-新增":上方证件上传区(营业执照、法人身份证人像面/国徽面、道路运输经营许可证四类),下方两栏基本信息表单。
- 关键验证点: 布局为"上证件区 + 下两栏表单";四类证件上传位齐全且标注必传/选填;表单字段顺序符合需求 6.2。
### TP-B-002: 营业执照必传校验
- 优先级: P0
- 类型: 功能测试
- 覆盖维度: 异常流程
- 来源: [需求]
- 描述: 对应 REQ-006/验收要点 1。营业执照为企业必传证件,未上传时不允许提交。
- 关键验证点: 未上传营业执照点击提交被阻断,且提示定位到营业执照上传区;上传后提交不再因此阻断;删除已上传的营业执照后提交再次被阻断。
### TP-B-003: 法人身份证人像面/国徽面必传校验
- 优先级: P0
- 类型: 功能测试
- 覆盖维度: 异常流程
- 来源: [需求]
- 描述: 对应 REQ-006。法人身份证人像面与国徽面均为必传,二者缺一不可提交。
- 关键验证点: 仅传人像面或仅传国徽面时提交被阻断并提示缺失证件;两面齐全可提交;提示文案能区分所缺证件种类。
### TP-B-004: 道路运输经营许可证选填(Q5 决议)
- 优先级: P0
- 类型: 功能测试
- 覆盖维度: 边界条件
- 来源: [需求]
- 描述: 对应 REQ-006/Q5 决议。道路运输经营许可证为选填证件,不传可直接提交成功。
- 关键验证点: 不传许可证时提单成功(核心边界口径,不得误判为必传);传许可证时正常保存并在编辑页回显;许可证格式限制为 jpg/jpeg/png/pdf。
### TP-B-005: 证件格式白名单校验
- 优先级: P0
- 类型: 功能测试
- 覆盖维度: 数据校验
- 来源: [需求]
- 描述: 对应 REQ-006。营业执照与道路运输经营许可证允许 jpg/jpeg/png/pdf,法人身份证人像面/国徽面允许 jpg/jpeg/png;白名单外格式拒绝上传并提示。
- 关键验证点: 各证件允许格式逐一上传成功;身份证上传 pdf 被拒(身份证不含 pdf 口径);扩展名判定按小写归一(Q10 机制):大写扩展名样本(如 营业执照_测试甲.PDF)与合同附件同口径放行;拒绝时提示格式白名单;拒绝后不产生半上传状态残留在表单内。
### TP-B-006: 伪造扩展名文件拒绝
- 优先级: P1
- 类型: 功能测试
- 覆盖维度: 数据校验
- 来源: [需求][漏测清单]
- 描述: 验证将非图片/非 pdf 文件改名为 .jpg 等白名单扩展名后上传时的防御行为(漏测清单 §1 特殊数据)。
- 关键验证点: 伪造扩展名文件被检出并拒绝,或至少在服务端校验真实文件类型;提示可读;记录实际拦截层级(前端/服务端)供评审确认。
### TP-B-007: 表单必填项逐一校验
- 优先级: P0
- 类型: 功能测试
- 覆盖维度: 数据校验
- 来源: [需求]
- 描述: 对应 REQ-007。公司名称、统一社会信用代码、法人代表名称、联系人、联系方式、企业通信地址、详细地址共 7 个必填字段,任一为空提交被阻断并逐字段提示。
- 关键验证点: 逐字段留空提交均被阻断且错误定位到对应字段;全部填写后可提交;仅"简称码/备注"为空不影响提交。
### TP-B-008: 公司名称长度边界与特殊字符
- 优先级: P1
- 类型: 功能测试
- 覆盖维度: 边界条件
- 来源: [需求][漏测清单]
- 描述: 对应 REQ-007。公司名称 ≤50 字符,验证 1/50/51 字符边界及特殊字符处理(漏测清单 §1 超长字符)。
- 关键验证点: 50 字符可保存;51 字符被阻断并提示上限;空格开头/结尾的存储口径(建议 trim);超长粘贴自动截断或提示。
### TP-B-009: 统一社会信用代码格式与失焦即校验
- 优先级: P0
- 类型: 功能测试
- 覆盖维度: 数据校验
- 来源: [需求]
- 描述: 对应 REQ-007/BR-01。信用代码按国标 18 位校验(`[0-9A-HJ-NPQRTUWXY]{2}\d{6}[0-9A-HJ-NPQRTUWXY]{10}`),输入框失焦即触发格式校验。
- 关键验证点: 合法 18 位代码失焦后通过;17 位/19 位、含 I/O/S/V/Z 等排除字母、含小写字母、含特殊字符均失焦即报错;错误提示就地标红;修正后提示消失;仅按 BR-01 正则校验字符集与长度,**不校验第 18 位国标校验位**(Q14 已确认)——校验位错误但格式合法的代码(UC-15)失焦不报错、可保存。
### TP-B-010: 法人代表名称 ≤30、联系人 ≤20 边界
- 优先级: P1
- 类型: 功能测试
- 覆盖维度: 边界条件
- 来源: [需求][漏测清单]
- 描述: 对应 REQ-007。法人代表名称 ≤30 字符、联系人 ≤20 字符,验证上限边界。
- 关键验证点: 法人 30 字符、联系人 20 字符均可保存;各超 1 字符被阻断并提示;中英文/数字混合计数口径一致。
### TP-B-011: 联系方式手机号格式校验
- 优先级: P1
- 类型: 功能测试
- 覆盖维度: 数据校验
- 来源: [需求]
- 描述: 对应 REQ-007。联系方式需符合手机号格式。
- 关键验证点: 合法 11 位手机号通过;10 位/12 位、含字母、含空格/横线被拒绝并提示;开头数字非 1 被拒绝。
### TP-B-012: 简称码 2-4 位纯字母校验
- 优先级: P1
- 类型: 功能测试
- 覆盖维度: 边界条件
- 来源: [需求]
- 描述: 对应 REQ-007/BR-01。简称码为选填,填写时须 2-4 位纯字母。
- 关键验证点: 1 位被拒、2 位与 4 位通过、5 位被拒;含数字/汉字/符号被拒;大小写字母均可(Q12 已确认:不做限制、均可保存);不填可正常提交。
### TP-B-013: 企业通信地址省市区级联
- 优先级: P2
- 类型: 功能测试
- 覆盖维度: 数据校验
- 来源: [需求]
- 描述: 对应 REQ-007。企业通信地址使用省市区级联控件(对标企业货主通信地址)。
- 关键验证点: 省-市-区三级联动正确联动;仅选省未选区时提交被阻断或提示补全;已选地址正确保存并回显;级联数据源与货主端一致。
### TP-B-014: 详细地址 ≤100、备注 ≤200 边界
- 优先级: P1
- 类型: 功能测试
- 覆盖维度: 边界条件
- 来源: [需求][漏测清单]
- 描述: 对应 REQ-007。详细地址 ≤100 字符、备注(多行文本)≤200 字符。
- 关键验证点: 100/200 字符可保存;超限被阻断或截断并提示;备注换行、特殊字符正常保存与回显。
### TP-B-015: 唯一性——公司名称全平台唯一
- 优先级: P0
- 类型: 功能测试
- 覆盖维度: 数据校验
- 来源: [需求][风险矩阵]
- 描述: 对应 REQ-009/BR-01。公司名称全平台唯一(不含已逻辑删除的公司),重复时给出明确提示。
- 关键验证点: 与"启用"公司重名被拒;与"停用"公司重名同样被拒(停用仍在唯一范围);与"已逻辑删除"公司重名允许创建(BR-01 明示不含已删除);提示文案明确指出名称重复。
### TP-B-016: 唯一性——统一社会信用代码全平台唯一
- 优先级: P0
- 类型: 功能测试
- 覆盖维度: 数据校验
- 来源: [需求][风险矩阵]
- 描述: 对应 REQ-009/BR-01。信用代码全平台唯一,重复提交被拒并明确提示。
- 关键验证点: 与启用/停用公司同码被拒;与已删除公司同码允许;错误字段就地标红;提示可读且不暴露其他机构数据明细(跨机构同码场景见 TP-J 模块)。
### TP-B-017: 唯一性——简称码全平台唯一
- 优先级: P1
- 类型: 功能测试
- 覆盖维度: 数据校验
- 来源: [需求][风险矩阵]
- 描述: 对应 REQ-009/BR-01。简称码(选填)全平台唯一,重复时提示;验证多家公司均不填简称码的场景。
- 关键验证点: 与已存在简称码重复被拒并提示;多家公司均留空简称码时均可保存(空值不参与唯一,Q16 已确认);与已删除公司简称码重复允许。
> 📌 原问题(已确认):简称码"空值"是否参与全平台唯一约束(多家公司均留空是否冲突),以及数据库层唯一约束对空值的处理语义(NULL 可多条 vs 空串冲突)。影响范围:新增/编辑表单校验与并发场景。
> ✅ 已确认(2026-09-29):空值**不参与**全平台唯一——多家公司可同时留空、均可保存;DB 层空值可多条共存(见需求文档第八章 Q16)。
### TP-B-018: 唯一性双保险——数据库层兜底与并发同码
- 优先级: P0
- 类型: 功能测试
- 覆盖维度: 并发幂等
- 来源: [需求][风险矩阵][技术方案]
- 描述: 对应 REQ-010/验收要点 8。唯一约束在数据库层实现兜底:两人同时提交同一统一社会信用代码(或名称/简称码),应用层校验 + DB 层约束拦截,后提交者失败且提示友好,不产生重复数据。
- 关键验证点: 并发同时提交同码时仅一条成功入库,另一条失败并提示(非 500 错误);构造绕过前端直接调接口的重复提交仍被 DB 约束拒绝;失败方页面表单不清空可修改重提;数据表无重复记录(RISK-DATA P1 核心场景)。
### TP-B-019: 新增成功正向链路
- 优先级: P0
- 类型: 功能测试
- 覆盖维度: 主流程
- 来源: [需求][最佳实践][漏测清单]
- 描述: 对应 REQ-008/验收要点 1。上传全部必传证件、填写合法表单后提交成功:返回列表并提示"新增成功",新公司状态为"启用",列表与导出可见,证件正确保存(漏测清单 §4 正向成功链路,不能只测失败与限制)。
- 关键验证点: 提交后返回列表且出现"新增成功"提示;新公司状态=启用(BR-02 默认启用);列表按创建时间倒序位于首位;编辑页回显全部字段与证件;数据正确落库(含证件 URL)。
### TP-B-020: 提交失败表单不清空、错误字段就近标红
- 优先级: P1
- 类型: 功能测试
- 覆盖维度: 异常流程
- 来源: [需求]
- 描述: 对应 REQ-008。唯一性冲突或校验失败时,表单已填内容不清空,错误字段就近标红提示。
- 关键验证点: 校验失败后所有已填字段与已传证件保留;错误字段标红且提示文案定位准确;修正出错字段后可再次提交成功。
### TP-B-021: 新增接口幂等——快速重复点击提交
- 优先级: P0
- 类型: 功能测试
- 覆盖维度: 并发幂等
- 来源: [需求][项目画像]
- 描述: 对应 REQ-011。快速重复点击"提交/保存"按钮,沿用平台统一幂等口径防重,不产生重复公司档案(项目画像 §8.2 重复提交(幂等)必测)。
- 关键验证点: 1 秒内连续点击 3 次仅生成 1 条记录;重复请求返回一致结果或被幂等拦截(无重复数据、无报错弹窗堆积);按钮在提交中置灰/防抖。
### TP-B-022: 特殊字符与注入字符输入防御
- 优先级: P2
- 类型: 安全性测试
- 覆盖维度: 数据校验
- 来源: [漏测清单]
- 描述: 在名称、地址、备注等字段输入 Emoji、HTML 标签、SQL 注入字符(漏测清单 §1 特殊字符)。
- 关键验证点: 输入 `' OR 1=1 --`、`<script>`、Emoji 提交后列表/编辑页正常显示不执行脚本;查询框输入注入字符不报 500;存储与展示无 XSS 执行。
### TP-B-023: 证件上传交互与替换
- 优先级: P2
- 类型: 功能测试
- 覆盖维度: 主流程
- 来源: [需求][漏测清单]
- 描述: 验证四类证件上传的成功回显、重复上传替换(每类证件仅保留一份)与上传中状态(漏测清单 §4 交互细项)。
- 关键验证点: 上传成功后回显文件名/缩略图;对同一类证件再次上传替换原文件(不产生两份);上传中有进度或 Loading;上传失败有明确提示且可重试。
### TP-B-024: 提交超时/断网处理
- 优先级: P2
- 类型: 功能测试
- 覆盖维度: 弱网超时
- 来源: [漏测清单]
- 描述: 验证提交请求瞬间断网、接口超 30 秒无响应时的前端表现(漏测清单 §2 弱网/断网、超时处理)。
- 关键验证点: 断网时提交有明确失败提示(非无响应卡死);超时有 Loading 与超时提示;恢复网络后可重新提交且不产生半落库脏数据;期间已填表单内容保留。
---
## 模块C: 编辑物流公司 (5个测试点)
### TP-C-001: 编辑页结构与两 Tab 布局
- 优先级: P0
- 类型: 功能测试
- 覆盖维度: 主流程
- 来源: [需求]
- 描述: 对应 REQ-012。从列表公司名称或操作"编辑"进入编辑页,页面 Tab 结构对标"编辑企业货主",本期包含"企业资料"与"合同管理"两个 Tab(结构预留扩展)。
- 关键验证点: 两个 Tab 存在且可切换;企业资料 Tab 为新增表单同构;合同管理 Tab 内容见 TP-E-001;无多余第三 Tab;切换 Tab 不丢失未保存修改(或给出提示)。
### TP-C-002: 编辑数据回显完整性
- 优先级: P1
- 类型: 功能测试
- 覆盖维度: 数据校验
- 来源: [需求][漏测清单]
- 描述: 验证编辑页回显全部已存字段(名称、信用代码、法人、联系人、联系方式、简称码、省市区+详细地址、备注)与证件图片,包括空值字段的展示(漏测清单 §1 空值)。
- 关键验证点: 全部非空字段回显与保存值一致;简称码未设置的展示口径(空或"-");证件可预览;回显无乱码。
### TP-C-003: 编辑时唯一性重校验(排除自身)
- 优先级: P0
- 类型: 功能测试
- 覆盖维度: 数据校验
- 来源: [需求][风险矩阵]
- 描述: 对应 REQ-012/6.3。编辑时对公司名称、统一社会信用代码、简称码修改后重新执行唯一性校验并排除自身(Q16 已确认):不改动上述字段直接保存成功;改成其他公司的值被拒。合同编号编辑排除自身见 TP-E-007。
- 关键验证点: 不修改名称/信用代码/简称码时保存不被唯一性误拦(排除自身生效);修改为与现有其他公司重复的值被拒并提示;简称码编辑时同样排除自身(改为他人简称码被拒、不改动则保存成功);修改为全平台唯一值保存成功。
> 📌 原问题(已确认):编辑时"排除自身"的字段范围——6.3 仅明示名称与统一社会信用代码重校验,简称码编辑时是否同样"排除自身"、合同编号编辑时是否排除自身(见 TP-E-007)未明确。影响范围:编辑表单校验与并发场景。
> ✅ 已确认(2026-09-29):编辑时**名称/统一社会信用代码/简称码/合同编号均排除自身**(见需求文档第八章 Q16;简称码空值不参与唯一、判重前 trim 同见 Q13/Q16)。
### TP-C-004: 编辑保存成功正向链路与行为日志
- 优先级: P0
- 类型: 功能测试
- 覆盖维度: 主流程
- 来源: [需求][最佳实践]
- 描述: 修改企业资料(如法人、联系人、详细地址)后保存成功,列表与详情数据同步更新;编辑操作写入行为日志。
- 关键验证点: 保存成功提示;列表对应行数据即时更新;编辑后创建时间/创建人不变;行为日志出现该次编辑记录(操作人/时间/IP/变更摘要)。
### TP-C-005: 编辑页证件替换与重新上传
- 优先级: P1
- 类型: 功能测试
- 覆盖维度: 主流程
- 来源: [需求]
- 描述: 在编辑页可对已上传证件重新上传替换(如营业执照过期换新),替换后仅保留最新文件。
- 关键验证点: 替换后新证件生效、旧文件不再被引用(预览为最新);必传证件删除后保存被阻断;替换操作记入行为日志。
---
## 模块D: 删除与启用/停用 (13个测试点)
### TP-D-001: 删除二次确认
- 优先级: P1
- 类型: 功能测试
- 覆盖维度: 主流程
- 来源: [需求]
- 描述: 对应 REQ-013/BR-04。点击"删除"弹出二次确认框,确认后才执行删除、取消则不做任何变更。
- 关键验证点: 确认框文案说明删除为逻辑删除且不可恢复;取消后记录状态不变;确认后进入删除校验流程。
### TP-D-002: 删除阻断——存在生效中合同
- 优先级: P0
- 类型: 功能测试
- 覆盖维度: 异常流程
- 来源: [需求][风险矩阵]
- 描述: 对应 REQ-013/BR-04/验收要点 2。公司存在状态为"生效中"的合同(当前日期 ∈ [生效时间, 过期时间])时禁止删除,提示具体原因(生效合同数)并引导改用"停用"。
- 关键验证点: 有 1 张及多张生效中合同时删除均被阻断;提示包含生效合同数量;提示引导"停用"操作;数据未被逻辑删除(列表仍可见)。
### TP-D-003: 删除阻断——被任一运单引用
- 优先级: P0
- 类型: 功能测试
- 覆盖维度: 异常流程
- 来源: [需求][风险矩阵]
- 描述: 对应 REQ-013/BR-04。公司被任一运单引用(运单上记录了该公司,含历史运单)时禁止删除,提示"被运单引用"并引导停用。
- 关键验证点: 存在 1 张关联运单即阻断;运单为历史已完结/已打款状态同样阻断(历史追溯口径);提示区分于"生效合同"原因;公司无合同但被引用时同样阻断。
### TP-D-004: 删除阻断条件拆分——合同三态与组合
- 优先级: P1
- 类型: 功能测试
- 覆盖维度: 状态流转
- 来源: [需求][漏测清单]
- 描述: 验证 BR-04 阻断条件按合同状态拆分:仅"生效中"阻断;仅有"待生效"或"已过期"合同时不因合同原因阻断(漏测清单 §5 状态拆分,不合并为"存在合同不可删")。
- 关键验证点: 仅有待生效合同时删除不被合同条件阻断;仅有已过期合同时同样不阻断;同时命中合同与运单两条件时提示原因完整(含生效合同数且提示被运单引用);无合同无引用可删除(衔接 TP-D-006)。
### TP-D-005: 仅被货源引用公司的删除行为
- 优先级: P2
- 类型: 功能测试
- 覆盖维度: 边界条件
- 来源: [风险矩阵][需求]
- 描述: 验证"仅被货源引用、尚未产生任何运单"的公司删除行为。BR-04 阻断条件为"生效中合同或运单引用"两项,货源引用未列入;Q9 已确认:**不覆盖**。
- 关键验证点: 仅被货源引用的公司**可删除**(Q9 已确认:不追加"被货源引用"为阻断条件);删除后货源列表该列仍按快照显示原公司名称(不空白、不变为"无外协公司");公司档案不可再查。
> 📌 原问题(已确认):BR-04 删除保护是否应覆盖"仅被货源引用、尚未产生任何运单"的物流公司。影响范围:删除阻断判定逻辑、货源追溯完整性(货源快照已保真但公司档案不可再查)。
> ✅ 已确认(2026-09-29):**不覆盖**——删除保护仍仅"存在生效中合同""被任一运单引用"两条件阻断;仅被货源引用的公司可删除(见需求文档第八章 Q9)。
### TP-D-006: 可删除正向链路——逻辑删除生效
- 优先级: P0
- 类型: 功能测试
- 覆盖维度: 主流程
- 来源: [需求]
- 描述: 对应 REQ-013/验收要点 2/6.5。无生效合同且无运单引用的公司删除成功:为逻辑删除(deleted 标志),列表不可见,导出与核算勾选均不含。
- 关键验证点: 删除成功提示;列表刷新后不再出现;导出文件不含该记录;核算选择弹窗与货源选择弹窗均不出现;行为日志记录删除操作。
### TP-D-007: 删除幂等与并发
- 优先级: P2
- 类型: 功能测试
- 覆盖维度: 并发幂等
- 来源: [项目画像][需求]
- 描述: 验证重复删除与两账号同时删除同一公司的表现(项目画像 §8.2 重复提交/并发提交)。
- 关键验证点: 重复点击删除仅执行一次且不报错;两账号并发删除时先到者成功、后到者提示记录不存在或已删除(非 500);无残留脏数据。
### TP-D-008: 已删除为终态——不可恢复、全入口不可见
- 优先级: P1
- 类型: 功能测试
- 覆盖维度: 状态流转
- 来源: [需求]
- 描述: 对应需求 7.1 禁止流转。已删除(逻辑删除)为终态,无恢复入口,任何列表/弹窗/详情不可见不可操作。
- 关键验证点: 列表、导出、核算勾选、货源选择、打款筛选下拉均不含已删除公司;无"恢复/还原"入口;通过 URL 或接口直接访问已删除公司 ID 被拒绝。
### TP-D-009: 停用二次确认与即时生效
- 优先级: P0
- 类型: 功能测试
- 覆盖维度: 状态流转
- 来源: [需求]
- 描述: 对应 REQ-015/BR-05/验收要点 3。行内开关(或编辑页)发起"停用"需二次确认;确认后立即从运费核算勾选弹窗与货源选择弹窗消失。
- 关键验证点: 停用前弹二次确认框、取消则不生效;确认后状态开关变灰(停用);同一时刻打开的选择弹窗刷新后该公司消失;停用即时生效无延迟。
### TP-D-010: 停用后历史数据与档案管理不受影响
- 优先级: P0
- 类型: 功能测试
- 覆盖维度: 状态流转
- 来源: [需求]
- 描述: 对应 BR-05。停用只控制"核算勾选可见性":已核算运单不受影响,档案仍可查询/编辑/管理合同,历史展示与打款筛选不变(打款筛选见 TP-H-004)。
- 关键验证点: 停用前已关联的运单快照展示不变;停用公司仍可在列表查询到并编辑、管理合同;停用公司的"生效合同数"统计正常;停用公司仍可按"含停用"筛出历史打款记录。
### TP-D-011: 启用即时生效
- 优先级: P0
- 类型: 功能测试
- 覆盖维度: 状态流转
- 来源: [需求]
- 描述: 对应 REQ-016/BR-05。对停用公司点击"启用"即时生效,恢复出现在核算勾选弹窗与货源选择弹窗。
- 关键验证点: 启用无需二次确认或按需求口径(需求仅规定停用需二次确认);启用后状态开关变绿;选择弹窗立即可见该公司;启用操作记入行为日志。
### TP-D-012: 状态开关展示与操作按钮映射
- 优先级: P2
- 类型: 功能测试
- 覆盖维度: 数据校验
- 来源: [漏测清单][最佳实践]
- 描述: 验证状态列颜色(启用绿/停用灰)与操作列按钮在不同状态下的正确展示(漏测清单 §4 状态与按钮映射)。
- 关键验证点: 启用行开关为绿色、停用行为灰色;编辑/删除按钮在两种状态下均可见(停用不代表不可编辑);无错态/越权操作入口;开关切换中防误触。
### TP-D-013: 删除后唯一性字段可复用(规则组合)
- 优先级: P1
- 类型: 功能测试
- 覆盖维度: 规则组合
- 来源: [需求][风险矩阵]
- 描述: 对应 BR-01"不含已逻辑删除的公司"与 BR-04 组合规则。删除公司后,其公司名称/统一社会信用代码/简称码可被新公司重新使用。
- 关键验证点: 删除后以相同名称新建成功、以相同信用代码新建成功、以相同简称码新建成功;新建公司与已删除公司在列表并存期间(删除后新建)无唯一性误拦;导出/统计不将两者混淆。
---
## 模块E: 合同管理 (22个测试点)
### TP-E-001: 合同管理 Tab 结构与对标布局
- 优先级: P1
- 类型: 功能测试
- 覆盖维度: 主流程
- 来源: [需求]
- 描述: 对应 REQ-017。编辑页"合同管理"Tab 对标"企业货主-编辑-合同管理":筛选区(合同编号/所属税源地/签订时间范围/创建时间范围)+ 按钮组(查询/新增/导出)+ 合同表格。
- 关键验证点: 筛选条件与按钮齐全;表格列见 TP-E-003;布局与对标截图一致;新增按钮打开合同弹窗。
### TP-E-002: 合同筛选条件与查询/重置
- 优先级: P1
- 类型: 功能测试
- 覆盖维度: 主流程
- 来源: [需求][漏测清单]
- 描述: 验证四个筛选条件(合同编号模糊、所属税源地、签订时间范围、创建时间范围)单独与组合查询准确,重置恢复全量(漏测清单 §4)。
- 关键验证点: 各条件单独筛选准确;签订时间范围与创建时间范围互不串字段;重置清空条件;无结果有提示。
### TP-E-003: 合同列表列完整性与状态列
- 优先级: P1
- 类型: 功能测试
- 覆盖维度: 数据校验
- 来源: [需求]
- 描述: 对应 REQ-018。列表列完整:选择框(批量列)、合同编号、所属税源地、合同状态(自动计算)、创建人、签订时间、创建时间、生效时间、过期时间、操作(查看/编辑/删除)。
- 关键验证点: 十类列齐全且顺序正确;合同状态列显示待生效/生效中/已过期;时间列格式统一;操作列三入口齐全。
### TP-E-004: 选择框列不提供批量操作(负向范围)
- 优先级: P3
- 类型: 功能测试
- 覆盖维度: 边界条件
- 来源: [需求]
- 描述: 对应 REQ-037/6.4。合同列表保留选择框列,但本期不提供任何批量操作按钮。
- 关键验证点: 勾选一条或多条合同后,无批量删除/批量导出等按钮出现;勾选状态不引发任何接口调用;确认与需求 6.4 一致。
### TP-E-005: 合同新增正向链路
- 优先级: P0
- 类型: 功能测试
- 覆盖维度: 主流程
- 来源: [需求][最佳实践]
- 描述: 对应 REQ-019/验收要点 4。填写合同编号、签订时间、生效时间、过期时间、所属税源地并上传合规附件后保存成功,合同列表出现该记录且状态由系统自动计算。
- 关键验证点: 保存成功提示;列表行数据与录入一致;合同状态自动计算正确(如生效时间≤今天≤过期时间为"生效中");生效合同数随之 +1;保存操作记入行为日志。
### TP-E-006: 合同编号同公司唯一、不同公司可重复
- 优先级: P0
- 类型: 功能测试
- 覆盖维度: 数据校验
- 来源: [需求]
- 描述: 对应 BR-03。同一物流公司下合同编号唯一;不同公司之间允许使用相同合同编号。
- 关键验证点: 同公司重复编号保存被拒并提示;A 公司已用编号在 B 公司可正常保存;提示在弹窗内就地显示且表单不清空。
### TP-E-007: 合同编号 ≤50 边界与编辑排除自身
- 优先级: P1
- 类型: 功能测试
- 覆盖维度: 边界条件
- 来源: [需求][风险矩阵]
- 描述: 合同编号 ≤50 字符;编辑既有合同时编号未修改不应被唯一性误拦(编辑排除自身,含合同编号——Q16 已确认)。
- 关键验证点: 50 字符可保存、51 字符被阻断;编辑合同仅改动其他字段(编号不变)保存成功、不被唯一性误拦(排除自身生效);编辑改为同公司其他已用编号被拒并提示。
> 📌 原问题(已确认):合同编号编辑时是否"排除自身"重校验、简称码编辑排除自身(与 TP-C-003 同属口径③)。影响范围:合同编辑弹窗校验逻辑。
> ✅ 已确认(2026-09-29):合同编号编辑时**排除自身**(仅改其他字段保存成功;改为同公司其他已用编号被拒);名称/信用代码/简称码编辑排除自身见 TP-C-003(见需求文档第八章 Q16)。
### TP-E-008: 过期时间必须晚于生效时间
- 优先级: P0
- 类型: 功能测试
- 覆盖维度: 异常流程
- 来源: [需求]
- 描述: 对应 BR-03/验收要点 4。过期时间 ≤ 生效时间时阻断保存并提示。
- 关键验证点: 过期=生效被拒;过期早于生效被拒;过期=生效+1 天通过;弹窗内提示明确且不关闭弹窗。
### TP-E-009: 合同状态自动计算与边界当天
- 优先级: P0
- 类型: 功能测试
- 覆盖维度: 状态流转
- 来源: [需求][漏测清单]
- 描述: 对应 REQ-021/BR-03/7.2。合同状态由系统按当前日期自动计算且不可手工设置:待生效/生效中/已过期按状态逐一验证,边界口径为当前日期 ∈ [生效时间, 过期时间] 即"生效中"(含边界当天)(漏测清单 §5 状态拆分)。
- 关键验证点: 生效时间=今天 → 生效中;过期时间=今天 → 仍为生效中;过期时间=昨天 → 已过期;生效时间=明天 → 待生效;状态列无数值可直接编辑/修改的入口(不可手工设置);随时间推移状态自动由待生效→生效中→已过期(可 mock 日期验证)。
### TP-E-010: 签订时间可晚于当前日期(补录)
- 优先级: P2
- 类型: 功能测试
- 覆盖维度: 边界条件
- 来源: [需求]
- 描述: 对应 REQ-019。签订时间允许晚于当前日期(补录场景),不做强校验。
- 关键验证点: 签订时间设为未来日期保存成功;签订时间早于/晚于生效时间的组合不做阻断(需求不做约束);签订时间参与筛选正确。
### TP-E-011: 所属税源地必选与数据字典来源
- 优先级: P1
- 类型: 功能测试
- 覆盖维度: 数据校验
- 来源: [需求]
- 描述: 对应 REQ-019。所属税源地为必选下拉,数据来源"数据字典-税源地"(与企业货主同源)。
- 关键验证点: 未选择税源地保存被阻断;下拉选项与数据字典-税源地维护内容一致(含新增字典项后下拉同步);保存后回显正确;数据字典停用项的表现(按字典口径)。
### TP-E-012: 附件必传与格式白名单
- 优先级: P0
- 类型: 功能测试
- 覆盖维度: 数据校验
- 来源: [需求]
- 描述: 对应 REQ-019/BR-03。附件必传;仅允许 pdf/doc/docx/jpg/jpeg/bmp/png 七种格式;上传后显示文件名。
- 关键验证点: 未上传附件保存被阻断;七种格式逐一上传成功;白名单外格式(如 xlsx、exe、txt)拒绝并提示;扩展名**大小写不敏感**:.PDF/.Jpg 等同 .pdf/.jpg 放行(白名单按扩展名小写归一判定,Q10 已确认);上传成功后显示文件名。
### TP-E-013: 附件伪造扩展名与异常文件拒绝
- 优先级: P1
- 类型: 功能测试
- 覆盖维度: 异常流程
- 来源: [需求][漏测清单]
- 描述: 验证非白名单文件改名为白名单扩展名(如 .pdf)后上传的防御行为(漏测清单 §1)。
- 关键验证点: 伪造扩展名文件被拒绝或服务端真实类型校验检出;0 字节空文件的表现;损坏文件上传的提示。
### TP-E-014: 附件超大文件——不设大小上限(Q6)
- 优先级: P2
- 类型: 功能测试
- 覆盖维度: 边界条件
- 来源: [需求]
- 描述: 对应 Q6 决议:暂不设置附件大小上限(格式白名单保留)。验证超大文件上传表现与超时处理。
- 关键验证点: 较大文件(如 100MB 级)上传不被前端大小校验拒绝(口径为不设上限);上传耗时过长时有 Loading 与超时提示;上传失败可重试且不影响已填表单;记录实际上传耗时供评审确认是否需要补充限制。
### TP-E-015: 附件重新上传替换(单附件)
- 优先级: P1
- 类型: 功能测试
- 覆盖维度: 主流程
- 来源: [需求]
- 描述: 对应 Q6。附件为单文件:重新上传时替换原文件,仅保留一个附件。
- 关键验证点: 重新上传后仅显示新文件(旧文件被替换);替换后查看/下载为最新文件;不产生多附件并存。
### TP-E-016: 附件预览与下载
- 优先级: P1
- 类型: 功能测试
- 覆盖维度: 主流程
- 来源: [需求]
- 描述: 对应 REQ-020。合同查看弹窗中附件支持预览与下载(OBS 文件)。
- 关键验证点: 点击预览正确渲染(图片/pdf 等对应格式);下载文件可打开且与原文件一致;预览/下载失败时有提示(依赖 OBS 场景见 TP-E-017);下载文件名与上传文件名一致。
### TP-E-017: 附件上传/预览依赖 OBS 失败处理
- 优先级: P2
- 类型: 功能测试
- 覆盖维度: 弱网超时
- 来源: [风险矩阵][项目画像]
- 描述: 对应 RISK-AVAILABILITY。合同附件上传/预览/下载依赖华为云 OBS(项目画像 §6.1),模拟文件服务不可用或超时时的处理。
- 关键验证点: OBS 不可用时上传有明确失败提示且可重试;表单已填内容不丢失;预览/下载失败提示可读;恢复服务后重试成功。
### TP-E-018: 合同查看只读弹窗
- 优先级: P1
- 类型: 功能测试
- 覆盖维度: 数据校验
- 来源: [需求][漏测清单]
- 描述: 对应 REQ-020。合同"查看"为只读弹窗:字段完整、附件可预览/下载、真正不可编辑(漏测清单 §4 查看只读,避免与编辑态混淆)。
- 关键验证点: 全部字段只读展示且与列表一致;无保存/编辑入口;附件可预览/下载;关闭后列表状态无变化。
### TP-E-019: 合同编辑回显与保存
- 优先级: P1
- 类型: 功能测试
- 覆盖维度: 主流程
- 来源: [需求]
- 描述: 合同"编辑"弹窗回显已有数据,修改后保存成功且列表同步更新。
- 关键验证点: 弹窗回显编号/三个时间/税源地/附件;修改过期时间后状态重新自动计算;保存后列表即时更新;编辑操作记入行为日志。
### TP-E-020: 合同删除二次确认与日志(物理删除)
- 优先级: P1
- 类型: 功能测试
- 覆盖维度: 主流程
- 来源: [需求]
- 描述: 对应 REQ-020/第 7 章。合同"删除"需二次确认,确认后为物理删除并记录操作日志;删除仅作记录数据维护,不影响其他流程。
- 关键验证点: 二次确认框;确认后合同从列表消失(物理删除,无回收站/草稿态);行为日志记录删除操作;删除生效中合同后公司列表"生效合同数"-1;删除不影响运单/打款任何流程。
### TP-E-021: 公司间合同数据不串
- 优先级: P1
- 类型: 功能测试
- 覆盖维度: 数据校验
- 来源: [漏测清单][需求]
- 描述: 验证合同按 company_id 严格归属:A 公司编辑页的合同管理仅显示 A 的合同,B 公司互不出现(漏测清单 §4 端间/主体间数据隔离)。
- 关键验证点: A/B 两公司的合同列表互相独立;新增 A 的合同后 B 列表不出现;删除 A 的合同不影响 B;导出仅含当前公司合同。
### TP-E-022: 合同列表导出(当前筛选、20000 上限)
- 优先级: P2
- 类型: 功能测试
- 覆盖维度: 数据校验
- 来源: [需求][项目画像]
- 描述: 对应 REQ-017/第 7 章。合同管理导出复用平台 Excel 导出组件(默认 20000 条上限),导出当前公司当前筛选条件下的合同数据。
- 关键验证点: 导出列与合同列表一致;导出数据与筛选条件一致且仅含当前公司;大数据量按 20000 上限口径处理;导出文件可正常打开。
---
## 模块F: 运单核算关联物流公司 (25个测试点)
> 模块口径:核算即**运单核算**,页面即运单列表,无独立核算单;核算人员通过行内"编辑"打开"修改核算"弹窗完成。总原则:物流公司(及客户收货地址)**仅作记录,不影响任何流程**——是否选择、有无生效合同均不阻断保存。
### TP-F-001: 运费核算入口与页面口径
- 优先级: P0
- 类型: 功能测试
- 覆盖维度: 主流程
- 来源: [需求]
- 描述: 对应 REQ-022/6.6。整车运输 → 承运结算 → 运费核算,页面即运单列表(含"核算状态"列:未核算/已核算,带批量核算按钮);行内"编辑"打开"修改核算"弹窗;无"新建核算单"入口(口径纠正:核算即运单核算)。
- 关键验证点: 页面为运单列表且含核算状态列(未核算/已核算两态可区分);行内编辑打开"修改核算"弹窗;全页面无任何"核算单/新建核算单"字样与入口;批量核算按钮存在(现状口径见 TP-F-021)。
### TP-F-002: 修改核算弹窗字段完整性
- 优先级: P0
- 类型: 功能测试
- 覆盖维度: 数据校验
- 来源: [需求]
- 描述: 对应 REQ-023。修改核算弹窗保留原有字段(运单号、货主名称、司机姓名、车牌号、结算吨位等)不变,新增"物流公司"(选填、单选)与"客户收货地址"(选填、≤200 字符)两个字段。
- 关键验证点: 原有字段展示正确且可编辑口径与改造前一致;新增两字段存在且标注选填;物流公司含"选择物流公司"入口;客户收货地址为文本输入。
### TP-F-003: 选择弹窗仅加载启用状态公司
- 优先级: P0
- 类型: 功能测试
- 覆盖维度: 状态流转
- 来源: [需求]
- 描述: 对应 REQ-024/BR-06.2/验收要点 5。选择弹窗仅加载启用状态公司:停用公司不出现、已删除公司不出现、启用公司正常出现(逐状态拆分)。
- 关键验证点: 启用公司在弹窗中全部可见;停用公司不出现(停用后即时消失衔接 TP-D-009);已逻辑删除公司不出现;启用公司数量与列表(状态=启用)计数一致。
### TP-F-004: 选择弹窗默认排序创建时间倒序
- 优先级: P1
- 类型: 功能测试
- 覆盖维度: 主流程
- 来源: [需求][漏测清单]
- 描述: 对应 REQ-024。选择弹窗默认按创建时间倒序展示(漏测清单 §4 选择弹窗排序要点)。
- 关键验证点: 最新创建的启用公司排在首位;翻页后排序延续;与列表默认排序口径一致。
### TP-F-005: 选择弹窗搜索与无结果空态
- 优先级: P1
- 类型: 功能测试
- 覆盖维度: 主流程
- 来源: [需求][漏测清单]
- 描述: 对应 REQ-024。支持按公司名称/统一社会信用代码搜索;无匹配时展示空态"未找到符合条件的物流公司"。
- 关键验证点: 名称部分字符可搜索命中;信用代码部分字符可搜索命中;搜索无结果显示指定空态文案;清空搜索恢复全量;搜索在已选页内不丢失已选状态。
### TP-F-006: 选择弹窗分页默认 20 条/页
- 优先级: P1
- 类型: 功能测试
- 覆盖维度: 边界条件
- 来源: [需求]
- 描述: 对应 REQ-024/BR-06.2。选择弹窗分页默认 20 条/页,翻页正确;如提供每页条数切换,选项与平台列表口径(10/20/50/100)一致。
- 关键验证点: 默认展示 20 条;翻页、页码跳转数据正确;每页条数切换(如提供)生效;末页余数正确。
### TP-F-007: 选择弹窗行字段展示
- 优先级: P1
- 类型: 功能测试
- 覆盖维度: 数据校验
- 来源: [需求]
- 描述: 对应 REQ-024/6.6.3。弹窗行展示:公司名称、统一社会信用代码、联系人、联系方式、生效合同数。
- 关键验证点: 五个字段齐全且与档案一致;生效合同数实时准确(与列表口径一致);字段为空时的展示合理。
### TP-F-008: "⚠ 无生效合同"提示与可勾选(Q3)
- 优先级: P0
- 类型: 功能测试
- 覆盖维度: 规则组合
- 来源: [需求]
- 描述: 对应 REQ-024/Q3 决议/验收要点 5。无生效合同的公司行内显示"⚠ 无生效合同",仅作信息提示,可正常勾选,不做任何阻断。
- 关键验证点: 无生效合同行显示"⚠ 无生效合同";该行可勾选并确定回填;有生效合同的行不显示该提示;选择无合同公司保存核算成功(不阻断任何流程)。
### TP-F-009: 单选——再次选择替换上次结果(Q1)
- 优先级: P0
- 类型: 功能测试
- 覆盖维度: 规则组合
- 来源: [需求]
- 描述: 对应 REQ-024/Q1 决议。选择弹窗为单选:一张运单仅可关联一家物流公司;已选一家后再选另一家时替换上次结果。
- 关键验证点: 弹窗内仅允许勾选一行(单选控件语义);选择 A 后再选 B,回填为 B(A 被替换);运单上最终仅存一家公司信息;不存在多选或多公司并存。
### TP-F-010: 选择反馈——确定回填/取消不变更
- 优先级: P1
- 类型: 功能测试
- 覆盖维度: 主流程
- 来源: [最佳实践][漏测清单]
- 描述: 验证选择弹窗的反馈完整性(漏测清单 §4 选择弹窗选择反馈):点"确定"后弹窗关闭、所选公司回填修改核算弹窗;点"取消"/关闭不改变原值。
- 关键验证点: 确定后回填公司名称(含信用代码/联系人回显位置正确);取消后原已选值不变;未勾选直接点确定的表现(不产生空选覆盖)。
### TP-F-011: 选择弹窗加载失败空态与重新加载
- 优先级: P2
- 类型: 功能测试
- 覆盖维度: 异常流程
- 来源: [风险矩阵][项目画像]
- 描述: 对应 RISK-AVAILABILITY。弹窗打开时公司列表接口/网络异常 → 空状态 + "重新加载"按钮。
- 关键验证点: 加载失败展示空态与"重新加载"按钮(非白屏/报错弹窗);点击重新加载可恢复列表;恢复后搜索/分页功能正常。
### TP-F-012: 自动带出——货源已选公司默认带入
- 优先级: P0
- 类型: 功能测试
- 覆盖维度: 主流程
- 来源: [需求]
- 描述: 对应 REQ-025/BR-06.3/验收要点 5。货源已选择物流公司的运单,打开修改核算弹窗时默认带入该公司;货源未选的运单初始为空。
- 关键验证点: 货源已选公司正确带入(公司名称/信用代码与货源快照一致);货源未选时初始为空(选填);带入后可更换或清除;货源更换公司后重新打开的带入值为货源最新快照。
### TP-F-013: 选填不强制——未选公司直接保存核算(Q2)
- 优先级: P0
- 类型: 功能测试
- 覆盖维度: 边界条件
- 来源: [需求]
- 描述: 对应 REQ-026/Q2 决议/验收要点 5。不选择物流公司(客户收货地址也可为空)时核算数据正常保存到运单,运单记为"无外协公司",不影响任何流程。
- 关键验证点: 未选公司/未填地址保存成功;核算状态更新为"已核算";运单及列表该列显示"无外协公司";不出现任何阻断提示或必填报错。
### TP-F-014: 清除选择后保存
- 优先级: P1
- 类型: 功能测试
- 覆盖维度: 规则组合
- 来源: [需求]
- 描述: 对应 REQ-025。对已带出/已选公司的运单可"清除"(取消选择),清除后保存生效。
- 关键验证点: 清除后弹窗内公司区域恢复空态;保存后运单表公司字段被清空(company_id/名称/信用代码三字段置空);列表显示"无外协公司";清除操作可记日志(如落);清除后再选可用(可逆)。
### TP-F-015: 保存核算写入运单表三字段与核算状态
- 优先级: P0
- 类型: 功能测试
- 覆盖维度: 数据校验
- 来源: [需求][技术方案]
- 描述: 对应 REQ-026/BR-06.6/第 7 章。保存核算时若已选公司,将其 ID + 公司名称 + 统一社会信用代码写入运单表对应字段(冗余存储);核算状态更新为"已核算"。
- 关键验证点: 运单表落库 company_id、company_name、uscc 三字段且与所选公司一致;核算状态由未核算→已核算;运费核算列表与运单管理的物流公司列随运单表取值展示;保存操作无新建任何独立单据(口径纠正)。
### TP-F-016: 保存核算幂等——重复点击不重复写入
- 优先级: P0
- 类型: 功能测试
- 覆盖维度: 并发幂等
- 来源: [需求][项目画像]
- 描述: 对应第 7 章幂等口径。快速重复点击"保存/核算"按钮不产生重复写入或脏数据(项目画像 §8.2 重复提交)。
- 关键验证点: 连点 3 次仅一次有效保存;运单字段无重复追加、状态无抖动;无重复日志堆积(或按平台幂等口径合并);按钮提交中禁用。
### TP-F-017: 已核算再次修改——覆盖更新不产生新单据
- 优先级: P1
- 类型: 功能测试
- 覆盖维度: 状态流转
- 来源: [需求]
- 描述: 对应 REQ-028/6.6。对已核算运单再次修改核算:覆盖更新运单上的核算字段并记录日志,不产生新单据;已核算不可回退为未核算(无撤销入口)。
- 关键验证点: 再次保存后运单字段为最新值(覆盖而非新增行);核算状态保持"已核算";行为日志出现修改记录;无"撤销核算/回退未核算"入口;重复修改多次无数据膨胀。
### TP-F-018: 保存时公司已停用/删除——后端二次校验
- 优先级: P0
- 类型: 功能测试
- 覆盖维度: 异常流程
- 来源: [需求][项目画像]
- 描述: 对应 REQ-029/6.6。弹窗打开后至保存前公司被他人停用/删除(状态已变化后操作),保存时后端二次校验:提示具体公司名并要求重新选择(数据有效性校验,非流程控制)。
- 关键验证点: 保存被阻断且提示中包含具体公司名;提示引导重新选择启用公司或清除后保存;清除后可直接保存成功;无 500 或静默保存旧值;两场景(停用/删除)分别验证。
### TP-F-019: 客户收货地址——选填与 ≤200 字符边界
- 优先级: P1
- 类型: 功能测试
- 覆盖维度: 边界条件
- 来源: [需求]
- 描述: 对应 REQ-023/BR-06.7。客户收货地址为选填纯文本,≤200 字符;不参与任何校验、流程与计费。
- 关键验证点: 200 字符可保存、201 字符被阻断或提示;可含中文/字母/数字/符号;为空正常保存;地址内容不影响金额与核算任何字段。
### TP-F-020: 客户收货地址展示载体
- 优先级: P2
- 类型: 功能测试
- 覆盖维度: 数据校验
- 来源: [需求]
- 描述: BR-06.7 述"填充到运单表并随运单展示";Q19 已确认展示载体:以**运单详情只读展示**为验收基线,**不加入运单管理列表列**,导出暂不要求包含该列。
- 关键验证点: 保存后在运单详情可只读查看该地址(验收基线须满足);运费核算列表与运单管理列表**均不新增**该地址列,导出**不含**该列;展示值不作联表实时取值(快照)。
> 📌 原问题(已确认):"客户收货地址"的展示载体与范围(运单详情/运单管理列表列/运费核算列表/导出列是否包含)。影响范围:展示类断言位置与导出列范围。
> ✅ 已确认(2026-09-29):以**运单详情只读展示**为验收基线;**不加入运单管理列表列**;导出暂不要求(见需求文档第八章 Q19)。
### TP-F-021: 批量核算现状口径(不填充、不清除)
- 优先级: P2
- 类型: 功能测试
- 覆盖维度: 边界条件
- 来源: [需求]
- 描述: 对应 REQ-030/6.6。Q7 已确认:批量核算**不支持**批量填充物流公司/客户收货地址(批量逻辑不变),也不清除运单上已存的公司与地址;两字段仅单笔"修改核算"弹窗可填。
- 关键验证点: 批量核算按原有字段逻辑执行且执行成功(核算状态更新);批量后运单上已存的物流公司/客户收货地址保持不变(不被清空、不被覆盖);批量入口无物流公司/地址填写控件;已选/未选公司的运单批量后字段与批量前逐字段一致。
> 📌 原问题(已确认):批量核算是否需要支持批量填充"物流公司/客户收货地址"(需求第八章 Q7,P1)。影响范围:运费核算批量入口的交互与落库逻辑、批量场景测试用例设计。
> ✅ 已确认(2026-09-29):**不支持**——批量核算逻辑不变,不填充也不清除;物流公司/客户收货地址仅单笔"修改核算"弹窗可填(见需求文档第八章 Q7)。
### TP-F-022: 核算金额与流程不因选择而改变
- 优先级: P0
- 类型: 功能测试
- 覆盖维度: 规则组合
- 来源: [需求]
- 描述: 对应 1.4 设计原则/REQ-014。物流公司与客户收货地址仅作记录,不参与任何计费与流程:选择/更换/清除公司、有无生效合同,均不改变运单核算的金额与结算数据。
- 关键验证点: 对比选择前后运单上的核算金额类字段(结算吨位、运费等原有字段)无任何变化;无生效合同公司被选中时无计费差异;不选公司不影响核算保存与后续结算;页面无任何"合同影响计费"类提示。
### TP-F-023: 保存核算超时/断网处理
- 优先级: P2
- 类型: 功能测试
- 覆盖维度: 弱网超时
- 来源: [漏测清单]
- 描述: 验证保存核算请求超时、断开网络时的表现(漏测清单 §2)。
- 关键验证点: 超时/断网有明确失败提示与 Loading 状态;弹窗已填内容保留;恢复网络后重试保存成功且不产生重复写入;无半落库状态(字段要么全写入要么无变化)。
### TP-F-024: 再次打开修改核算弹窗的回显基准
- 优先级: P2
- 类型: 功能测试
- 覆盖维度: 数据校验
- 来源: [风险矩阵][需求]
- 描述: 对已保存过物流公司的运单再次打开修改核算弹窗时,回显值以何为准——Q8 已确认:**以运单表已存快照为准(运单维度)**;未核算的运单没有值,按货源所选公司默认带入(货源维度)。
- 关键验证点: 已核算运单再次打开弹窗回显=运单表已存快照(非货源当前值):构造货源侧改值场景验证回显仍为快照值;未核算运单打开弹窗时按货源所选公司默认带入(运单表无值);回显口径与 TP-I-002/TP-H-008 展示/筛选口径一致。
> 📌 原问题(已确认):核算弹窗再次打开时的回显基准(运单表已存值 vs 货源当前值)。影响范围:运单管理展示列与导出、打款筛选过滤依据、快照一致性验证。
> ✅ 已确认(2026-09-29):回显**以运单表已存快照为准**(核算保存即固化;未核算的运单没有值,按货源所选公司默认带入、弹窗内可清除或更换);展示/筛选/导出一律同此基准(见需求文档第八章 Q8)。
### TP-F-025: 并发修改同一运单核算
- 优先级: P2
- 类型: 功能测试
- 覆盖维度: 并发幂等
- 来源: [项目画像][需求]
- 描述: 验证两人同时打开同一运单修改核算并先后保存的表现(项目画像 §8.2 并发提交)。
- 关键验证点: 后保存者覆盖先保存者(或按平台锁机制给出提示),最终运单字段为单次有效结果;无字段交叉写入/脏数据;核算状态不异常;日志完整可追溯。
---
## 模块G: 货源选择物流公司 (8个测试点)
### TP-G-001: 发布货源新增"物流公司"字段
- 优先级: P1
- 类型: 功能测试
- 覆盖维度: 主流程
- 来源: [需求]
- 描述: 对应 REQ-031/BR-07/6.7。整车运输 → 货源管理 → 发布货源(新建)表单在承运信息区("指定车队司机"附近)新增"物流公司"字段,选填、单选。
- 关键验证点: 字段位置在承运信息区且标注选填;含"选择物流公司"入口;不填写不影响货源其他字段填写与保存。
### TP-G-002: 复用选择弹窗能力
- 优先级: P1
- 类型: 功能测试
- 覆盖维度: 主流程
- 来源: [需求][最佳实践]
- 描述: 对应 BR-07.1。货源场景复用 BR-06 选择弹窗(仅启用公司、支持搜索/分页/单选)(最佳实践:选择弹窗能力复用一致性)。
- 关键验证点: 弹窗与核算场景同款(仅启用公司、创建时间倒序、名称/信用代码搜索、分页 20 条);停用公司不出现;单选语义一致。
### TP-G-003: 选择后回显与"移除"清空
- 优先级: P1
- 类型: 功能测试
- 覆盖维度: 主流程
- 来源: [需求]
- 描述: 对应 6.7.2。选择后回显公司名称、统一社会信用代码、联系人;可点"移除"清空。
- 关键验证点: 回显三要素与公司档案一致;"移除"后字段恢复空态可重新选择;移除不报错。
### TP-G-004: 更换——替换上次选择
- 优先级: P1
- 类型: 功能测试
- 覆盖维度: 规则组合
- 来源: [需求]
- 描述: 对应 BR-07.3/6.7.2。再次打开弹窗选择另一家公司时替换上次选择(单选)。
- 关键验证点: 选择 B 后回显 B(A 被替换);货源上最终仅一家公司;不产生多条关联。
### TP-G-005: 保存快照写入并随货源展示
- 优先级: P1
- 类型: 功能测试
- 覆盖维度: 数据校验
- 来源: [需求]
- 描述: 对应 BR-07.3。保存货源时写入所选公司信息快照(名称等冗余存储),货源管理列表"物流公司"列按快照展示。
- 关键验证点: 保存后货源详情/列表该列显示所选公司名称;快照字段落库(非联表实时取值,改名后不变见 TP-I-006);未选择时显示"无外协公司"。
### TP-G-006: 不选择不影响任何流程(记录性总原则)
- 优先级: P1
- 类型: 功能测试
- 覆盖维度: 规则组合
- 来源: [需求]
- 描述: 对应 BR-07.2/1.4 设计原则。选择与否、公司有无合同,均不影响货源发布、接单、运单流转与结算。
- 关键验证点: 不选公司货源发布成功;已选/未选公司货源均可正常接单生成运单;货源状态流转不因该字段变化;结算流程不受影响。
### TP-G-007: 编辑货源——更换/清除物流公司
- 优先级: P1
- 类型: 功能测试
- 覆盖维度: 主流程
- 来源: [需求]
- 描述: 对应 REQ-031/BR-07.3。编辑货源页面可回显已选公司并支持更换或清除,保存后快照更新。
- 关键验证点: 编辑页回显已选公司;更换后快照更新为最新值;清除后快照清空、列表显示"无外协公司";后端已完成运单不受货源快照变更影响(运单快照独立)。
### TP-G-008: 无生效合同公司可选(Q3 口径复用)
- 优先级: P2
- 类型: 功能测试
- 覆盖维度: 规则组合
- 来源: [需求]
- 描述: 货源场景复用 Q3 口径:无生效合同的公司在弹窗中显示"⚠ 无生效合同"提示但可勾选,仅提示不阻断。
- 关键验证点: 无合同提示正常显示;可勾选并保存货源成功;货源发布不受影响。
---
## 模块H: 打款列表物流公司筛选 (11个测试点)
> 模块口径:BR-08 明确"筛选仅作查询过滤与结果展示,不影响打款流程、金额计算与任何审批动作";下拉含停用公司(历史打款记录需可按原公司查出)——与核算勾选弹窗"停用不可见"是两个相反的可见性口径,分开验证。打款记录页仅增加筛选项(FR-10 展示列范围仅货源管理/运单管理/货主打款/财务打款四处)。
### TP-H-001: 货主打款页查询区新增筛选项
- 优先级: P1
- 类型: 功能测试
- 覆盖维度: 主流程
- 来源: [需求]
- 描述: 对应 REQ-032/BR-08/6.8。整车运输 → 承运结算 → 货主打款页查询区新增"物流公司"下拉筛选项。
- 关键验证点: 筛选项存在且位于查询区;下拉选项结构为"全部 / 无外协公司 / 各物流公司";与原有筛选条件(运单号、打款状态、时间范围等)共存不冲突。
### TP-H-002: 财务打款页查询区同步新增筛选项
- 优先级: P1
- 类型: 功能测试
- 覆盖维度: 主流程
- 来源: [需求]
- 描述: 对应 REQ-032/6.8。财务打款页(与货主打款为两个独立页面)同步新增"物流公司"筛选项,口径与货主打款一致。
- 关键验证点: 财务打款页筛选项存在且选项结构一致;两页面的筛选行为一致;两个页面分别独立验证(不因改造一个页面而遗漏另一个)。
### TP-H-003: 打款记录页同步新增筛选项
- 优先级: P1
- 类型: 功能测试
- 覆盖维度: 主流程
- 来源: [需求]
- 描述: 对应 BR-08.1。打款记录页同步增加"物流公司"下拉筛选项(该页仅加筛选、不加展示列,展示列范围以 FR-10 四处为准)。
- 关键验证点: 打款记录页筛选项存在可用;该页不新增物流公司展示列(与 FR-10 列范围一致,避免超范围展示);筛选结果准确。
### TP-H-004: 下拉含停用公司——停用公司可筛出历史打款记录
- 优先级: P0
- 类型: 功能测试
- 覆盖维度: 规则组合
- 来源: [需求]
- 描述: 对应 BR-08.2/验收要点 9。物流公司下拉含停用状态公司(历史打款记录需可按原公司查出);停用公司不出现在核算勾选弹窗,但出现在打款筛选下拉——两个相反口径分别验证,不混淆。
- 关键验证点: 停用公司在打款筛选下拉中可选;选择停用公司可筛出改造前/后其关联的历史打款记录;同一停用公司在核算选择弹窗中不可见(对照 TP-F-003/TP-D-009);已删除公司是否出现在下拉按快照追溯口径记录实际行为。
### TP-H-005: "无外协公司"筛选归属
- 优先级: P1
- 类型: 功能测试
- 覆盖维度: 数据校验
- 来源: [需求]
- 描述: 对应 BR-08.3/6.8。未关联物流公司的运单统一归入"无外协公司"选项,可单独过滤。
- 关键验证点: 选择"无外协公司"仅返回未关联记录;已关联记录不混入;未核算与已核算但未选公司的运单均归入该口径(按 TP-H-008 已确认口径核对)。
### TP-H-006: "全部"与各公司选项数据准确性
- 优先级: P1
- 类型: 功能测试
- 覆盖维度: 数据校验
- 来源: [需求]
- 描述: 验证"全部"返回含外协与无外协全部记录;选择任一家公司返回的记录与该公司关联运单一致。
- 关键验证点: "全部"记录数=各选项记录数之和(含无外协公司);选择 A 公司返回条数与运单上记录 A 的条数一致;下拉选项列表与档案数据一致(每家有记录的公司均可选)。
### TP-H-007: 与其他条件组合筛选
- 优先级: P1
- 类型: 功能测试
- 覆盖维度: 规则组合
- 来源: [需求]
- 描述: 对应 REQ-032/6.8.2。物流公司筛选项可与运单号、打款状态、打款时间范围等条件组合查询,结果实时过滤。
- 关键验证点: "物流公司 A + 打款状态=已打款"组合结果精确;组合无结果时有提示;切换物流公司选项时其他条件不重置;实时过滤无整页刷新丢条件。
### TP-H-008: 筛选过滤依据口径
- 优先级: P1
- 类型: 功能测试
- 覆盖维度: 数据校验
- 来源: [风险矩阵][需求]
- 描述: BR-08.3 述过滤依据为运单上记录的物流公司;Q8 已确认:打款筛选**一律以运单表为准**(货源所选公司为货源维度记录,核算时按货源默认带入弹窗、确认核算后写入运单表);未核算或未关联归入"无外协公司",不联表实时取货源当前值。
- 关键验证点: 构造"货源选 A → 核算改为 B"的运单:仅按 B(运单表值)可筛出,按 A 不可筛出;构造"核算清除公司"的运单:归入"无外协公司"(不按货源带入值);未核算运单归入"无外协公司";同一运单仅归入一家公司口径(无重复归属);与 TP-I-002、TP-F-024 同一基准一致。
> 📌 原问题(已确认):运单管理列表/导出及打款筛选的"物流公司"取值口径矛盾(BR-09/6.9 旧表述 vs 6.6"运单表")。问题:核算环节更换/清除货源带入公司、或运单未核算时,两种口径结果不一致。影响范围:打款筛选过滤依据与展示列、快照一致性验证。
> ✅ 已确认(2026-09-29):**一律以运单表为准**——未核算或未关联显示"无外协公司",**不联表实时取货源当前值**;BR-09/6.9 已按此修订(见需求文档第八章 Q8)。
### TP-H-009: 筛选不改变打款流程、金额与审批
- 优先级: P0
- 类型: 回归测试
- 覆盖维度: 规则组合
- 来源: [风险矩阵][需求]
- 描述: 对应 BR-08.4/验收要点 9/1.4 设计原则。筛选与展示列仅作查询过滤,不影响打款流程、金额计算与任何审批动作(RISK-FINANCIAL 回归重点)。
- 关键验证点: 筛选某公司后对结果记录执行打款/驳回,操作入口与结果与未筛选时一致;打款金额字段值与支付流水一致、不因筛选变化;审批动作(如有)不受影响;筛选不改变任何记录状态。
### TP-H-010: 筛选结果与展示列一致性
- 优先级: P1
- 类型: 功能测试
- 覆盖维度: 数据校验
- 来源: [需求]
- 描述: 选择某公司筛选后,列表"物流公司"展示列所有行均显示该公司(快照名称),无外协筛选项下所有行显示"无外协公司"。
- 关键验证点: 筛选结果与展示列逐行一致;快照名称与档案当前名称的差异场景(改名后)展示为快照值;空值展示"无外协公司"。
### TP-H-011: 筛选重置与切换
- 优先级: P2
- 类型: 功能测试
- 覆盖维度: 主流程
- 来源: [漏测清单]
- 描述: 验证重置按钮清空物流公司筛选项为"全部",切换不同公司选项时列表即时刷新(漏测清单 §4)。
- 关键验证点: 重置后物流公司项回"全部";连续切换选项无残留结果;切换后分页回第 1 页。
---
## 模块I: 列表展示与快照口径 (12个测试点)
> 模块口径:BR-09/FR-10 —— 货源管理列表、运单管理、货主打款、财务打款四处显示"物流公司"列(只读),空值统一显示"无外协公司",导出 Excel 需同步包含该列;展示为公司名称快照(改名/停用/删除后历史不变)。
### TP-I-001: 货源管理列表新增"物流公司"列
- 优先级: P1
- 类型: 功能测试
- 覆盖维度: 主流程
- 来源: [需求]
- 描述: 对应 REQ-033/BR-09.1。货源管理列表显示该货源所选物流公司;未选择显示"无外协公司";建议列位置置于"目的地"之后。
- 关键验证点: 列存在且只读;已选货源显示公司名称快照;未选显示"无外协公司";列位置与需求建议一致(或记录实际位置供评审确认)。
### TP-I-002: 运单管理新增"物流公司"列(取值口径)
- 优先级: P1
- 类型: 功能测试
- 覆盖维度: 数据校验
- 来源: [风险矩阵][需求]
- 描述: 对应 REQ-033/BR-09.2。运单管理列表新增"物流公司"列(建议置于"承运司机"附近);Q8 已确认:**取值一律以运单表为准**——货源所选公司为货源维度记录,核算时按货源默认带入弹窗、确认核算后写入运单表;未核算或未关联显示"无外协公司",不联表实时取货源当前值。
- 关键验证点: 列存在且只读、未关联显示"无外协公司";构造"货源选 A → 核算改为 B"的运单:显示 B(运单表值)、不显示 A;"核算清除公司"的运单:显示"无外协公司";运单未核算但货源已选公司的:显示"无外协公司"(不取货源当前值);导出列同步含该列且同口径(TP-I-009)。
> 📌 原问题(已确认):运单管理列表/导出的"物流公司"取值口径(BR-09/6.9 旧表述 vs 6.6"运单表中的公司信息")。问题:核算环节更换/清除货源带入公司、或运单未核算时,两种口径结果不一致。影响范围:运单管理展示列与导出、快照一致性验证。
> ✅ 已确认(2026-09-29):**一律以运单表为准**;未核算/未关联显示"无外协公司",不联表实时取货源当前值;导出同口径(见需求文档第八章 Q8)。
### TP-I-003: 货主打款列表新增"物流公司"列
- 优先级: P1
- 类型: 功能测试
- 覆盖维度: 主流程
- 来源: [需求]
- 描述: 对应 REQ-033/BR-09.3/6.8。货主打款列表显示运单上记录的公司名称快照;未关联显示"无外协公司";建议列位置置于"运输单号"之后。
- 关键验证点: 列存在;取值与打款对应运单的物流公司快照一致;空值"无外协公司";只读不可操作。
### TP-I-004: 财务打款列表新增"物流公司"列
- 优先级: P1
- 类型: 功能测试
- 覆盖维度: 主流程
- 来源: [需求]
- 描述: 对应 REQ-033/BR-09.3。财务打款列表同步新增该列,口径与货主打款一致。
- 关键验证点: 列存在且与货主打款口径一致;空值"无外协公司";两列表分别独立验证。
### TP-I-005: 空值统一显示"无外协公司"
- 优先级: P1
- 类型: 功能测试
- 覆盖维度: 数据校验
- 来源: [需求]
- 描述: 四个列表及打款筛选中,未关联物流公司的记录统一显示/归入"无外协公司",不得出现空白、"-"等其他写法。
- 关键验证点: 四处列表空值文案逐字统一为"无外协公司";筛选下拉空值选项同文案;不存在混用(如"无"、"--");已清除公司(TP-F-014)的运单同样归入该口径。
### TP-I-006: 快照口径——公司改名后历史展示不变
- 优先级: P0
- 类型: 功能测试
- 覆盖维度: 数据校验
- 来源: [需求][风险矩阵][技术方案]
- 描述: 对应 REQ-027/REQ-034/BR-09.4/第 7 章。公司改名后,之前已保存的运单/货源/打款记录仍显示保存时的公司名称(证明运单表冗余存储、未联表实时取值——RISK-DATA 核心判据)。
- 关键验证点: 改名前关联的记录在货源管理/运单管理/货主打款/财务打款四列表及导出中均显示旧名称;改名后新选择的记录显示新名称;期间无任何列表出现新旧混读的实时联表现象。
### TP-I-007: 快照口径——公司停用后历史展示不变
- 优先级: P0
- 类型: 功能测试
- 覆盖维度: 状态流转
- 来源: [需求][风险矩阵]
- 描述: 对应 REQ-034/验收要点 3/10。公司停用后,历史货源/运单/打款记录的物流公司列展示不变(不因停用变灰、置空或隐藏)。
- 关键验证点: 停用后四列表该列仍显示原名称;打款筛选"含停用"可筛出(TP-H-004);已核算运单不受影响(TP-D-010 联动)。
### TP-I-008: 快照口径——公司删除后历史展示不变
- 优先级: P0
- 类型: 功能测试
- 覆盖维度: 数据校验
- 来源: [需求][风险矩阵]
- 描述: 对应 REQ-034/BR-06.6/BR-09.4。公司被逻辑删除后,历史运单/货源/打款记录仍显示原公司名称快照(历史追溯由快照字段保证)。
- 关键验证点: 删除公司后四列表历史记录展示不变;导出仍含原名称;选择弹窗与核算勾选不含已删除公司(对照 TP-D-006/D-008);无"未知公司/ID 直显"等异常展示。
### TP-I-009: 四列表导出 Excel 含"物流公司"列
- 优先级: P1
- 类型: 功能测试
- 覆盖维度: 数据校验
- 来源: [需求]
- 描述: 对应 BR-09.5。货源管理列表、运单管理、货主打款、财务打款四个列表的导出 Excel 均同步包含"物流公司"列(快照口径、空值"无外协公司")。
- 关键验证点: 四个列表导出文件均含该列;列值与页面展示及筛选条件一致;空值文案统一;大数据量按 20000 上限口径。
### TP-I-010: 列为只读展示、不参与任何流程
- 优先级: P2
- 类型: 功能测试
- 覆盖维度: 数据校验
- 来源: [需求]
- 描述: 对应 1.4 设计原则。四个列表的"物流公司"列均为只读信息,无点击编辑、无流程入口。
- 关键验证点: 列内无链接/编辑入口;点击无跳转或仅按需求口径;该列不参与排序控制?如支持排序需验证排序正确(若不支持则记录);不改变列表既有操作列。
### TP-I-011: 列位置建议符合
- 优先级: P3
- 类型: 功能测试
- 覆盖维度: 主流程
- 来源: [需求]
- 描述: 对应 6.9 建议列位置:货源管理列表置于"目的地"之后;运单管理置于"承运司机"附近;货主打款/财务打款置于"运输单号"之后。
- 关键验证点: 三处列位置与建议一致(或记录实际位置供评审确认);列插入不导致既有列错位/数据错列。
### TP-I-012: 历史数据兼容——无需回填
- 优先级: P1
- 类型: 兼容性测试
- 覆盖维度: 边界条件
- 来源: [风险矩阵]
- 描述: 对应 RISK-COMPATIBILITY/确认结论 §5。上线前已存在的历史运单/货源/打款记录按快照口径显示,未关联记录统一显示"无外协公司",无需历史数据回填。
- 关键验证点: 选取上线前历史记录(含已打款、已完结状态)验证四列表显示"无外协公司";历史记录可正常参与筛选(归入"无外协公司"选项);无空指针/展示异常;无需执行任何数据迁移脚本(以回归结果佐证)。
---
## 模块J: 权限、机构隔离与行为日志 (10个测试点)
### TP-J-001: 菜单与角色权限配置
- 优先级: P0
- 类型: 安全性测试
- 覆盖维度: 权限控制
- 来源: [需求]
- 描述: 对应 REQ-035/第 3 章。系统管理员可通过平台角色权限体系授权"物流公司管理"菜单与操作权限给目标角色;授权后可见可操作,未授权不可见。
- 关键验证点: 角色管理可勾选物流公司管理菜单权限;授权后重新登录(或刷新)菜单出现;取消授权后菜单消失;权限粒度覆盖菜单可见性与增删改操作。
### TP-J-002: 核算人员物流公司列表只读
- 优先级: P0
- 类型: 安全性测试
- 覆盖维度: 权限控制
- 来源: [需求][风险矩阵]
- 描述: 对应 REQ-035/验收要点 7/第 3 章。核算人员角色可查看物流公司列表(只读),不可新增/编辑/删除/启停用。
- 关键验证点: 核算人员账号进入列表为只读(无新增按钮、无操作列编辑/删除、无状态开关或开关不可点);只读角色仍可选择公司用于核算勾选(核心职责保留);页面无越权入口(RISK-COMPLIANCE)。
### TP-J-003: 未登录/未授权 URL 直达拦截
- 优先级: P1
- 类型: 安全性测试
- 覆盖维度: 权限控制
- 来源: [漏测清单]
- 描述: 未登录直接输入物流公司管理页面 URL、或未授权角色直达 URL 时被拦截(漏测清单 §3 未登录访问)。
- 关键验证点: 未登录直达 URL 跳转登录页;未授权角色直达返回 403/无权限页;拦截不渲染列表数据;前端路由与后端接口双重拦截。
### TP-J-004: 接口层越权防御
- 优先级: P1
- 类型: 安全性测试
- 覆盖维度: 权限控制
- 来源: [项目画像][漏测清单]
- 描述: 使用核算人员/低权限账号 token 直接调用新增/编辑/删除/启停用接口(绕过前端)时被拒绝(项目画像 §8.2 越权操作)。
- 关键验证点: 低权限直调写接口返回无权限(非成功);直调他人机构公司 ID 写接口被拒;返回码与提示统一;无数据被修改。
### TP-J-005: 机构数据隔离——跨机构不可见
- 优先级: P0
- 类型: 安全性测试
- 覆盖维度: 权限控制
- 来源: [项目画像][需求]
- 描述: 对应 REQ-035/第 3 章。物流公司按创建机构归属,A 机构账号在列表/导出/选择弹窗中均看不到 B 机构创建的公司(项目画像 §7.3/§8.2 多机构数据隔离)。
- 关键验证点: 两机构分别登录核对列表互不可见;导出数据不含跨机构公司;模糊搜索无法搜出跨机构公司(搜索不绕过隔离);统计数(生效合同数等)不泄露跨机构信息。
### TP-J-006: 机构数据隔离——跨机构不可操作
- 优先级: P0
- 类型: 安全性测试
- 覆盖维度: 权限控制
- 来源: [项目画像][需求]
- 描述: A 机构账号通过篡改请求参数(公司 ID/合同 ID)操作 B 机构数据时被拒绝。
- 关键验证点: 篡改编辑/删除/启停用/合同接口的 ID 为跨机构对象时被拒(非成功);直接 URL 访问跨机构编辑页被拒;无信息泄露(错误提示不回显跨机构数据明细)。
### TP-J-007: 选择弹窗数据范围按机构隔离
- 优先级: P1
- 类型: 安全性测试
- 覆盖维度: 权限控制
- 来源: [项目画像]
- 描述: 核算/货源场景的选择弹窗中,仅加载本机构(当前登录账号机构)的启用公司;跨机构公司不出现。
- 关键验证点: A 机构核算人员弹窗无 B 机构公司;搜索关键词亦无法检出跨机构公司;跨机构唯一性冲突场景提示口径(同码公司分属不同机构时建档提示)记录实际行为供评审。
### TP-J-008: 行为日志——增删改/启停用留痕
- 优先级: P0
- 类型: 安全性测试
- 覆盖维度: 权限控制
- 来源: [需求][风险矩阵]
- 描述: 对应 REQ-035/第 3 章/第 7 章。物流公司的增/删/改、启用/停用均写入行为日志(操作人、时间、IP、变更内容摘要)。
- 关键验证点: 新增/编辑/删除/启停用后均可查到日志;日志含操作人、时间、IP、变更摘要四要素;变更摘要能体现关键字段变化;日志不可被普通角色篡改/删除。
### TP-J-009: 行为日志——合同操作与核算修改留痕
- 优先级: P1
- 类型: 安全性测试
- 覆盖维度: 权限控制
- 来源: [需求][漏测清单]
- 描述: 合同的新增/编辑/删除与运单核算修改(含覆盖更新)均记录操作日志(漏测清单 §6 操作日志可追溯)。
- 关键验证点: 合同增删改均有日志;核算保存/修改核算有日志(TP-F-017 联动);日志时间与操作一致;可按时间/操作人检索(如平台行为日志支持)。
### TP-J-010: 敏感证件访问合规
- 优先级: P1
- 类型: 安全性测试
- 覆盖维度: 权限控制
- 来源: [风险矩阵]
- 描述: 对应 RISK-COMPLIANCE。营业执照、法人身份证人像面/国徽面属敏感资质信息,访问受权限控制并留痕。
- 关键验证点: 非授权角色无法查看/下载证件图片;证件 URL 不可被未授权直接访问(如 OBS 签名或鉴权);查看/下载行为可追溯(或明确记录实际鉴权方式供评审确认)。
---
## 模块X: 跨需求回归与兼容 (14个测试点)
> 模块口径:本需求与 4 个历史需求均为"并行"关系、0 冲突(确认结论);唯一跨需求动作是安徽运八回归关注点(打款页面级交集)。本模块覆盖 [冲突修订] 与 [历史缺陷] 防御;另含 2 个项目画像差异化范围防护点(TP-X-013 垫资打款两页范围与误伤、TP-X-014 同名「运费核算」菜单定位与误伤)。
### TP-X-001: 打款完成仍正常触发安徽运八第二次上报
- 优先级: P0
- 类型: 回归测试
- 覆盖维度: 跨需求冲突防御
- 来源: [冲突修订][需求]
- 描述: 对应分析 10.2-1/确认结论 §4 第 3 行。货主打款/财务打款页面改造(新增物流公司筛选与展示列)后,打款完成仍正常触发安徽运八第二次上报,上报数据字段来源不变。
- 关键验证点: 改造后完成一笔打款,第二次上报仍被自动触发且成功;上报状态流转(上传中→已上传/通过)正常;新增筛选与展示列不改变触发时机与上报入口;无外协公司的打款记录同样正常触发(10.2-3)。
### TP-X-002: 上报资金流水金额来源溯源(BUG-202607-03 防御)
- 优先级: P0
- 类型: 回归测试
- 覆盖维度: 历史缺陷防御
- 来源: [冲突修订][历史缺陷]
- 描述: 验证第二次上报的资金流水数据来源于支付流水表(非运单/缓存),财务调整打款金额后上报使用最新实际打款金额(历史缺陷 BUG-202607-03 跨模块数据不一致防御)。
- 关键验证点: 上报金额与支付流水完全一致(逐字段核对);在账户管理调整打款金额后,重新上报使用调整后金额(非旧缓存值);本次打款页面改造(筛选/展示列)不影响金额来源链路。
### TP-X-003: 上报重试与手动触发并发幂等(BUG-202607-02 防御)
- 优先级: P1
- 类型: 回归测试
- 覆盖维度: 历史缺陷防御
- 来源: [历史缺陷]
- 描述: 上报自动重试期间手动触发上传的幂等保护不受打款页面改造影响(历史缺陷 BUG-202607-02 重试幂等防御,结合漏测清单 §6 重试+手动触发并发)。
- 关键验证点: 重试期间手动触发提示"上报处理中"并拒绝重复提交;同一运单同一阶段短时间内仅一条成功上报记录;改造后该链路行为与改造前一致。
### TP-X-004: 上报阶段依赖链前后端双重校验(BUG-202607-01 防御)
- 优先级: P1
- 类型: 回归测试
- 覆盖维度: 历史缺陷防御
- 来源: [历史缺陷]
- 描述: 第一次上报失败(3 次重试全失败)后第二次上报被后端拒绝并返回明确错误,前端+后端双重拦截,不受本次改造影响(历史缺陷 BUG-202607-01 防御)。
- 关键验证点: 前置上报未完成时后端拒绝后续上报(返回明确错误码/提示);前端按钮控制与后端校验同时生效;改造后依赖链行为不变。
### TP-X-005: 上报省份/行政区划字段回归(BUG-202607-04 防御)
- 优先级: P1
- 类型: 回归测试
- 覆盖维度: 历史缺陷防御
- 来源: [历史缺陷]
- 描述: 安徽运八上报的省份代码为安徽省代码 34(非项目默认云南 28),行政区划字段与目标省份一致;本次打款页面改造不得影响上述字段(历史缺陷 BUG-202607-04 防御)。
- 关键验证点: 改造后完成的打款触发的上报报文中省份代码=34;行政区划相关字段与目标省份一致;无硬编码回退到 28 的回归。
### TP-X-006: 打款金额计算回归(金额不受筛选/展示影响)
- 优先级: P0
- 类型: 回归测试
- 覆盖维度: 跨需求冲突防御
- 来源: [风险矩阵][项目画像][冲突修订]
- 描述: 对应 RISK-FINANCIAL/项目画像 §5.4。选取含能源费/居间费/税费的运单样本,回归货主合计付款(基础运费+服务费)、能源费转化、居间费、车队长收款(居间费+1%税费)等金额口径,改造前后一致。
- 关键验证点: 改造前后打款金额逐字段对比无差异;物流公司筛选与其他筛选组合下金额值不变;金额可追溯、前后端一致(项目画像 §5.1);无重复扣减。
### TP-X-007: 打款/驳回操作入口与结果回归
- 优先级: P0
- 类型: 回归测试
- 覆盖维度: 跨需求冲突防御
- 来源: [冲突修订][需求]
- 描述: 对应验收要点 9"筛选不改变打款/驳回等任何操作"。货主打款/财务打款的打款、驳回等操作入口、流程与结果不受本次改造影响。
- 关键验证点: 打款操作正常完成、状态流转正确;驳回操作正常(驳回原因、状态、后续处理与改造前一致);按钮显示条件(状态映射)不变;操作日志完整。
### TP-X-008: 无外协公司记录与新关联记录均可正常打款
- 优先级: P1
- 类型: 回归测试
- 覆盖维度: 跨需求冲突防御
- 来源: [冲突修订]
- 描述: 对应分析 10.2-3。无外协公司的打款记录与新关联物流公司的记录均能在货主打款/财务打款两页面正常查询、打款。
- 关键验证点: 两类记录均可被筛出并正常执行打款;打款结果一致;"无外协公司"选项下记录可正常操作;新关联公司记录展示快照名称。
### TP-X-009: 运单核心状态机解耦
- 优先级: P1
- 类型: 功能测试
- 覆盖维度: 状态流转
- 来源: [需求][项目画像]
- 描述: 对应需求 7.4 解耦声明/项目画像 §5.2。运单核心状态机(待运输→运输中→已卸货→已结算→已垫付/已打款)不受物流公司关联影响:关联不是任何状态流转的前置或后置条件,不引入跳状态/逆状态。
- 关键验证点: 未选物流公司的运单全流程状态流转正常;已选公司的运单状态流转正常且与选择前一致;打款筛选/展示列不引入任何状态副作用;货源状态不因是否选择公司变化(BR-07.4)。
### TP-X-010: 与小象开票建档防串扰
- 优先级: P3
- 类型: 回归测试
- 覆盖维度: 跨需求冲突防御
- 来源: [冲突修订]
- 描述: 对应分析 10.1-1 防串扰提醒。物流公司档案(独立建档 + 信用代码唯一防重,Q4 不打通)与小象开票"收款方/司机/车辆"建档体系互不影响。
- 关键验证点: 物流公司建档不影响开票收款方体系数据;两体系同为信用代码唯一防重但各自独立(同一代码在两体系的表现记录实际行为);测试中不混淆两类"企业主体信息"建档。
### TP-X-011: 与运单资料文件包下载不干扰
- 优先级: P3
- 类型: 回归测试
- 覆盖维度: 跨需求冲突防御
- 来源: [冲突修订]
- 描述: 对应分析 10.1-2。运单管理新增只读"物流公司"列与文件包下载功能互不依赖:文件包上传/异步打包/下载不读取物流公司字段,本次不改变运单管理既有数据口径。
- 关键验证点: 文件包上传/打包/下载流程不受新增列影响;运单管理既有列与导出(除新增列外)口径不变;文件包数据不含/不依赖物流公司字段。
### TP-X-012: 术语口径一致性
- 优先级: P3
- 类型: 功能测试
- 覆盖维度: 数据校验
- 来源: [需求][项目画像]
- 描述: 验证交付产物与页面文案的术语一致性:全文禁用"核算单"(核算即运单核算)、空值统一"无外协公司"、角色沿用"运营管理员/核算人员"等标准词(分析 §12 术语统一口径)。
- 关键验证点: 页面无"核算单/新建核算单"字样;空值文案四处统一"无外协公司";产品文案与术语表一致性抽查(菜单名"物流公司管理"、弹窗名"修改核算")。
### TP-X-013: 垫资打款两页范围防护与误伤回归
- 优先级: P1
- 类型: 回归测试
- 覆盖维度: 项目高风险场景
- 来源: [项目画像][风险矩阵]
- 描述: 依据项目画像 §2.3,平台「承运结算」菜单下除货主打款/财务打款外,还存在「垫资-货主打款」「垫资-财务打款」两个变体页面(对应项目画像 §5.3 垫资流程:平台先行垫付运费给司机 → 货主后还款)。需求 FR-09/6.8 仅点名改造货主打款/财务打款(+打款记录页);Q17 已确认:**垫资两页本期不改造(保持原样)**。本测试点验证改造范围边界:垫资两页不被本次改造误伤、其查询与打款功能不受影响。
- 关键验证点: ① 已改造的货主打款/财务打款两页物流公司筛选与展示列正常(回归基线,与 TP-H-001/002、TP-I-003/004 对应);② 垫资-货主打款/垫资-财务打款两页查询区与列表保持改造前原样(无"物流公司"筛选项与展示列),页面结构与行为无变化;垫资运单(货主标记垫资 AND 货源标记垫资,项目画像 §5.3)在垫资两页可正常查询与打款,垫资金额计算与流程不受影响(若垫资页与普通打款页共用组件,重点核对筛选组件变更未泄露至垫资页);③ 普通运单与垫资运单在两类页面间的归属与展示不串数。
> 📌 原问题(已确认):垫资-货主打款/垫资-财务打款两页是否也需要同口径增加"物流公司"筛选与展示列(需求 FR-09/FR-10 与 6.8/6.9 均未提及)。影响范围:若需同口径改造,需补充对应筛选/展示用例并回归垫资链路(涉及资损面)。
> ✅ 已确认(2026-09-29):**本期不改造**——垫资两页保持原样;需回归验证其查询与打款功能不受本次改造影响(见需求文档第八章 Q17)。
### TP-X-014: 两个「运费核算」菜单的定位与误伤防护
- 优先级: P1
- 类型: 回归测试
- 覆盖维度: 项目高风险场景
- 来源: [项目画像]
- 描述: 依据项目画像 §2.3,平台「运单认证核算」与「承运结算」菜单下各有一个「运费核算」菜单;需求 6.6 指明本次改造对象为 整车运输 → 承运结算 → 运费核算(修改核算弹窗新增"物流公司"与"客户收货地址"字段);Q18 已确认:**仅改造 整车运输 → 承运结算 → 运费核算;"运单认证核算 → 运费核算"不处理**。本测试点验证改造落点准确、同名菜单不被误伤。
- 关键验证点: ① 从 整车运输 → 承运结算 → 运费核算 进入:页面为运单列表、"修改核算"弹窗中"物流公司"与"客户收货地址"字段存在且可用(改造落点正确,与 TP-F-001/002 对应);② 「运单认证核算」下的同名「运费核算」入口及相关功能(运单证件异常/业务异常/时长异常/货物重量异常/运费金额异常/待处理异常运单/轨迹异常/风控异常运单)页面结构与行为保持原样,不出现新增字段、新增列或行为变化(防误伤);③ 「运单认证核算 → 运费核算」入口**不处理**:核验其页面结构、字段与行为保持改造前原样,本次改造未泄露至该入口(两入口互不影响)。
> 📌 原问题(已确认):两个「运费核算」菜单(「运单认证核算」下 与 「承运结算」下)是同一页面同一数据,还是两个独立功能。影响范围:本测试点第③点的一致性验证口径。
> ✅ 已确认(2026-09-29):**仅改造 整车运输 → 承运结算 → 运费核算**;「运单认证核算 → 运费核算」不处理、保持原样(见需求文档第八章 Q18)。
---
> 追溯说明:本文件覆盖分析文件 REQ-001~REQ-038 全部条目(REQ 与测试点对应关系见各测试点"描述"中的"对应 REQ-xxx"标注);分析 §11.2 的 5 项待确认项(Q7 与口径①~④)在 TP-F-021、TP-I-002/TP-H-008/TP-F-024、TP-D-005、TP-B-017/TP-C-003/TP-E-007、TP-F-020 中,以及项目画像补充识别的 2 项范围待确认(范围① TP-X-013 垫资打款两页范围、范围② TP-X-014 同名「运费核算」菜单关系)在对应测试点中,**共 11 处已于 2026-09-29 全部确认**(原问题保留于各测试点 `> 📌 原问题(已确认):` 标注,结论见 `> ✅ 已确认(2026-09-29):` 标注与文首"确认结论汇总"),对应测试点的关键验证点已按最终口径更新为确定断言。