2026-08-02 23:26:28 +08:00
|
|
|
|
# apps、frontend、backend 总体测试计划
|
|
|
|
|
|
|
|
|
|
|
|
## 1. 目标
|
|
|
|
|
|
|
|
|
|
|
|
本计划用于验证当前已实现的两类 App、三个业务管理端、官网以及 API/Worker/IoT 三个后端进程,确保:
|
|
|
|
|
|
|
|
|
|
|
|
- 业务主责与数据边界正确,没有通过其他终端越权改写事实。
|
|
|
|
|
|
- 设备控制、安全事件、订单履约、资金和审计形成可追踪闭环。
|
|
|
|
|
|
- 身份、角色、菜单能力、组织、区域和对象归属在服务端真实生效。
|
|
|
|
|
|
- 写操作可幂等重试,异步结果不被误报为同步成功。
|
|
|
|
|
|
- 弱网、离线、超时、重复回调、进程重启和依赖故障时数据仍一致。
|
|
|
|
|
|
- Web/App 的构建、兼容性、可用性、隐私和发布配置符合上线要求。
|
|
|
|
|
|
|
|
|
|
|
|
## 2. 被测范围
|
|
|
|
|
|
|
|
|
|
|
|
| 层级 | 模块 | 重点 |
|
|
|
|
|
|
| --- | --- | --- |
|
|
|
|
|
|
| App | `apps/user_app` | 注册登录、资料、地址、服务关系、内容、商城、订单、合同、工单、钱包;Release 不暴露 Mock/未上线能力 |
|
|
|
|
|
|
| App | `apps/service_app` | 登录、准入、考勤、任务、配送轨迹、到达/异常/恢复/签收、取证、定位、加密暂存和离线补传 |
|
|
|
|
|
|
| Web | `frontend/platform_admin` | 平台治理、机构、账户/RBAC、产品、订单、钱包、财务、审计与资源契约 |
|
|
|
|
|
|
| Web | `frontend/gas_admin` | 气站人员、配送点、用户、合同、订单、钱包、结算、工单和数据范围 |
|
|
|
|
|
|
| Web | `frontend/delivery_admin` | 配送点人员、用户、地址、订单、资金、报表和组织隔离 |
|
|
|
|
|
|
| Web | `frontend/site` | 官网内容、导航、响应式、静态资源、可访问性、SEO 基础、构建与托管 Worker |
|
|
|
|
|
|
| 后端 | `backend/api` | Gin API/BFF、JWT、权限、同步事务、状态动作、金额、幂等、审计、上传和数据库事实 |
|
|
|
|
|
|
| 后端 | `backend/worker` | 配置、启动、Mock 循环、优雅退出;未来 Outbox/Streams 的投递、重试、死信和积压 |
|
2026-08-03 13:18:11 +08:00
|
|
|
|
| 后端 | `backend/iot-client`、`backend/iot-server` | 配置、启动、幂等命令、协议编解码、MQTT TLS、身份、遥测、回执和断线重连 |
|
2026-08-02 23:26:28 +08:00
|
|
|
|
|
|
|
|
|
|
不修改 `sample/`。真实支付、短信、地图、对象存储、电子合同、MQTT 厂商接入等,以受控沙箱或 Mock 验证;生产联调另设上线前检查点。
|
|
|
|
|
|
|
|
|
|
|
|
## 3. 测试分层
|
|
|
|
|
|
|
|
|
|
|
|
| 层级 | 主要内容 | 自动化目标 | 失败定位 |
|
|
|
|
|
|
| --- | --- | --- | --- |
|
|
|
|
|
|
| L0 静态与供应链 | format/lint/analyze/type check、依赖漏洞、密钥扫描、许可证 | 每次提交 | 文件/依赖 |
|
|
|
|
|
|
| L1 单元测试 | 状态机、金额、权限、幂等、序列化、ViewModel、领域规则 | 每次提交;关键规则 100% 分支覆盖 | 函数/规则 |
|
|
|
|
|
|
| L2 组件/接口测试 | Router+Logic+DB、Vue/Flutter 组件、上传边界、错误码 | 每次合并请求 | 组件/API |
|
|
|
|
|
|
| L3 契约测试 | 后端路由、资源契约、请求响应 Schema、客户端 claim | 每次接口变更 | 契约消费者/提供者 |
|
|
|
|
|
|
| L4 集成测试 | API+PostgreSQL+Redis/Mock、Worker、IoT、对象存储替身 | 每日或候选版 | 服务/依赖 |
|
|
|
|
|
|
| L5 跨端 E2E | App/Web 经真实 API 完成跨角色流程 | 每日冒烟、候选版全回归 | 业务链路 |
|
|
|
|
|
|
| L6 专项测试 | 安全、性能、稳定性、弱网、兼容性、可访问性、灾备 | 候选版 | 系统能力 |
|
|
|
|
|
|
| L7 UAT/发布验证 | AC-01~AC-24、运营/财务/安全签字、生产冒烟 | 发布前后 | 验收口径 |
|
|
|
|
|
|
|
|
|
|
|
|
## 4. 核心测试设计原则
|
|
|
|
|
|
|
|
|
|
|
|
每个关键写操作至少设计以下六类用例:
|
|
|
|
|
|
|
|
|
|
|
|
1. 合法首次请求成功,数据库事实、审计和返回值一致。
|
|
|
|
|
|
2. 相同幂等键重复请求不重复建单、扣款、入账、派单或下发命令。
|
|
|
|
|
|
3. 无令牌、错误 client claim、禁用账号、错误角色、跨组织和跨对象访问被服务端拒绝。
|
|
|
|
|
|
4. 非法状态跳转被稳定错误码拒绝,不能用通用 CRUD 直接写 `status`。
|
|
|
|
|
|
5. 依赖超时、回执丢失或进程重启后进入明确的待确认/可重试状态,不误报成功。
|
|
|
|
|
|
6. 失败后可查询、可补偿、可审计;日志不泄露令牌、密码、完整手机号、证件、银行卡或精确轨迹。
|
|
|
|
|
|
|
|
|
|
|
|
## 5. 功能测试主题
|
|
|
|
|
|
|
|
|
|
|
|
### 5.1 身份与权限
|
|
|
|
|
|
|
|
|
|
|
|
- 平台、气站、配送点、用户 App、服务 App 的令牌不得跨 client 使用。
|
|
|
|
|
|
- 验证登录、验证码时效与单次消费、密码修改/重置、账号禁用、会话撤销。
|
|
|
|
|
|
- 验证角色菜单、按钮能力、直接调用 API、猜测 `identity`、分页/搜索/导出均不能越权。
|
|
|
|
|
|
- 验证平台全局、气站、配送点、服务人员、用户本人之间的数据范围。
|
|
|
|
|
|
|
|
|
|
|
|
### 5.2 设备与安全
|
|
|
|
|
|
|
|
|
|
|
|
- 设备绑定、占用冲突、远程开关、命令幂等、回执、超时待确认、审计串联。
|
|
|
|
|
|
- 高风险事件自动关阀、通知、SLA、整改、复检和未整改开阀拦截。
|
|
|
|
|
|
- 遥测乱序、重复、未来时间、非法单位、设备伪造、离线/重连与批量峰值。
|
|
|
|
|
|
|
|
|
|
|
|
### 5.3 订单、履约与现场作业
|
|
|
|
|
|
|
|
|
|
|
|
- 商品/合同/订单/任务的创建、分派、履约、异常、恢复、取消、完成状态机。
|
|
|
|
|
|
- 服务人员资质、培训、上班、区域、任务归属等前置条件由服务端校验。
|
|
|
|
|
|
- 照片、视频、签名、定位、扫码、材料与收款等强制证据不可绕过。
|
|
|
|
|
|
- 弱网补传保留采集时间、接收时间、操作者、任务、来源、完整性、哈希和幂等键。
|
|
|
|
|
|
|
|
|
|
|
|
### 5.4 钱包与财务
|
|
|
|
|
|
|
|
|
|
|
|
- 金额均为最小货币单位整数,覆盖 0、边界值、超额、并发与溢出。
|
|
|
|
|
|
- 充值、支付、退款、提现预扣/驳回/打款、结算、对账的事务一致性和不可变流水。
|
|
|
|
|
|
- 回调签名、金额、订单、商户身份、重复/乱序回调和伪造回调。
|
|
|
|
|
|
- 始终满足 `0 <= 可提现余额 <= 总余额`,申请人不能篡改审核和打款状态。
|
|
|
|
|
|
|
|
|
|
|
|
### 5.5 内容、上传与隐私
|
|
|
|
|
|
|
|
|
|
|
|
- 文件类型、真实 MIME、大小、恶意文件、授权、对象关联、短期访问和审计。
|
|
|
|
|
|
- 手机号、地址、证件、银行卡、定位、照片/视频按角色脱敏和最小化展示。
|
|
|
|
|
|
- 注销前置条件、去标识化、留存与不可删除审计事实。
|
|
|
|
|
|
|
|
|
|
|
|
## 6. 非功能测试
|
|
|
|
|
|
|
|
|
|
|
|
### 性能与容量
|
|
|
|
|
|
|
|
|
|
|
|
- API:登录、列表、下单、支付回调、轨迹上报、设备命令分别建立基线;报告 P50/P95/P99、吞吐、错误率和资源使用。
|
|
|
|
|
|
- 数据库:关注锁等待、慢 SQL、分页深度、索引命中、并发扣款和唯一约束冲突。
|
|
|
|
|
|
- IoT:按目标设备数×上报频率模拟稳定流量和突发告警;在业务方给出容量目标前只产出基线,不擅自设定上线阈值。
|
|
|
|
|
|
- Web/App:首屏、路由切换、大列表、弱网启动、包体积与内存;阈值由候选版基线和产品 SLO 冻结。
|
|
|
|
|
|
|
|
|
|
|
|
### 安全
|
|
|
|
|
|
|
|
|
|
|
|
- OWASP Web/API/Mobile 常见风险、水平/垂直越权、注入、SSRF、XSS、CSRF 适用性、CORS、路径穿越、上传绕过。
|
|
|
|
|
|
- JWT 伪造/过期/重放/client 混用,验证码和支付密码暴力破解与限流。
|
|
|
|
|
|
- 敏感字段加密、日志/崩溃报告/缓存/剪贴板/截图风险,Release 包配置和调试入口。
|
|
|
|
|
|
- MQTT 设备身份、TLS、主题 ACL、伪造遥测和命令回执在真实接入后专项验证。
|
|
|
|
|
|
|
|
|
|
|
|
### 可靠性与恢复
|
|
|
|
|
|
|
|
|
|
|
|
- API、Worker、IoT 重启;数据库/Redis/对象存储/MQTT 短时不可用;网络分区与时钟偏移。
|
|
|
|
|
|
- Outbox、消费幂等、重试、死信和积压只在持久化消息契约落地后作为上线硬门禁。
|
|
|
|
|
|
- 备份恢复演练验证核心数据完整性,并记录实测 RPO/RTO;目标值需业务确认。
|
|
|
|
|
|
|
|
|
|
|
|
### 兼容性与可访问性
|
|
|
|
|
|
|
|
|
|
|
|
- App:至少覆盖当前支持的 Android/iOS 最低版、主流版和一档旧设备;相机、定位、权限拒绝/撤销、后台限制、深浅色和字体缩放。
|
|
|
|
|
|
- Web:Chrome/Edge 当前与前一主版本,至少补一轮 Safari;1366×768、1920×1080 和常见平板宽度。
|
|
|
|
|
|
- 关键表单、弹窗、错误提示和风险状态支持键盘、焦点可见、语义标签、文本说明和颜色对比。
|
|
|
|
|
|
|
|
|
|
|
|
## 7. 缺陷分级
|
|
|
|
|
|
|
|
|
|
|
|
| 等级 | 定义 | 发布要求 |
|
|
|
|
|
|
| --- | --- | --- |
|
|
|
|
|
|
| P0 | 安全/资金事实错误、远程控制失控、数据不可恢复、全站不可用 | 立即停止测试与发布 |
|
|
|
|
|
|
| P1 | 核心流程阻断、越权、重复扣款/建单、审计缺失、严重隐私泄露 | 必须修复并全链路回归 |
|
|
|
|
|
|
| P2 | 重要功能错误且有绕行方案、兼容性或性能明显退化 | 原则上修复;延期需书面风险接受 |
|
|
|
|
|
|
| P3 | 轻微交互、文案、样式或低频边界问题 | 可带已知问题发布 |
|
|
|
|
|
|
|
|
|
|
|
|
## 8. 角色与产物
|
|
|
|
|
|
|
|
|
|
|
|
- 测试负责人:版本范围、计划、排期、风险、日报和发布建议。
|
|
|
|
|
|
- 开发负责人:单元/接口测试、可测试性、数据脚本、日志和缺陷修复。
|
|
|
|
|
|
- 产品/业务:确认正常与异常口径,签署 AC-01~AC-24。
|
|
|
|
|
|
- 安全/财务/运维:分别签署高风险设备与隐私、资金、性能/备份/灾备结果。
|
|
|
|
|
|
- 每轮必备产物:版本清单、环境清单、用例集、自动化报告、专项报告、缺陷清单、复测证据、残余风险和签字记录。
|
|
|
|
|
|
|
|
|
|
|
|
## 9. 完成标准
|
|
|
|
|
|
|
|
|
|
|
|
- AC-01~AC-24 均有用例、执行结果和证据,没有“未覆盖但默认通过”。
|
|
|
|
|
|
- P0/P1 为 0;P2 延期均有责任人、截止时间、影响和风险接受人。
|
|
|
|
|
|
- 所有受影响模块的静态检查、单元、契约和构建通过;关键链路 E2E 通过。
|
|
|
|
|
|
- 设备、安全、订单、支付、提现、检查、整改、敏感访问的审计可按 `request_id`/`identity` 串联。
|
|
|
|
|
|
- 安全、性能、弱网/离线和恢复专项完成;未具备真实依赖的项目明确标记“受限通过”,不得写成已完成生产验收。
|