- 需求 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 脚本骨架、覆盖率审计脚本与指标、评审修复脚本
1406 lines
97 KiB
Markdown
1406 lines
97 KiB
Markdown
# 物流公司管理需求 测试点
|
||
|
||
> 生成时间: 2026-09-29
|
||
> 需求文档: requirements/物流公司管理需求.md(v1.1,Q1–Q6 决议已确认)/标准化输入 output/normalized_inputs/物流公司管理需求/requirement.md
|
||
> 依据: output/analysis/物流公司管理需求_分析.md(REQ-001~REQ-038 追溯链、11.2 五项待确认)、_风险评估.md(RISK-DATA P1=最高风险;RISK-AVAILABILITY/FINANCIAL/COMPLIANCE/COMPATIBILITY 均 P2)、_测试策略.md、_关联与冲突.md、decisions/物流公司管理需求_确认结论.md(并行关系、0 冲突、Q7 待确认、安徽运八回归关注点)
|
||
> 知识库: 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 项;测试点已显式标注,评审确认后重点回归)
|
||
|
||
| 编号 | 待确认问题 | 影响测试点 |
|
||
| :--- | :--- | :--- |
|
||
| Q7 | 批量核算是否支持批量填充"物流公司 / 客户收货地址"(当前口径:不支持,批量逻辑不变) | TP-F-021 |
|
||
| 口径① | 运单管理列表/导出及打款筛选的"物流公司"取值口径矛盾(BR-09/6.9"货源带入" vs 6.6"运单表";核算更换/清除或未核算时两口径不一致) | TP-I-002、TP-H-008、TP-F-024 |
|
||
| 口径② | BR-04 删除保护是否覆盖"仅被货源引用、尚无运单"的公司 | TP-D-005 |
|
||
| 口径③ | 简称码空值唯一性、编辑"排除自身"字段范围(含合同编号编辑排除自身) | TP-B-017、TP-C-003、TP-E-007 |
|
||
| 口径④ | "客户收货地址"展示载体与范围(至少运单详情只读展示) | TP-F-020 |
|
||
| 范围① | 垫资-货主打款/垫资-财务打款两页是否同口径改造(需求 FR-09/FR-10 与 6.8/6.9 未提及) | TP-X-013 |
|
||
| 范围② | 两个「运费核算」菜单(「运单认证核算」下 / 「承运结算」下)是同一页面还是独立功能 | TP-X-014 |
|
||
|
||
---
|
||
|
||
## 模块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 口径);拒绝时提示格式白名单;拒绝后不产生半上传状态残留在表单内。
|
||
|
||
### 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 等排除字母、含小写字母、含特殊字符均失焦即报错;错误提示就地标红;修正后提示消失。
|
||
|
||
### 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 位被拒;含数字/汉字/符号被拒;大小写字母均可;不填可正常提交。
|
||
|
||
### 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。简称码(选填)全平台唯一,重复时提示;验证多家公司均不填简称码的场景。
|
||
- 关键验证点: 与已存在简称码重复被拒并提示;多家公司均留空简称码时均可保存(空值不参与唯一);与已删除公司简称码重复允许。
|
||
|
||
> ⚠️ 待确认:简称码"空值"是否参与全平台唯一约束(多家公司均留空是否冲突),以及数据库层唯一约束对空值的处理语义(NULL 可多条 vs 空串冲突)。影响范围:新增/编辑表单校验与并发场景。建议确认方向:明确"空值不参与唯一约束",并写入评审结论;本测试点当前按"空值可多条共存"设计,确认后回归。
|
||
|
||
### 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。编辑时对公司名称、统一社会信用代码修改后重新执行唯一性校验并排除自身:不改动这两项直接保存成功;改成其他公司的值被拒。
|
||
- 关键验证点: 不修改名称/信用代码时保存不被唯一性误拦(排除自身生效);修改为与现有其他公司重复的值被拒并提示;修改为全平台唯一值保存成功。
|
||
|
||
> ⚠️ 待确认:编辑时"排除自身"的字段范围——6.3 仅明示名称与统一社会信用代码重校验,简称码编辑时是否同样"排除自身"、合同编号编辑时是否排除自身(见 TP-E-007)未明确。影响范围:编辑表单校验与并发场景。建议确认方向:明确名称/信用代码/简称码/合同编号编辑时均排除自身,并写入评审结论。
|
||
|
||
### 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 阻断条件为"生效中合同或运单引用"两项,货源引用未列入。
|
||
- 关键验证点: 当前口径下(仅两项阻断条件)仅被货源引用的公司可删除;删除后货源列表该列仍按快照显示原公司名称(不空白);公司档案不可再查。
|
||
|
||
> ⚠️ 待确认:BR-04 删除保护是否应覆盖"仅被货源引用、尚未产生任何运单"的物流公司。影响范围:删除阻断判定逻辑、货源追溯完整性(货源快照已保真但公司档案不可再查)。建议确认方向:二选一——(a) 维持现状仅两条件阻断(推荐);(b) 追加"被货源引用"为阻断条件并同步修订 BR-04 与验收要点 2;确认后本测试点按新口径回归。
|
||
|
||
### 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 字符;编辑既有合同时编号未修改不应被唯一性误拦。
|
||
- 关键验证点: 50 字符可保存、51 字符被阻断;编辑合同仅改动其他字段(编号不变)保存成功;编辑改为同公司其他已用编号被拒。
|
||
|
||
> ⚠️ 待确认:合同编号编辑时是否"排除自身"重校验、简称码编辑排除自身(与 TP-C-003 同属口径③)。影响范围:合同编辑弹窗校验逻辑。建议确认方向:明确合同编号编辑时排除自身,并写入评审结论;当前按"编辑不改编号可直接保存"设计。
|
||
|
||
### 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)拒绝并提示;上传成功后显示文件名。
|
||
|
||
### 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 述"填充到运单表并随运单展示",但具体展示页面未明确(运单详情/列表列/导出是否包含)。
|
||
- 关键验证点: 保存后在运单详情可只读查看该地址(最低验收基线);运费核算列表/运单管理列表是否含该列、导出是否包含按评审确认口径验证;展示值不作联表实时取值(快照)。
|
||
|
||
> ⚠️ 待确认:"客户收货地址"的展示载体与范围(运单详情/运单管理列表列/运费核算列表/导出列是否包含)。影响范围:展示类断言位置与导出列范围。建议确认方向:明确至少"运单详情只读展示"为验收基线;是否加入列表列与导出列单独确认(推荐不加入列表列,避免列表字段膨胀);确认后补充对应用例。
|
||
|
||
### TP-F-021: 批量核算现状口径(不填充、不清除)
|
||
- 优先级: P2
|
||
- 类型: 功能测试
|
||
- 覆盖维度: 边界条件
|
||
- 来源: [需求]
|
||
- 描述: 对应 REQ-030/6.6。当前口径下批量核算沿用现有逻辑:不支持批量填充物流公司/客户收货地址,也不清除运单上已存的公司与地址。
|
||
- 关键验证点: 批量核算按原有字段逻辑执行且执行成功;批量后运单上已存的物流公司/客户收货地址保持不变(不被清空、不被覆盖);批量入口无物流公司/地址填写控件;已选/未选公司的运单批量后字段与批量前一致。
|
||
|
||
> ⚠️ 待确认:批量核算是否需要支持批量填充"物流公司/客户收货地址"(需求第八章 Q7,P1)。影响范围:运费核算批量入口的交互与落库逻辑、批量场景测试用例设计。当前按"不支持"口径设计(批量逻辑不变,不填充也不清除);建议确认方向:产品明确批量核算的字段范围(推荐维持不支持,或明确"批量仅处理原有核算字段,物流公司/客户收货地址仅单笔修改核算弹窗可填"),并把决议回写需求第八章;若后续确认支持,需补充对应用例并回归。
|
||
|
||
### TP-F-022: 核算金额与流程不因选择而改变
|
||
- 优先级: P0
|
||
- 类型: 功能测试
|
||
- 覆盖维度: 规则组合
|
||
- 来源: [需求]
|
||
- 描述: 对应 1.4 设计原则/REQ-014。物流公司与客户收货地址仅作记录,不参与任何计费与流程:选择/更换/清除公司、有无生效合同,均不改变运单核算的金额与结算数据。
|
||
- 关键验证点: 对比选择前后运单上的核算金额类字段(结算吨位、运费等原有字段)无任何变化;无生效合同公司被选中时无计费差异;不选公司不影响核算保存与后续结算;页面无任何"合同影响计费"类提示。
|
||
|
||
### TP-F-023: 保存核算超时/断网处理
|
||
- 优先级: P2
|
||
- 类型: 功能测试
|
||
- 覆盖维度: 弱网超时
|
||
- 来源: [漏测清单]
|
||
- 描述: 验证保存核算请求超时、断开网络时的表现(漏测清单 §2)。
|
||
- 关键验证点: 超时/断网有明确失败提示与 Loading 状态;弹窗已填内容保留;恢复网络后重试保存成功且不产生重复写入;无半落库状态(字段要么全写入要么无变化)。
|
||
|
||
### TP-F-024: 再次打开修改核算弹窗的回显基准
|
||
- 优先级: P2
|
||
- 类型: 功能测试
|
||
- 覆盖维度: 数据校验
|
||
- 来源: [风险矩阵][需求]
|
||
- 描述: 对已保存过物流公司的运单再次打开修改核算弹窗时,回显值以何为准:运单表已存快照 vs 货源当前值(分析 11.2 #2 影响范围之一)。
|
||
- 关键验证点: 记录并验证再次打开时的实际回显值来源(运单表快照优先);货源在运单核算后被更换公司的场景下回显一致性;结合 TP-I-002/TP-H-008 的取值口径一并裁决。
|
||
|
||
> ⚠️ 待确认:核算弹窗再次打开时的回显基准(运单表已存值 vs 货源当前值)。影响范围:运单管理展示列与导出、打款筛选过滤依据、快照一致性验证。建议确认方向:明确以运单表快照为准(核算保存即固化;未核算运单的回退取值——货源带入值或"无外协公司"——需二选一定义),并同步修订 BR-09/6.9 表述使全文一致。
|
||
|
||
### 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 述过滤依据为"运单上记录的物流公司(由货源选择带入,FR-08)",6.6 述展示为"运单表记录的公司信息";当核算环节更换/清除了货源带入公司时两种口径结果不同(分析 11.2 #2)。
|
||
- 关键验证点: 构造"货源选 A → 核算改为 B"的运单,验证打款筛选用 A 还是 B 能筛出(记录实际基准);构造"核算清除公司"的运单,验证归入"无外协公司"还是仍按货源带入值;与 TP-I-002、TP-F-024 同口径一并裁决。
|
||
|
||
> ⚠️ 待确认:运单管理列表/导出及打款筛选的"物流公司"取值口径矛盾(BR-09/6.9"随货源带入" vs 6.6"运单表")。问题:核算环节更换/清除货源带入公司、或运单未核算时,两种口径结果不一致。影响范围:打款筛选过滤依据与展示列、快照一致性验证。建议确认方向:明确以运单表快照为准(核算保存即固化;未核算运单的回退取值二选一定义),并同步修订 BR-09/6.9 表述;确认后本测试点与 TP-I-002 按最终口径回归。
|
||
|
||
### 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。运单管理列表新增"物流公司"列(建议置于"承运司机"附近);BR-09 述"随货源带入",6.6 述"运单表快照"——核算更换/清除或运单未核算时两口径结果不一致(分析 11.2 #2)。
|
||
- 关键验证点: 列存在且只读、未关联显示"无外协公司";构造"货源选 A → 核算改为 B"与"核算清除"两类运单,记录该列实际取值;运单未核算但货源已选公司的取值口径记录;导出列同步含该列(TP-I-009)。
|
||
|
||
> ⚠️ 待确认:运单管理列表/导出的"物流公司"取值口径(BR-09/6.9"关联货源上记录的物流公司" vs 6.6"运单表中的公司信息")。问题:核算环节更换/清除货源带入公司、或运单未核算时,两种口径结果不一致。影响范围:运单管理展示列与导出、快照一致性验证。建议确认方向:明确以运单表快照为准(核算保存即固化;未核算运单回退取值二选一定义),并同步修订 BR-09/6.9 表述;确认后本测试点按最终口径回归。
|
||
|
||
### 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 仅点名改造货主打款/财务打款(+打款记录页),未提及垫资两页是否同口径改造。本测试点验证改造范围边界:垫资两页当前口径下不在改造范围、不被本次改造误伤。
|
||
- 关键验证点: ① 已改造的货主打款/财务打款两页物流公司筛选与展示列正常(回归基线,与 TP-H-001/002、TP-I-003/004 对应);② 垫资-货主打款/垫资-财务打款两页查询区与列表保持改造前原样(无"物流公司"筛选项与展示列),页面结构与行为无变化;垫资运单(货主标记垫资 AND 货源标记垫资,项目画像 §5.3)在垫资两页可正常查询与打款,垫资金额计算与流程不受影响(若垫资页与普通打款页共用组件,重点核对筛选组件变更未泄露至垫资页);③ 普通运单与垫资运单在两类页面间的归属与展示不串数。
|
||
|
||
> ⚠️ 待确认:垫资-货主打款/垫资-财务打款两页是否也需要同口径增加"物流公司"筛选与展示列(需求 FR-09/FR-10 与 6.8/6.9 均未提及,当前按"不在改造范围"口径验证)。影响范围:若产品要求垫资页同口径改造,需补充对应筛选/展示用例并回归垫资链路(涉及资损面)。建议确认方向:产品明确垫资两页的改造范围,并将结论回写需求 FR-09/FR-10 与 6.8/6.9。
|
||
|
||
### TP-X-014: 两个「运费核算」菜单的定位与误伤防护
|
||
- 优先级: P1
|
||
- 类型: 回归测试
|
||
- 覆盖维度: 项目高风险场景
|
||
- 来源: [项目画像]
|
||
- 描述: 依据项目画像 §2.3,平台「运单认证核算」与「承运结算」菜单下各有一个「运费核算」菜单;需求 6.6 指明本次改造对象为 整车运输 → 承运结算 → 运费核算(修改核算弹窗新增"物流公司"与"客户收货地址"字段)。本测试点验证改造落点准确、同名菜单不被误伤。
|
||
- 关键验证点: ① 从 整车运输 → 承运结算 → 运费核算 进入:页面为运单列表、"修改核算"弹窗中"物流公司"与"客户收货地址"字段存在且可用(改造落点正确,与 TP-F-001/002 对应);② 「运单认证核算」下的同名「运费核算」入口及相关功能(运单证件异常/业务异常/时长异常/货物重量异常/运费金额异常/待处理异常运单/轨迹异常/风控异常运单)页面结构与行为保持原样,不出现新增字段、新增列或行为变化(防误伤);③ 两入口关系核验:若二者实际指向同一页面/同一数据源,验证任一路径下同一运单的核算结果一致、无二义(不产生双重写入或状态不一致);若为两个独立页面,确认本次改造仅落于"承运结算 → 运费核算"入口。
|
||
|
||
> ⚠️ 待确认:两个「运费核算」菜单(「运单认证核算」下 与 「承运结算」下)是同一页面同一数据,还是两个独立功能——需求文档与项目画像均未说明,不宜臆断为同一页面。影响范围:TP-X-014 第③点的一致性验证口径;若实为同一页面,按"两入口行为一致"验证即可;若为独立页面,需确认"运单认证核算 → 运费核算"页是否也被要求同口径展示。建议确认方向:开发核对路由与数据源后在评审中明确两者关系,并同步补充/回写需求表述。
|
||
|
||
---
|
||
|
||
> 追溯说明:本文件覆盖分析文件 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 处),评审确认后需按最终口径回归对应测试点。
|