dingdanquanliucheng/COMPREHENSIVE_TEST_PLAN.md
2026-06-19 23:03:14 +08:00

64 KiB
Raw Blame History

订单全流程管理系统 — 完整测试计划

日期: 2026-06-18 范围: 后端 API (FastAPI) + Web Admin (Vue 3) + Web Sales (Vue 3) + 微信小程序 目标: 覆盖系统全部功能模块,识别现有测试缺口,制定分优先级的测试执行计划


目录

  1. 测试目标与策略
  2. 测试环境要求
  3. 模块一:认证与授权
  4. 模块二:订单生命周期
  5. 模块三:订单取消流程
  6. 模块四:客户管理
  7. 模块五:产品与分类管理
  8. 模块六:供应商管理
  9. 模块七:定价引擎
  10. 模块八:物流与配送
  11. 模块九AI 图像识别
  12. 模块十:文件管理
  13. 模块十一:提醒中心
  14. 模块十二:报表与统计
  15. 模块十三:系统管理
  16. 模块十四:系统配置
  17. 模块十五:审计日志
  18. 模块十六WebSocket 实时推送
  19. 模块十七:微信小程序集成
  20. 模块十八Web Admin 前端
  21. 模块十九Web Sales 前端
  22. 模块二十:跨模块端到端流程
  23. 现有测试缺口汇总
  24. 测试执行优先级
  25. 验收标准

1. 测试目标与策略

1.1 测试目标

编号 目标 说明
T-1 数据闭环 从创建到完成,所有业务数据在各环节完整传递
T-2 状态机收敛 订单和物流任务的状态转换严格遵循定义的状态机
T-3 权限隔离 4 种角色 (admin/manager/salesman/driver) 的数据和操作权限严格隔离
T-4 配置驱动 定价规则、提醒规则等业务规则通过配置驱动,修改即时生效
T-5 外部集成 OCR、快递100、微信推送等外部服务的正确调用和异常处理
T-6 UI 回归 前端各页面的交互流程、数据展示、权限控制正确

1.2 测试层次

层次 占比 工具 说明
单元测试 40% pytest Service/Repository 层隔离测试
API 集成测试 35% pytest + TestClient 端点级别请求/响应验证
前端 E2E 测试 15% Playwright 浏览器级别的用户操作流程
手动测试 10% 人工 微信小程序、外部服务联调

1.3 角色定义

角色 代码 权限范围
超级管理员 admin 全部功能
经理 manager 审批、报表、主数据管理、物流任务管理
业务员 salesman 创建/编辑/提交订单、客户管理、个人统计
司机 driver 接单、提货、送达、运单管理

2. 测试环境要求

2.1 后端测试

  • Python 3.10+, pytest, httpx
  • 内存 SQLite (单元/API测试) 或 MySQL测试库 (集成测试)
  • Redis (WebSocket/Pub-Sub 测试)
  • Mock 外部服务: Aliyun OSS, OCR, 快递100, 微信API, LLM

2.2 前端测试

  • Node.js 18+, Playwright
  • web-admin (port 5173), web-sales (port 5174)
  • Chromium 浏览器

2.3 测试数据

  • conftest.py 中已有的 fixtures: make_customer, make_product, make_supplier, make_order, make_task
  • 7 个测试用户: admin01, sales01, sales02, manager01, driver01, driver02, secretary01

3. 模块一:认证与授权

3.1 登录功能

用例编号 测试项 输入 预期结果 优先级 现有测试
AUTH-001 管理员正常登录 admin01/正确密码, role_type=admin 返回 JWT token, 用户信息 P0 test_admin_login_success
AUTH-001b 业务员正常登录 sales01/正确密码, role_type=salesman 返回 JWT token, 用户信息 P0 test_salesman_login_success
AUTH-001c 经理正常登录 manager01/正确密码, role_type=manager 返回 JWT token, 用户信息 P0 test_manager_login_success
AUTH-001d 司机正常登录 driver01/正确密码, role_type=driver 返回 JWT token, 用户信息 P0 test_driver_login_success
AUTH-002 密码错误 admin01/错误密码 返回 401, 错误消息 P0 test_wrong_password
AUTH-003 角色不匹配 sales01/正确密码, role_type=admin 返回 401, 角色不匹配 P0 test_role_mismatch
AUTH-004 禁用用户登录 已禁用用户 返回 401, 用户已禁用 P0 test_disabled_user
AUTH-004b 不存在的用户 nonexistent_user 返回 401 P1 test_nonexistent_user
AUTH-004c 空用户名 username="" 返回 422 参数校验失败 P1 缺失
AUTH-004d 空密码 password="" 返回 422 参数校验失败 P1 缺失
AUTH-004e SQL注入尝试 username="' OR 1=1 --" 返回 401, 无注入 P1 缺失

3.2 Token 管理

用例编号 测试项 操作 预期结果 优先级 现有测试
AUTH-005 无 Token 访问受保护接口 不带 Authorization header 返回 401 P0 test_no_token_access
AUTH-006 无效 Token Authorization: Bearer invalid_token 返回 401 P0 test_invalid_token
AUTH-006b 过期 Token 使用已过期的 JWT 返回 401 P0 test_expired_token
AUTH-006c Token 自动续期 Token 剩余 <30 天时请求 响应头包含 X-New-Token P1 缺失
AUTH-006d 被注销的 Token logout 后使用旧 token 返回 401 P0 test_logout_token_invalidated
AUTH-006e 并发 Token 刷新 多个请求同时触发续期 所有请求成功token 一致 P2 缺失

3.3 用户信息

用例编号 测试项 操作 预期结果 优先级 现有测试
AUTH-010 /me 返回用户菜单 GET /api/auth/me 返回用户可见的菜单树 P0 test_me_returns_menus
AUTH-011 /me 返回权限列表 GET /api/auth/me 返回 permission_codes 列表 P0 test_me_returns_permissions
AUTH-011b /me 返回角色信息 GET /api/auth/me 包含 role_code 字段 P1 test_me_returns_user_info

3.4 微信登录

用例编号 测试项 输入 预期结果 优先级 现有测试
AUTH-012 微信手机号一键登录 有效 phone_code 返回 JWT + 用户信息 P0 缺失
AUTH-012b 微信登录 - 无效 code 无效 phone_code 返回 401 P1 缺失
AUTH-012c 绑定 OpenID POST /api/auth/bind-openid 成功绑定 P1 缺失
AUTH-012d 通过 wx.code 绑定 OpenID POST /api/auth/bind-openid-by-code 成功绑定 P1 缺失

3.5 权限边界

用例编号 测试项 操作 预期结果 优先级 现有测试
AUTH-007 业务员不能审批订单 salesman 调用 approve 返回 403 P0 test_salesman_cannot_approve
AUTH-007b 业务员不能管理系统 salesman 调用 /api/system/* 返回 403 P0 test_salesman_cannot_manage_system
AUTH-007c 司机不能审批订单 driver 调用 approve 返回 403 P0 test_driver_cannot_approve
AUTH-009 司机无财务权限 driver 查看订单财务字段 字段被隐藏/脱敏 P0 test_driver_no_financial_permissions
AUTH-009b 经理不能管理用户 manager 调用 /api/system/users 返回 403 P0 test_manager_cannot_manage_users
AUTH-009c 管理员全权限 admin 调用所有接口 全部返回 200 P0 test_admin_can_do_everything
AUTH-009d 业务员不能创建物流任务 salesman 调用 POST /api/logistics/tasks 返回 403 P0 缺失
AUTH-009e 司机不能查看报表 driver 调用 /api/reports/* 返回 403 P1 test_driver_cannot_view_report

4. 模块二:订单生命周期

4.1 创建订单

用例编号 测试项 输入 预期结果 优先级 现有测试
ORD-001 创建草稿订单 有效订单数据 + 行项 返回订单详情, status=draft P0 test_create_draft_order
ORD-002 新客户自动创建 订单中包含不存在的客户名+手机 自动创建客户记录 P0 test_new_customer_auto_created
ORD-003 利润自动计算 有成本价和售价的行项 profit = 售价总额 - 成本总额 P0 test_profit_calculation
ORD-004 固定佣金保存 commission_amount=500 记录佣金金额 P1 缺失
ORD-005 无行项订单拒绝 items=[] 返回 400 P0 test_create_order_no_items
ORD-006 数量为零拒绝 quantity=0 返回 400 P0 test_create_order_zero_quantity
ORD-006b 负数价格拒绝 unit_price=-10 返回 400 P1 缺失
ORD-006c 缺少必填字段 缺少 customer_name 返回 422 P1 缺失
ORD-006d 禁用产品不能下单 行项包含已禁用产品 返回 400 P0 test_disabled_product_cannot_order
ORD-006e 超长备注截断 remark 10000字 正常保存或截断 P2 缺失
ORD-021 管理员代业务员创建 admin 指定 salesman_id 订单归属指定业务员 P1 缺失 (admin create)

4.2 编辑订单

用例编号 测试项 操作 预期结果 优先级 现有测试
ORD-017 编辑草稿订单 修改行项和金额 更新成功,金额重算 P0 test_edit_draft_order
ORD-017b 编辑非草稿订单 编辑 pending_approve 订单 返回 400只能编辑草稿 P0 缺失
ORD-017c 他人订单不能编辑 sales01 编辑 sales02 的订单 返回 403 或 404 P0 缺失
ORD-017d 管理员可编辑任意订单 admin 编辑任意业务员订单 更新成功 P1 缺失

4.3 提交审批

用例编号 测试项 操作 预期结果 优先级 现有测试
ORD-007 提交草稿订单 POST /{id}/submit status → pending_approve P0 test_submit_order_success
ORD-008 重复提交拒绝 对 pending_approve 订单再次提交 返回 400 P0 test_double_submit
ORD-018 保存并提交 创建时直接提交 status → pending_approve P1 缺失

4.4 审批流程

用例编号 测试项 操作 预期结果 优先级 现有测试
ORD-009 审批通过 manager 审批 pending_approve 订单 status → approved, 写入审批日志 P0 test_approve_order_success
ORD-010 审批拒绝 manager 拒绝 pending_approve 订单 status → rejected, 写入拒绝原因 P0 test_reject_order_success
ORD-010b 审批非待审订单 审批 draft 订单 返回 400 P0 test_approve_non_pending_order
ORD-010c 业务员不能审批 salesman 调用审批接口 返回 403 P0 test_salesman_cannot_approve
ORD-019 审批详情显示利润 审批详情页 显示利润计算明细 P1 缺失
ORD-020 拒绝后通知业务员 拒绝订单 业务员收到提醒通知 P1 缺失

4.5 供应商文本

用例编号 测试项 操作 预期结果 优先级 现有测试
ORD-011 生成供应商文本 approved 订单生成文本 返回生成的文本内容 P0 test_generate_supplier_text
ORD-012 确认供应商文本 确认文本 status → pending_factory, 记录日志 P0 test_confirm_supplier_text
ORD-013 未审批订单不能确认文本 对非 approved 订单确认 返回 400 P0 test_confirm_text_not_approved

4.6 状态流转

用例编号 测试项 操作 预期结果 优先级 现有测试
ORD-022 完整状态流转 draft→pending→approved→pending_factory 每步状态正确 P0 test_full_status_flow
ORD-022b 手动变更状态 POST /{id}/status 管理员可手动推进状态 P1 缺失
ORD-022c 非法状态转换 pending_factory → draft 返回 400 P0 缺失

4.7 订单查询

用例编号 测试项 操作 预期结果 优先级 现有测试
ORD-014 订单列表查询 GET /api/orders 返回分页列表 P0 test_list_orders
ORD-014b 按状态筛选 ?status=draft 只返回 draft 订单 P1 缺失
ORD-014c 按客户名筛选 ?customer_name=张 匹配客户名 P1 缺失
ORD-014d 按日期范围筛选 ?start_date=&end_date= 匹配日期范围 P1 缺失
ORD-014e 分页参数 ?page=2&page_size=10 返回第2页10条 P1 缺失
ORD-015 业务员查看详情-无财务字段 salesman 查看详情 隐藏成本/利润字段 P0 test_salesman_order_detail_no_finance
ORD-016 经理查看详情-含财务字段 manager 查看详情 显示成本/利润字段 P0 test_manager_order_detail_with_finance

5. 模块三:订单取消流程

5.1 直接取消

用例编号 测试项 操作 预期结果 优先级 现有测试
CAN-001 取消草稿订单 取消 draft 订单 status → canceled P0 test_cancel_draft_order
CAN-002 取消待审批订单 取消 pending_approve 订单 status → canceled P0 test_cancel_pending_approve_order
CAN-007 重复取消拒绝 对已取消订单再次取消 返回 400 P0 test_already_canceled_order
CAN-008 取消必须填原因 不填 cancel_reason 返回 400 P0 test_cancel_reason_required

5.2 审批后取消 (取消审批流)

用例编号 测试项 操作 预期结果 优先级 现有测试
CAN-003 已审批订单申请取消 提交取消申请 status → cancel_pending P0 test_approved_order_cancel_request
CAN-005 管理员批准取消 manager 批准 status → canceled P0 test_cancel_approved_by_manager
CAN-006 管理员拒绝取消 manager 拒绝 status 恢复原状态 P0 test_cancel_rejected_by_manager

5.3 履行阶段取消

用例编号 测试项 操作 预期结果 优先级 现有测试
CAN-004 履行阶段申请取消 pending_factory 订单申请取消 status → cancel_pending P0 test_fulfillment_cancel_request
CAN-009 履行取消批准 批准履行阶段取消 status → canceled P0 test_fulfillment_cancel_approved
CAN-010 履行取消拒绝 拒绝履行阶段取消 status 恢复 P0 test_fulfillment_cancel_rejected
CAN-011 取消审计日志 取消操作 记录操作日志 P0 test_cancel_audit_log
CAN-011b 已完成订单不能取消 完成的订单申请取消 返回 400 P1 缺失

6. 模块四:客户管理

6.1 CRUD 操作

用例编号 测试项 操作 预期结果 优先级 现有测试
CUS-001 创建客户 有效数据 创建成功, 返回详情 P0 test_create_customer_success
CUS-002 重复客户检测 同名+同手机号 返回 400 或提示重复 P0 test_duplicate_customer_name_mobile
CUS-003 手机号必填 mobile 为空 返回 422 P0 test_customer_mobile_required
CUS-003b 无效手机号格式 mobile="abc" 返回 422 P1 缺失
CUS-004 列表筛选 ?name=张&phone=138 筛选正确 P1 test_filter_customers_by_name
CUS-004b 按结算方式筛选 ?settlement=月结 筛选正确 P1 缺失
CUS-004c 按客户类型筛选 ?type=企业 筛选正确 P1 缺失
CUS-005 客户详情 GET /{id} 返回完整客户信息 P1 test_customer_detail
CUS-005b 更新客户 PUT /{id} 更新成功 P1 缺失

6.2 权限与数据隔离

用例编号 测试项 操作 预期结果 优先级 现有测试
CUS-008 业务员只能看自己的客户 salesman 查询 只返回自己的客户 P0 test_salesman_only_see_own_customers
CUS-008b 管理员看全部客户 admin 查询 返回所有客户 P0 test_admin_see_all_customers
CUS-008c 经理看全部客户 manager 查询 返回所有客户 P1 缺失

6.3 批量导入

用例编号 测试项 操作 预期结果 优先级 现有测试
CUS-006 下载导入模板 GET /import-template 返回 Excel 文件 P1 缺失
CUS-006b 批量导入客户 POST /import 上传 Excel 成功导入, 返回统计 P1 缺失
CUS-006c 导入重复客户 Excel 中含已有客户 跳过或更新, 报告结果 P1 缺失
CUS-006d 导入格式错误 Excel 格式不正确 返回错误提示 P1 缺失

6.4 删除操作

用例编号 测试项 操作 预期结果 优先级 现有测试
CUS-007 软删除客户 DELETE /{id} deleted=1, 不再列表显示 P1 缺失
CUS-007b 硬删除客户 DELETE /{id}/permanent 物理删除 P1 缺失
CUS-007c 有活跃订单的客户不能硬删 硬删有订单的客户 返回 400 P0 缺失
CUS-007d 批量删除 POST /batch-delete 批量软/硬删除 P1 缺失

6.5 客户欠款

用例编号 测试项 操作 预期结果 优先级 现有测试
CUS-009 月结客户标记 查看月结客户详情 is_monthly=true P1 test_monthly_customer_flag
CUS-010 欠款信息展示 客户详情含欠款 显示欠款金额和到期日 P1 缺失

7. 模块五:产品与分类管理

7.1 分类管理

用例编号 测试项 操作 预期结果 优先级 现有测试
PROD-001 创建分类 有效数据 创建成功 P1 test_create_category_success
PROD-002 分类编码重复 重复 code 返回 400 P1 test_duplicate_category_code
PROD-003 禁用分类 禁用已有产品的分类 禁用成功 P1 test_disable_category
PROD-003b 硬删除有产品的分类 DELETE permanent 返回 400 P1 缺失
PROD-003c 批量删除分类 POST batch-delete 批量删除 P1 缺失

7.2 产品管理

用例编号 测试项 操作 预期结果 优先级 现有测试
PROD-004 创建产品 有效数据 + 规格 创建成功, 含规格列表 P1 test_create_product_success
PROD-005 产品列表筛选 多条件筛选 筛选正确 P1 test_product_list_filter
PROD-006 产品详情 GET /{id} 返回产品+规格列表 P1 test_product_detail
PROD-007 禁用产品标记 查看禁用产品 disabled=true P1 test_disabled_product_flag
PROD-007b 产品多规格 添加多个规格 规格列表正确 P1 缺失
PROD-007c 设置默认规格 PUT specifications/default 默认规格更新 P1 缺失
PROD-007d 硬删除有定价规则的产品 DELETE permanent 返回 400 P1 缺失

7.3 产品快照

用例编号 测试项 操作 预期结果 优先级 现有测试
PROD-008 历史订单快照不变 修改产品后查看历史订单 订单行项数据保持不变 P0 缺失

8. 模块六:供应商管理

8.1 CRUD 操作

用例编号 测试项 操作 预期结果 优先级 现有测试
FAC-001 创建供应商 有效数据 创建成功 P1 test_create_supplier_success
FAC-002 供应商列表筛选 多条件筛选 筛选正确 P1 test_supplier_list_filter
FAC-002b 供应商详情 GET /{id} 返回完整信息 P1 test_supplier_detail
FAC-002c 更新供应商 PUT /{id} 更新成功 P1 缺失
FAC-002d 软删除供应商 DELETE /{id} deleted=1 P1 缺失
FAC-002e 硬删除有订单的供应商 DELETE /{id}/permanent 返回 400 P1 缺失
FAC-002f 批量删除供应商 POST /batch-delete 批量删除 P1 缺失

9. 模块七:定价引擎

9.1 定价规则

用例编号 测试项 操作 预期结果 优先级 现有测试
PRICE-001 创建面积定价规则 pricing_type=area 规则创建成功 P0 缺失 (独立测试)
PRICE-002 创建重量定价规则 pricing_type=kg 规则创建成功 P0 缺失
PRICE-003 创建按件定价规则 pricing_type=unit 规则创建成功 P1 缺失
PRICE-004 创建按米定价规则 pricing_type=linear_m 规则创建成功 P1 缺失
PRICE-005 更新定价规则 PUT /{id} 更新成功 P1 缺失
PRICE-006 删除定价规则 DELETE /{id} 软删除成功 P1 缺失
PRICE-007 按产品查询定价规则 GET /{product_id} 返回该产品的规则 P1 缺失

9.2 报价计算

用例编号 测试项 输入 预期结果 优先级 现有测试
PRICE-010 面积报价计算 长=1m, 宽=2m, 单价=10 面积=2㎡, 总价=20 P0 缺失
PRICE-011 重量报价计算 重量=5kg, 单价=8 总价=40 P0 缺失
PRICE-012 附加费计算(按面积) surcharge_method=per_sqm 附加费 = 面积 × 单价 P0 缺失
PRICE-013 附加费计算(按件) surcharge_method=per_piece 附加费 = 数量 × 单价 P1 缺失
PRICE-014 附加费计算(按米) surcharge_method=per_linear_m 附加费 = 米数 × 单价 P1 缺失
PRICE-015 附加费计算(阈值) surcharge_method=per_sqm_threshold 超阈值部分计费 P1 缺失
PRICE-016 含税计算 tax_inclusive=true 价格已含税 P0 缺失
PRICE-017 不含税计算 tax_inclusive=false, tax_rate=0.13 价格 + 13% 税 P0 缺失
PRICE-018 客户等级定价 price_tier=tier1 使用 tier1 价格 P1 缺失
PRICE-019 条件公式计算 含 $input.xxx 的公式 公式正确求值 P0 缺失
PRICE-020 无定价规则的产品 无规则产品报价 返回错误或默认值 P1 缺失

9.3 供应商成本

用例编号 测试项 操作 预期结果 优先级 现有测试
PRICE-030 创建供应商成本 有效数据 创建成功 P1 缺失
PRICE-031 查询供应商成本 GET /supplier-costs?product_id= 返回成本列表 P1 缺失
PRICE-032 更新供应商成本 PUT /{id} 更新成功 P1 缺失
PRICE-033 删除供应商成本 DELETE /{id} 软删除成功 P1 缺失

9.4 价格等级

用例编号 测试项 操作 预期结果 优先级 现有测试
PRICE-040 创建价格等级 有效数据 创建成功 P1 缺失
PRICE-041 查询价格等级 GET /price-tiers?product_id= 返回等级列表 P1 缺失
PRICE-042 更新价格等级 PUT /{id} 更新成功 P1 缺失
PRICE-043 删除价格等级 DELETE /{id} 软删除成功 P1 缺失

10. 模块八:物流与配送

10.1 物流任务管理 (管理员/经理)

用例编号 测试项 操作 预期结果 优先级 现有测试
TASK-001 创建物流任务 有效数据 任务创建, status=pending P0 test_create_task_success
TASK-001b 无效订单创建任务 不存在的 order_id 返回 400 P0 test_create_task_invalid_order
TASK-001c 任务列表查询 GET /api/logistics/tasks 返回分页列表 P1 缺失
TASK-001d 任务详情 GET /api/logistics/tasks/{id} 返回任务详情 P1 缺失
TASK-001e 更新运单号 PUT /{id}/tracking tracking_number 更新 P1 缺失
TASK-001f 取消物流任务 POST /{id}/cancel status → canceled P1 缺失

10.2 司机任务操作

用例编号 测试项 操作 预期结果 优先级 现有测试
TASK-002 司机只能看自己的任务 driver 查询 只返回自己的任务 P0 test_driver_only_see_own_tasks
TASK-003 司机详情无财务字段 driver 查看详情 隐藏财务信息 P0 test_driver_task_detail_no_financial
TASK-004 接受任务 POST /accept status → accepted P0 test_accept_task_success
TASK-005 重复接单拒绝 对已接受任务再次 accept 返回 400 P0 test_double_accept
TASK-006 提货 POST /pickup status → picked_up P0 test_pickup_success
TASK-007 无照片提货 无 photo 返回 400 或允许 P1 test_pickup_without_photo
TASK-008 送达确认 POST /deliver status → delivered P0 test_deliver_success
TASK-009 非法状态操作 pending 状态直接 deliver 返回 400 P0 test_pickup_from_wrong_status / test_deliver_from_wrong_status
TASK-010 司机不能看他人任务 driver 查看其他司机任务 返回 403 或空 P0 test_driver_cannot_see_other_tasks
TASK-011 提货撤回 提货后撤回 status 回退 P2 缺失
TASK-012 完整任务流程 pending→accepted→picked_up→delivered 每步状态正确 P0 test_full_task_flow
TASK-012b 任务状态同步订单 任务完成后订单状态更新 订单状态同步 P0 test_task_creation_updates_order

10.3 运单管理

用例编号 测试项 操作 预期结果 优先级 现有测试
TASK-013 OCR 识别运单号 POST /recognize-waybill 返回识别的运单号 P1 缺失
TASK-013b 批量提交运单号 POST /{id}/waybills 批量创建运单记录 P1 缺失
TASK-013c 查询运单列表 GET /{id}/waybills 返回运单列表 P1 缺失
TASK-013d 删除运单 DELETE /{id}/waybills/{wid} 删除运单记录 P1 缺失

10.4 物流轨迹

用例编号 测试项 操作 预期结果 优先级 现有测试
LOG-001 手动添加物流轨迹 POST /{order_id}/trace 轨迹记录创建 P1 缺失
LOG-002 查询物流轨迹 GET /{order_id}/trace 返回轨迹列表 P1 缺失
LOG-003 物流超时提醒 超过配置天数 生成超时提醒 P1 缺失
LOG-004 不重复生成超时提醒 已有提醒的物流 不重复创建 P1 缺失
LOG-005 快递100集成查询 查询第三方物流 返回轨迹节点 P1 缺失

11. 模块九AI 图像识别

11.1 OCR 识别

用例编号 测试项 操作 预期结果 优先级 现有测试
AI-001 图片识别成功 POST /ai/recognize 返回识别结果 P1 ⚠️ 仅DB级别, 未调API
AI-002 识别失败处理 无效图片URL 返回错误提示 P1 缺失
AI-005 低置信度识别 识别结果 confidence < 0.6 标记为低置信度 P1 ⚠️ 仅DB级别

11.2 人工校正

用例编号 测试项 操作 预期结果 优先级 现有测试
AI-003 人工校正识别结果 POST /{log_id}/correct 更新识别结果 P1 ⚠️ 仅DB级别
AI-004 确认识别结果入库 确认后创建订单 订单创建成功 P1 缺失

11.3 文本解析

用例编号 测试项 操作 预期结果 优先级 现有测试
AI-006 文本解析订单 POST /ai/parse-order (text) 返回解析结果 P1 缺失
AI-006b 图片解析订单 POST /ai/parse-order (image) 返回解析结果 P1 缺失
AI-006c 空文本解析 text="" 返回错误 P1 缺失

11.4 权限

用例编号 测试项 操作 预期结果 优先级 现有测试
AI-007 秘书可访问 AI secretary 调用 返回 200 P1 test_secretary_can_access_ai
AI-007b 业务员不能访问 AI 识别 salesman 调用 /recognize 返回 403 P1 test_salesman_cannot_access_ai
AI-007c 业务员可调用文本解析 salesman 调用 /parse-order 返回 200 P1 缺失

12. 模块十:文件管理

12.1 文件上传

用例编号 测试项 操作 预期结果 优先级 现有测试
FILE-001 获取上传凭证 POST /upload-token 返回 OSS 上传凭证 P1 ⚠️ 接受200或404
FILE-002 上传图片 上传 jpg/png 上传成功 P1 ⚠️ 接受200或404
FILE-003 上传视频 上传 mp4 上传成功 P1 ⚠️ 接受200或404
FILE-004 文件过大拒绝 上传 >10MB 文件 返回 400 P1 缺失
FILE-005 OSS 服务异常 模拟 OSS 故障 返回 500 + 友好提示 P2 缺失

12.2 文件关联

用例编号 测试项 操作 预期结果 优先级 现有测试
FILE-006 保存附件关联 POST /attachments biz_type + biz_id 关联成功 P1 ⚠️ 弱断言
FILE-006b 查询关联附件 GET /attachments?biz_type=&biz_id= 返回附件列表 P1 缺失
FILE-006c 本地开发上传 POST /local-upload 文件保存到本地 P1 缺失

12.3 权限

用例编号 测试项 操作 预期结果 优先级 现有测试
FILE-007 未认证不能上传 不带 token 返回 401 P1 test_unauthenticated_upload

13. 模块十一:提醒中心

13.1 欠款提醒

用例编号 测试项 操作 预期结果 优先级 现有测试
ARR-001 发货模式生成欠款 arrears_generate_mode=shipped 发货后生成欠款记录 P0 ⚠️ 仅验证配置
ARR-002 送达模式生成欠款 arrears_generate_mode=delivered 送达后生成欠款记录 P0 ⚠️ 仅验证配置
ARR-003 未到节点不生成欠款 未发货/未送达 无欠款记录 P1 缺失
ARR-004 结算欠款 settle arrears 欠款状态更新 P1 test_settle_arrears
ARR-005 超期欠款提醒 欠款超过到期日 生成超期提醒 P0 缺失
ARR-009 欠款起算类型切换 切换 arrears_reminder_start_type 新类型生效 P1 缺失

13.2 沉默客户提醒

用例编号 测试项 操作 预期结果 优先级 现有测试
ARR-006 沉默客户检测 超过 inactive_customer_days 生成沉默客户提醒 P1 ⚠️ 仅配置检查
ARR-007 阈值配置 设置 inactive_order_amount_threshold 阈值生效 P1 test_inactive_customer_threshold
ARR-010 提醒指向业务员 检测到沉默客户 提醒发送给对应业务员 P1 缺失

13.3 物流超时提醒

用例编号 测试项 操作 预期结果 优先级 现有测试
LOG-003 物流超时检测 超过 logistics_timeout_days 生成超时提醒 P1 缺失

13.4 提醒管理

用例编号 测试项 操作 预期结果 优先级 现有测试
ARR-008 标记已读 POST /{id}/read is_read=true P1 test_mark_reminder_read
ARR-008b 提醒列表查询 GET /api/reminders 分页列表 P1 test_reminder_list
ARR-008c 提醒统计 GET /api/reminders/dashboard 返回统计摘要 P1 缺失
ARR-008d 按类型筛选 ?type=arrears 只返回欠款提醒 P1 缺失
ARR-008e 按状态筛选 ?status=unread 只返回未读提醒 P1 缺失

13.5 手动触发检测

用例编号 测试项 操作 预期结果 优先级 现有测试
ARR-011b 触发全部检测 POST /check-all 执行所有检测 P1 缺失
ARR-011c 触发欠款检测 POST /arrears/check 执行欠款检测 P1 缺失
ARR-011d 触发沉默客户检测 POST /inactive-customers/check 执行检测 P1 缺失
ARR-011e 触发物流超时检测 POST /logistics-timeout/check 执行检测 P1 缺失
ARR-011f 业务员不能触发检测 salesman 调用 check 返回 403 P1 缺失

13.6 微信推送

用例编号 测试项 操作 预期结果 优先级 现有测试
ARR-011 微信订阅消息推送 订单状态变更 发送微信模板消息 P2 缺失
ARR-011g 推送失败处理 微信API异常 记录错误, 不阻塞主流程 P2 缺失

14. 模块十二:报表与统计

14.1 绩效报表

用例编号 测试项 操作 预期结果 优先级 现有测试
REP-001 月度报表查询 stat_type=monthly 返回月度统计 P0 test_monthly_report
REP-002 季度报表查询 stat_type=quarterly 返回季度统计 P1 缺失
REP-003 年度报表查询 stat_type=yearly 返回年度统计 P1 缺失
REP-004 按品类统计 ?category_id= 返回品类统计 P1 test_category_report
REP-004b 按业务员筛选 ?salesman_id= 返回该业务员统计 P1 缺失
REP-004c 排除电商订单 ?exclude_ecommerce=true 不含电商订单 P1 缺失
REP-004d 默认统计类型 不传 stat_type 返回默认类型 P1 test_default_stat_type

14.2 报表导出

用例编号 测试项 操作 预期结果 优先级 现有测试
REP-007 导出 CSV GET /export?format=csv 返回 CSV 文件 P1 test_export_report
REP-007b 导出 XLSX GET /export?format=xlsx 返回 XLSX 文件 P1 缺失
REP-008 报表金额校验 对比报表和原始数据 金额一致 P1 缺失

14.3 报表审计

用例编号 测试项 操作 预期结果 优先级 现有测试
REP-009 报表审计查询 GET /reports/audit 返回审计数据 P1 缺失
REP-009b 异常佣金检测 佣金率 >15% 或 <1% 标记异常 P1 缺失

14.4 业务员统计

用例编号 测试项 操作 预期结果 优先级 现有测试
REP-010 业务员仪表盘 GET /salesman/dashboard 返回统计摘要 P1 缺失
REP-010b 日/周/月统计 ?period=day/week/month 返回对应周期统计 P1 缺失
REP-010c TOP 客户排名 查询 top_customers 返回排名列表 P1 缺失

14.5 权限

用例编号 测试项 操作 预期结果 优先级 现有测试
REP-005 业务员不能查看报表 salesman 调用 /reports/performance 返回 403 P0 test_salesman_cannot_view_report
REP-006 司机不能查看报表 driver 调用 返回 403 P1 test_driver_cannot_view_report
REP-006b 经理可查看报表 manager 调用 返回 200 P1 test_manager_can_view_report
REP-006c 管理员可查看报表 admin 调用 返回 200 P1 test_admin_can_view_report
REP-006d 业务员不能导出报表 salesman 调用 /export 返回 403 P1 test_salesman_cannot_export_report

15. 模块十三:系统管理

15.1 用户管理

用例编号 测试项 操作 预期结果 优先级 现有测试
SYS-001 创建用户 有效数据 创建成功 P0 test_create_user_success
SYS-002 用户名重复 重复 username 返回 400 P0 test_duplicate_username
SYS-003 无效角色ID role_id 不存在 返回 400 P1 缺失
SYS-004 禁用用户 POST /status enabled=false P0 test_disable_user
SYS-005 重置密码 POST /reset-password 密码重置成功 P0 test_reset_password
SYS-015 用户列表 GET /system/users 返回用户列表 P1 test_user_list
SYS-016 用户列表筛选 ?name=&role=&status= 筛选正确 P1 缺失
SYS-016b 删除用户 DELETE /{id} 物理删除 P1 缺失
SYS-016c 永久删除用户 DELETE /{id}/permanent 物理删除 P1 缺失
SYS-016d 批量删除用户 POST /batch-delete 批量删除 P1 缺失
SYS-016e 不能删除自己 admin 删除自己 返回 400 P1 缺失

15.2 角色管理

用例编号 测试项 操作 预期结果 优先级 现有测试
SYS-006 创建角色 有效数据 创建成功 P1 test_create_role_success
SYS-007 角色编码重复 重复 role_code 返回 400 P1 test_duplicate_role_code
SYS-008 禁用有用户的角色 禁用有用户的角色 返回 400 或警告 P1 缺失
SYS-008b 角色列表 GET /system/roles 返回角色列表 P1 test_role_list
SYS-008c 删除角色 DELETE /{id} 物理删除 P1 缺失
SYS-008d 永久删除角色 DELETE /{id}/permanent 物理删除 P1 缺失
SYS-008e 批量删除角色 POST /batch-delete 批量删除 P1 缺失

15.3 菜单管理

用例编号 测试项 操作 预期结果 优先级 现有测试
SYS-009 创建菜单 有效数据 创建成功 P1 test_create_menu_success
SYS-010 权限编码重复 重复 permission_code 返回 400 P1 test_duplicate_permission_code
SYS-011 菜单父级设为自身 parent_id = 自身 id 返回 400 P1 缺失
SYS-011b 菜单树查询 GET /system/menus 返回树形结构 P1 test_menu_tree
SYS-011c 更新菜单 PUT /{id} 更新成功 P1 缺失

15.4 角色-菜单授权

用例编号 测试项 操作 预期结果 优先级 现有测试
SYS-012 保存角色菜单 PUT /{role_id}/menus 关联成功 P0 test_save_role_menus
SYS-012b 查询角色菜单 GET /{role_id}/menus 返回菜单列表 P1 缺失
SYS-012c 角色菜单覆盖更新 重新分配菜单 旧关联删除, 新关联建立 P1 缺失

15.5 权限边界

用例编号 测试项 操作 预期结果 优先级 现有测试
SYS-013 业务员不能访问系统管理 salesman 调用 /api/system/* 返回 403 P0 test_salesman_cannot_access_system
SYS-013b 司机不能访问系统管理 driver 调用 /api/system/* 返回 403 P0 test_driver_cannot_access_system
SYS-013c 经理不能管理用户 manager 调用 /api/system/users 返回 403 P0 test_manager_cannot_manage_users
SYS-013d 管理员全权限 admin 调用所有接口 全部 200 P0 test_admin_full_access
SYS-014 权限变更审计 修改角色权限 记录审计日志 P1 缺失

16. 模块十四:系统配置

16.1 配置读写

用例编号 测试项 操作 预期结果 优先级 现有测试
CFG-001 查询配置项 GET /configs/{key} 返回配置值 P1 test_query_config
CFG-002 更新配置项 PUT /configs/{key} 更新成功 P1 test_update_config
CFG-003 查询不存在的配置 GET /不存在的key 返回默认值或 404 P1 test_query_nonexistent_config
CFG-004 更新物流超时天数 key=logistics_timeout_days 更新成功 P1 test_update_logistics_timeout
CFG-005 更新沉默客户天数 key=inactive_customer_days 更新成功 P1 test_update_inactive_customer_days
CFG-006 更新金额阈值 key=inactive_order_amount_threshold 更新成功 P1 test_update_amount_threshold
CFG-007 配置即时生效 更新配置后不重启 新配置立即生效 P1 缺失

16.2 安全问题

用例编号 测试项 操作 预期结果 优先级 现有测试
CFG-008 配置接口应有认证 不带 token 访问 应返回 401 (当前无认证) P0 ⚠️ 已跳过 - 安全缺口
CFG-009 业务员不能修改配置 salesman PUT 应返回 403 (当前无认证) P0 ⚠️ 已跳过 - 安全缺口

17. 模块十五:审计日志

17.1 审计记录

用例编号 测试项 操作 预期结果 优先级 现有测试
AUD-001 订单创建审计 创建订单 写入审计日志 P0 ⚠️ 断言被注释
AUD-002 审批操作审计 审批订单 写入审计日志 P0 ⚠️ 断言被注释
AUD-003 取消操作审计 取消订单 写入审计日志 P0 ⚠️ 断言被注释
AUD-004 司机操作审计 接单/提货/送达 写入审计日志 P1 缺失
AUD-005 OSS 上传审计 上传文件 写入审计日志 P2 缺失
AUD-006 配置变更审计 修改配置 写入审计日志 P1 缺失
AUD-007 审计日志前后值对比 查看审计详情 before/after JSON 正确 P1 缺失

17.2 审计查询

用例编号 测试项 操作 预期结果 优先级 现有测试
AUD-008 审计日志列表 GET /audit-logs 返回分页列表 P1 test_audit_log_list
AUD-008b 按操作类型筛选 ?action=order.create 筛选正确 P1 test_audit_log_filter
AUD-008c 按时间范围筛选 ?start_date=&end_date= 筛选正确 P1 缺失
AUD-008d 按操作人筛选 ?user_id= 筛选正确 P1 缺失

17.3 安全问题

用例编号 测试项 操作 预期结果 优先级 现有测试
AUD-009 审计日志接口应有认证 不带 token 访问 应返回 401 (当前无认证) P0 ⚠️ 已跳过 - 安全缺口
AUD-009b 业务员不能查看审计 salesman 调用 应返回 403 P1 ⚠️ 已跳过

18. 模块十六WebSocket 实时推送

18.1 连接管理

用例编号 测试项 操作 预期结果 优先级 现有测试
WS-001 建立 WebSocket 连接 带有效 token 连接成功 P1 缺失
WS-002 无效 token 连接 带无效 token 连接拒绝 P1 缺失
WS-003 连接状态查询 GET /ws/status 返回活跃连接列表 P2 缺失

18.2 消息推送

用例编号 测试项 操作 预期结果 优先级 现有测试
WS-004 新提醒推送 创建提醒 WebSocket 收到推送 P1 缺失
WS-005 订单状态变更推送 订单审批通过 相关用户收到推送 P1 缺失
WS-006 多客户端接收 同一用户多窗口 所有窗口收到推送 P2 缺失

19. 模块十七:微信小程序集成

19.1 登录

用例编号 测试项 操作 预期结果 优先级 现有测试
WX-001 微信授权登录 wx.login + 手机号 登录成功, 返回 token P0 需手动测试
WX-002 密码登录 用户名+密码 登录成功 P0 需手动测试
WX-003 登录态保持 重启小程序 自动登录 P1 需手动测试

19.2 经理端

用例编号 测试项 操作 预期结果 优先级 现有测试
WX-010 经理仪表盘 打开 dashboard 显示统计数据 P1 需手动测试
WX-011 审批列表 打开 approve-list 显示待审批列表 P0 需手动测试
WX-012 审批详情 打开 approve-detail 显示订单详情+审批按钮 P0 需手动测试
WX-013 审批操作 点击通过/拒绝 操作成功 P0 需手动测试
WX-014 订单列表 打开 order-list 显示订单列表 P1 需手动测试
WX-015 创建物流任务 打开 task-create 创建任务成功 P1 需手动测试
WX-016 供应商文本 打开 supplier-text 显示/生成文本 P1 需手动测试

19.3 司机端

用例编号 测试项 操作 预期结果 优先级 现有测试
WX-020 任务列表 打开 task-list 显示我的任务 P0 需手动测试
WX-021 任务详情 打开 task-detail 显示任务信息 P0 需手动测试
WX-022 接受任务 点击接单 status → accepted P0 需手动测试
WX-023 提货 点击提货+拍照 status → picked_up P0 需手动测试
WX-024 送达 点击送达 status → delivered P0 需手动测试
WX-025 物流轨迹 查看 order-tracking 显示轨迹信息 P1 需手动测试
WX-026 运单识别 拍照识别运单号 OCR 返回运单号 P1 需手动测试

19.4 通用

用例编号 测试项 操作 预期结果 优先级 现有测试
WX-030 个人中心 打开 my 显示用户信息 P1 需手动测试
WX-031 退出登录 点击退出 清除 token, 返回登录 P1 需手动测试
WX-032 订阅消息授权 首次操作时 弹出授权弹窗 P1 需手动测试
WX-033 角色 Tab 切换 经理/司机切换 Tab 栏正确变化 P1 需手动测试

20. 模块十八Web Admin 前端

20.1 登录与导航

用例编号 测试项 操作 预期结果 优先级 现有测试
WEB-A-001 管理员登录 输入用户名密码 登录成功, 跳转 dashboard P0 admin-login.spec.js
WEB-A-002 密码错误 输入错误密码 显示错误提示 P0 admin-login.spec.js
WEB-A-003 退出登录 点击退出 清除 token, 跳转登录 P0 admin-login.spec.js
WEB-A-004 侧边栏导航 点击各菜单 正确跳转 P1 缺失
WEB-A-005 响应式侧边栏 窗口 <1200px 侧边栏自动折叠 P2 缺失
WEB-A-006 通知铃铛 有新提醒 铃铛显示未读数 P2 缺失

20.2 工作台

用例编号 测试项 操作 预期结果 优先级 现有测试
WEB-A-010 仪表盘数据加载 打开 dashboard 显示统计卡片 P1 缺失
WEB-A-011 待审批数量 查看 dashboard 数量正确 P1 缺失
WEB-A-012 最近审批列表 查看 dashboard 列表正确 P1 缺失

20.3 审批中心

用例编号 测试项 操作 预期结果 优先级 现有测试
WEB-A-020 审批列表加载 打开 approvals 显示待审批列表 P0 缺失
WEB-A-021 审批筛选 按类型/订单号筛选 筛选正确 P1 缺失
WEB-A-022 审批详情 点击审批项 显示完整订单信息 P0 缺失
WEB-A-023 审批通过 点击通过 操作成功, 刷新列表 P0 缺失 (Playwright)
WEB-A-024 审批拒绝 点击拒绝+填原因 操作成功 P0 缺失 (Playwright)
WEB-A-025 利润明细展示 查看审批详情 显示利润计算 P1 缺失

20.4 订单管理

用例编号 测试项 操作 预期结果 优先级 现有测试
WEB-A-030 订单列表 打开 orders 显示订单列表 P0 admin-orders.spec.js
WEB-A-031 订单状态筛选 按状态筛选 筛选正确 P1 admin-orders.spec.js
WEB-A-032 订单详情 点击订单 显示详情弹窗 P0 admin-orders.spec.js
WEB-A-033 管理员创建订单 打开 order-create 表单加载正常 P1 缺失
WEB-A-034 管理员代创建订单 选择业务员+填写表单 创建成功 P1 缺失
WEB-A-035 AI 智能填充 粘贴订单文本 自动填充表单 P2 缺失
WEB-A-036 订单状态推进 推进到下一状态 状态更新成功 P1 缺失

20.5 主数据管理

用例编号 测试项 操作 预期结果 优先级 现有测试
WEB-A-040 客户管理 Tab 切换到客户 显示客户列表 P1 缺失
WEB-A-041 产品分类管理 切换到分类 显示分类列表 P1 缺失
WEB-A-042 产品管理 切换到产品 显示产品+规格 P1 缺失
WEB-A-043 供应商管理 切换到供应商 显示供应商列表 P1 缺失
WEB-A-044 批量导入客户 上传 Excel 导入成功 P1 缺失

20.6 定价规则

用例编号 测试项 操作 预期结果 优先级 现有测试
WEB-A-050 定价规则列表 打开 pricing-rules 显示规则列表 P1 缺失
WEB-A-051 创建定价规则 填写表单 创建成功 P1 缺失
WEB-A-052 帮助文档 点击帮助按钮 显示字段说明 P2 缺失

20.7 系统管理

用例编号 测试项 操作 预期结果 优先级 现有测试
WEB-A-060 用户管理 Tab 切换到用户 显示用户列表 P1 缺失
WEB-A-061 角色管理 Tab 切换到角色 显示角色列表 P1 缺失
WEB-A-062 菜单管理 Tab 切换到菜单 显示菜单树 P1 缺失
WEB-A-063 角色菜单授权 选择角色+勾选菜单 保存成功 P1 缺失

20.8 其他页面

用例编号 测试项 操作 预期结果 优先级 现有测试
WEB-A-070 配置管理页面 打开 config 显示配置项 P1 缺失
WEB-A-071 审计日志页面 打开 audit 显示日志列表 P1 缺失
WEB-A-072 提醒中心页面 打开 reminders 显示提醒列表 P1 缺失
WEB-A-073 报表页面 打开 reports/performance 显示报表 P1 缺失
WEB-A-074 报表导出 点击导出 下载文件 P1 缺失
WEB-A-075 AI 识别页面 打开 ai-recognition 页面加载正常 P2 缺失
WEB-A-076 司机任务页面 打开 driver/tasks 显示任务列表 P1 缺失

21. 模块十九Web Sales 前端

21.1 登录与导航

用例编号 测试项 操作 预期结果 优先级 现有测试
WEB-S-001 业务员登录 输入用户名密码 登录成功, 跳转 dashboard P0 缺失 (Playwright)
WEB-S-002 Token 验证 无效 token 跳转登录 P0 缺失
WEB-S-003 角色守卫 非 salesman 访问 跳转登录或 403 P1 缺失
WEB-S-004 移动端 Tab 栏 窗口 <768px 显示底部 Tab 栏 P2 缺失

21.2 工作台

用例编号 测试项 操作 预期结果 优先级 现有测试
WEB-S-010 仪表盘数据 打开 dashboard 显示 6 个统计卡片 P1 缺失
WEB-S-011 最近订单列表 查看 dashboard 显示最近 8 条订单 P1 缺失
WEB-S-012 待处理提醒 查看 dashboard 显示待处理提醒 P1 缺失

21.3 订单管理

用例编号 测试项 操作 预期结果 优先级 现有测试
WEB-S-020 创建订单页面 打开 orders/create 表单加载正常 P0 sales-order-create.spec.js
WEB-S-021 填写订单信息 输入客户+产品 数据正确 P0 sales-order-create.spec.js
WEB-S-022 添加行项 添加产品行 行项正确 P0 sales-order-create.spec.js
WEB-S-023 提交订单 点击提交 提交成功 P0 sales-order-create.spec.js
WEB-S-024 利润计算 填写数据 利润自动计算 P0 sales-order-create.spec.js
WEB-S-025 AI 文本解析 粘贴文本 自动填充 P1 缺失
WEB-S-026 订单列表 打开 orders 显示订单列表 P0 缺失
WEB-S-027 订单筛选 按状态/客户筛选 筛选正确 P1 缺失
WEB-S-028 订单详情 点击订单 显示详情 P0 缺失
WEB-S-029 编辑订单 编辑草稿订单 编辑成功 P1 缺失
WEB-S-030 取消订单 取消+填原因 取消成功 P1 缺失
WEB-S-031 提交审批 提交草稿订单 提交成功 P1 缺失

21.4 客户管理

用例编号 测试项 操作 预期结果 优先级 现有测试
WEB-S-040 客户列表 打开 customers 显示客户列表 P1 缺失
WEB-S-041 创建客户 填写表单 创建成功 P1 缺失
WEB-S-042 客户搜索 输入姓名/手机 搜索正确 P1 缺失

21.5 提醒与统计

用例编号 测试项 操作 预期结果 优先级 现有测试
WEB-S-050 提醒中心 打开 reminders 显示提醒列表 P1 缺失
WEB-S-051 标记已读 点击标记 已读状态更新 P1 缺失
WEB-S-052 销售统计 打开 statistics 显示统计图表 P1 缺失
WEB-S-053 周期切换 日/周/月切换 数据更新 P1 缺失
WEB-S-054 TOP 客户排名 查看统计 显示排名表 P2 缺失

22. 模块二十:跨模块端到端流程

22.1 完整订单生命周期

用例编号 测试项 流程 预期结果 优先级 现有测试
E2E-001 创建订单 salesman 创建 status=draft P0 test_full_order_lifecycle
E2E-002 提交审批 salesman 提交 status=pending_approve P0
E2E-003 经理审批 manager 通过 status=approved P0
E2E-004 生成供应商文本 manager 生成+确认 status=pending_factory P0
E2E-005 创建物流任务 manager 创建 任务 status=pending P0
E2E-005b 司机接单 driver accept 任务 status=accepted P0
E2E-005c 司机提货 driver pickup 任务 status=picked_up P0
E2E-005d 司机送达 driver deliver 任务 status=delivered P0

22.2 取消流程

用例编号 测试项 流程 预期结果 优先级 现有测试
E2E-008 草稿直接取消 创建→取消 status=canceled P0 test_cancel_draft_e2e
E2E-009 审批后取消 创建→提交→审批→申请取消→批准 status=canceled P0 test_cancel_approved_e2e
E2E-010 履行阶段取消 完整流程到 pending_factory→申请取消→批准 status=canceled P1 缺失

22.3 审批拒绝重提

用例编号 测试项 流程 预期结果 优先级 现有测试
E2E-011 拒绝后重新提交 创建→提交→拒绝→编辑→重新提交→审批通过 最终 approved P0 test_reject_and_resubmit

22.4 欠款生成

用例编号 测试项 流程 预期结果 优先级 现有测试
E2E-006 送达后生成欠款 完整流程→送达→检查欠款 欠款记录生成 P0 缺失

22.5 报表生成

用例编号 测试项 流程 预期结果 优先级 现有测试
E2E-007 报表查看和导出 完成订单→查看报表→导出 数据一致 P1 缺失

22.6 提醒流程

用例编号 测试项 流程 预期结果 优先级 现有测试
E2E-012 提醒生命周期 生成→查看→标记已读 流程完整 P1 test_reminder_lifecycle

22.7 跨角色数据隔离

用例编号 测试项 流程 预期结果 优先级 现有测试
ISO-001 业务员订单隔离 sales01 和 sales02 各创建订单 各自只能看自己的 P0 缺失 (独立)
ISO-002 司机任务隔离 driver01 和 driver02 各有任务 各自只能看自己的 P0 缺失 (独立)
ISO-003 客户数据隔离 业务员创建客户 只有自己的可见 P0 ⚠️ 部分覆盖
ISO-004 管理员看全部 admin 查询各模块 可见所有数据 P0 ⚠️ 部分覆盖
ISO-005 经理看全部 manager 查询各模块 可见所有数据 P1 缺失 (独立)

23. 现有测试缺口汇总

23.1 关键缺口 (P0 级)

缺口 影响 建议
定价引擎无独立测试 核心业务逻辑未验证 新建 test_pricing.py, 覆盖所有定价计算场景
配置/审计接口无认证 安全漏洞 在 API 层添加认证中间件
审计日志断言被注释 无法验证审计功能 恢复断言, 确保审计日志写入
产品快照测试缺失 历史数据可能被篡改 新建快照不变性测试
E2E-006 欠款生成 核心财务流程未覆盖 新建端到端欠款测试
弱断言测试 (~8个) 测试形同虚设 修复所有 in (200, 404) 和注释断言

23.2 重要缺口 (P1 级)

缺口 影响 建议
客户批量导入 批量操作未测试 新建导入测试
物流轨迹全模块 5个用例完全缺失 新建 test_logistics_trace.py
微信登录 小程序入口未测试 新建微信登录测试 (mock)
WebSocket 推送 实时功能未测试 新建 WebSocket 测试
报表季度/年度 统计维度不完整 扩展报表测试
前端 Playwright 仅覆盖 12/37 页面 逐步补充前端 E2E

23.3 一般缺口 (P2 级)

缺口 影响 建议
单元测试 测试金字塔倒置 补充 Service 层单元测试
并发测试 竞态条件风险 补充并发场景测试
性能测试 大数据量未验证 后续阶段补充
微信小程序端 无自动化测试 手动测试或小程序自动化框架

24. 测试执行优先级

第一阶段:修复现有测试 (1-2天)

  1. 恢复 test_audit.py 中被注释的断言
  2. 修复 in (200, 404)in (200, 500) 弱断言
  3. 确保所有现有测试通过

第二阶段:补充 P0 缺口 (3-5天)

  1. 🔧 新建 test_pricing.py — 定价引擎完整测试
  2. 🔧 修复配置/审计接口认证
  3. 🔧 新建产品快照不变性测试
  4. 🔧 新建欠款生成端到端测试
  5. 🔧 新建数据隔离专项测试

第三阶段:补充 P1 缺口 (5-7天)

  1. 🔧 新建客户批量导入测试
  2. 🔧 新建物流轨迹测试
  3. 🔧 新建微信登录测试 (mock)
  4. 🔧 新建 WebSocket 推送测试
  5. 🔧 补充报表季度/年度测试
  6. 🔧 补充触发检测接口测试
  7. 🔧 补充订单筛选/分页测试

第四阶段:前端 E2E 补充 (5-7天)

  1. 🔧 补充 Web Admin 核心页面 Playwright 测试
  2. 🔧 补充 Web Sales 核心页面 Playwright 测试
  3. 🔧 跨角色 E2E 流程测试

第五阶段:完善测试 (持续)

  1. 🔧 补充 Service 层单元测试
  2. 🔧 补充并发/边界场景
  3. 🔧 微信小程序手动测试清单
  4. 🔧 性能基准测试 (可选)

25. 验收标准

级别 标准
P0 测试 100% 通过率, 0 个跳过
P1 测试 ≥95% 通过率
P2 测试 ≥80% 通过率
缺陷 0 个阻塞/严重缺陷, 重要缺陷 ≤3 个
覆盖率 后端 API 覆盖率 ≥85%, 核心模块 ≥95%
弱断言 0 个 in (200, 404) 模式, 0 个注释断言

附录:测试用例统计

模块 现有测试 缺失测试 总计
认证与授权 18 12 30
订单生命周期 22 14 36
订单取消 12 1 13
客户管理 10 12 22
产品管理 10 6 16
供应商管理 7 5 12
定价引擎 0 24 24
物流配送 16 14 30
AI 识别 6 7 13
文件管理 6 5 11
提醒中心 10 16 26
报表统计 8 12 20
系统管理 18 14 32
系统配置 10 2 12
审计日志 10 8 18
WebSocket 0 6 6
微信小程序 0 20 20
Web Admin 前端 7 30 37
Web Sales 前端 5 20 25
端到端流程 12 8 20
合计 ~175 ~236 ~411