feat: integrate unified payment and wallet refunds
This commit is contained in:
14
checking/01.md
Normal file
14
checking/01.md
Normal file
@@ -0,0 +1,14 @@
|
||||
平台总后台系统 Platform 需要修改如下:
|
||||
- 机构管理中增加,第一项—角阀厂后台管理,第二项—钢瓶厂后台管理,第三项—检测站后台管理,进入每个管理,增加一个-新建按钮,同时下面增加—关键词搜索,增加一个—查询按钮、重置按钮。
|
||||
点开新建按钮,内容包括,新建钢瓶厂管理,下面必填内容,编码、名称、其它内容、统一社会信用代码、负责人、地址、进度、纬度,底座为、取消和确认两个按钮
|
||||
|
||||
用户管理中增加一项
|
||||
授权管理,点开新建按钮,内容包括,新建钢瓶厂管理,下面必填内容,编码、名称、其它内容、统一社会信用代码、负责人、地址、进度、纬度,底座为、取消和确认两个按钮
|
||||
|
||||
智能气阀管理增加5项
|
||||
电子围栏设置管理、点开新建按钮,内容包括,新建钢瓶厂管理,下面必填内容,编码、名称、其它内容、统一社会信用代码、负责人、地址、进度、纬度,底座为、取消和确认两个按钮
|
||||
授权控制管理、点开新建按钮,内容包括,新建钢瓶厂管理,下面必填内容,编码、名称、其它内容、统一社会信用代码、负责人、地址、进度、纬度,底座为、取消和确认两个按钮
|
||||
电量管理,点开新建按钮,内容包括,新建钢瓶厂管理,下面必填内容,编码、名称、其它内容、统一社会信用代码、负责人、地址、进度、纬度,底座为、取消和确认两个按钮
|
||||
温度、压力管理,点开新建按钮,内容包括,新建钢瓶厂管理,下面必填内容,编码、名称、其它内容、统一社会信用代码、负责人、地址、进度、纬度,底座为、取消和确认两个按钮
|
||||
报警管理、点开新建按钮,内容包括,新建钢瓶厂管理,下面必填内容,编码、名称、其它内容、统一社会信用代码、负责人、地址、进度、纬度,底座为、取消和确认两个按钮
|
||||
|
||||
141
checking/02-总体测试计划.md
Normal file
141
checking/02-总体测试计划.md
Normal file
@@ -0,0 +1,141 @@
|
||||
# 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 的投递、重试、死信和积压 |
|
||||
| 后端 | `backend/iot` | 配置、启动、Mock 适配、命令/回执边界;未来 MQTT TLS、身份、遥测和断线重连 |
|
||||
|
||||
不修改 `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` 串联。
|
||||
- 安全、性能、弱网/离线和恢复专项完成;未具备真实依赖的项目明确标记“受限通过”,不得写成已完成生产验收。
|
||||
|
||||
66
checking/03-系统与业务覆盖矩阵.md
Normal file
66
checking/03-系统与业务覆盖矩阵.md
Normal file
@@ -0,0 +1,66 @@
|
||||
# 系统与业务覆盖矩阵
|
||||
|
||||
## 1. 端到端主流程
|
||||
|
||||
| 流程 | 参与端/进程 | 必测断言 |
|
||||
| --- | --- | --- |
|
||||
| 用户注册与服务归属 | user_app → API → gas/delivery admin | 邀请范围/时效/次数/地址校验;已有账号不重复创建;归因可审计 |
|
||||
| 设备绑定与远控 | user_app/platform_admin → API → IoT → 设备 Mock | 归属鉴权、幂等键、命令 ID、回执、超时待确认、审计;高风险开阀拦截 |
|
||||
| 告警整改闭环 | IoT → API/Worker → user_app/service_app/platform_admin | 事件分级、自动关阀、通知、SLA、派单、证据、复检、关闭与全链路审计 |
|
||||
| 商城订单履约 | user_app → API → gas_admin/delivery_admin → service_app | 整数金额、库存/合同规则、幂等支付、任务拆分、归属、轨迹、签收、状态聚合 |
|
||||
| 安装/维修/安检 | admin → API → service_app → API | 准入、上班、区域、强制证据、异常/恢复、离线补传、服务端完成校验 |
|
||||
| 钱包与提现 | user_app/service_app/admin → API | 支付密码、并发余额、不可变流水、预扣/退回/打款、审核隔离、审计 |
|
||||
| 内容与上传 | admins → API → apps | 类型/大小/恶意内容、短期授权、对象关联、已读确认、敏感访问审计 |
|
||||
|
||||
## 2. 模块覆盖
|
||||
|
||||
| 模块 | 单元/组件 | 接口/契约 | E2E | 专项 |
|
||||
| --- | --- | --- | --- | --- |
|
||||
| user_app | 模型、Repository、ViewModel、路由、登录/列表组件 | `/heqi/client/v1/user` 全接口及 `user_app` claim | 注册、资料、商城、订单、工单、钱包 | 安全存储、弱网、权限、Android/iOS/Web 兼容 |
|
||||
| service_app | 模型、准入、任务状态、加密草稿、定位/取证适配 | `/heqi/client/v1/staff` 全接口及 `service_app` claim | 上班、任务、异常恢复、轨迹、签收、补传 | 后台定位、权限撤销、弱网、加密、时钟偏移 |
|
||||
| platform_admin | 资源页、表单规则、权限指令、错误处理 | platform 资源 JSON 与后端路由一致 | 机构、账户/RBAC、产品、订单、钱包、审核 | 越权、敏感导出、键盘可用性、大列表 |
|
||||
| gas_admin | 资源页、合同/订单动作、菜单与数据范围 | gas 资源 JSON 与后端一致 | 配送点、人员、用户、合同、订单、财务、工单 | 跨气站隔离、并发动作、导出审计 |
|
||||
| delivery_admin | 资源页、订单/人员动作、菜单与数据范围 | delivery 资源 JSON 与后端一致 | 人员、用户、地址、配送、钱包、结算 | 跨配送点隔离、轨迹隐私、并发动作 |
|
||||
| site | 页面组件、托管 Worker | 静态资源/路由/缓存头 | 导航、CTA、错误页 | 响应式、Safari、可访问性、SEO、性能 |
|
||||
| API | Logic、状态机、金额、幂等、权限、模型约束 | Router+DB、错误码、Schema、上传 | 所有跨端业务流 | 安全、并发、性能、故障注入、审计 |
|
||||
| Worker | 事件处理器(落地后) | Outbox/Streams 契约(落地后) | 告警/通知/对账/超时 | 重试、死信、积压、重启、至少一次投递 |
|
||||
| IoT | 协议解析/校验(落地后) | MQTT topic/payload/回执契约(落地后) | 遥测→告警、命令→回执 | TLS、ACL、断线重连、伪造、乱序、容量 |
|
||||
|
||||
## 3. AC-01~AC-24 追踪矩阵
|
||||
|
||||
| AC | 场景摘要 | 主测模块 | 关键负向/异常覆盖 |
|
||||
| --- | --- | --- | --- |
|
||||
| AC-01 | 扫码绑定设备 | user_app/API/IoT | 已绑定、不存在、无权、重复扫码、设备离线 |
|
||||
| AC-02 | 远程关阀 | user_app/API/IoT | 重复命令、回执丢失、超时、伪造回执、审计缺口 |
|
||||
| AC-03 | 高风险自动告警 | IoT/API/Worker/admin/app | 阈值边界、重复遥测、通知失败、关阀失败、SLA 超时 |
|
||||
| AC-04 | 高风险开阀拦截 | user_app/API | 直接调 API、旧令牌、并发整改、授权过期 |
|
||||
| AC-05 | 安检不合格 | service_app/API/admin/user_app | 缺证据、非法等级、离线乱序、超时升级重复执行 |
|
||||
| AC-06 | 安装环境不合格 | service_app/API | 跳过步骤、伪造完成、失败测试、整改链断裂 |
|
||||
| AC-07 | 支付与履约 | user_app/API/admin/service_app | 重复/乱序/伪造回调、金额不符、重复建任务 |
|
||||
| AC-08 | 提现审核 | apps/API/admin | 余额不足、并发申请、申请人越权、重复打款回执 |
|
||||
| AC-09 | 租户隔离 | API/gas_admin/delivery_admin | identity 猜测、搜索/分页/导出绕过、缓存串租户 |
|
||||
| AC-10 | 审计与恢复 | API/DB/运维 | 审计篡改、日志缺字段、备份不可用、RPO/RTO 超标 |
|
||||
| AC-11 | 配送轨迹 | service_app/API/admin/user_app | 非履约采集、越界查看、弱网补传、异常改派、轨迹伪造 |
|
||||
| AC-12 | 群控与报修 | user_app/API/IoT | 部分设备失败、高风险开阀、重复报修、证据缺失 |
|
||||
| AC-13 | 气瓶预约订单 | user_app/API/admin | 库存并发、时段失效、支付密码锁定、重复扣款 |
|
||||
| AC-14 | 押金/退押/发票 | user_app/API/admin | 数量差异、验收失败、退款去向错误、未授权下载 |
|
||||
| AC-15 | 紧急联系人/用气统计 | user_app/API/Worker | 未授权联系人、重复通知、跨设备统计、周期/单位错误 |
|
||||
| AC-16 | 安检任务/隐患 | service_app/API/admin | 培训/上班/区域不足、签名缺失、水印/时间伪造 |
|
||||
| AC-17 | 安装维修闭环 | service_app/API/admin | 步骤跳转、材料/收费差异、测试失败、重复提交 |
|
||||
| AC-18 | 配送/随瓶安检/回收 | service_app/API/admin | 到达伪造、扫码重复、证据不足、押金/库存不一致 |
|
||||
| AC-19 | 人员资质与收入 | service_app/API/admin | 证照过期、角色串用、未完成任务入账、越权改收入 |
|
||||
| AC-20 | 邀请注册/服务关系 | user_app/API/admin | 过期/停用/次数耗尽/越界、重复建档、关系覆盖 |
|
||||
| AC-21 | 作业前置/离线补传 | service_app/API | 任一前置缺失、原始时间丢失、重复/乱序、完整性失败 |
|
||||
| AC-22 | 设备共享/紧急联系人 | user_app/API/Worker | 权限撤销后缓存、成员越权控制、联系人未授权 |
|
||||
| AC-23 | 二维码/轨迹隐私 | apps/API/admin | 二维码泄密、精确轨迹直链、跨订单访问、无审计导出 |
|
||||
| AC-24 | 钱包实体命名一致性 | DB/Go/Flutter/Vue/契约 | 同义表/模型/Schema、内部 ID 暴露、迁移兼容错误 |
|
||||
|
||||
## 4. 数据与接口不变量
|
||||
|
||||
- 每表存在 `id bigint` 自增主键、`created_at`、`updated_at`;主实体按规则存在唯一 `identity`。
|
||||
- HTTP、前端、日志和跨服务只使用 `identity`,不接受或暴露内部自增 ID。
|
||||
- 金额字段为最小货币单位整数;资金、安全和审计事实不可物理删除。
|
||||
- 状态只能经专用动作接口流转,非法跳转返回稳定错误码。
|
||||
- 客户端隐藏按钮、菜单或本地缓存不作为安全断言,必须直接调用 API 验证服务端拒绝。
|
||||
- 所有关键写入验证幂等、事务原子性、审计完整性及失败后的可查询状态。
|
||||
|
||||
71
checking/04-环境数据与依赖计划.md
Normal file
71
checking/04-环境数据与依赖计划.md
Normal file
@@ -0,0 +1,71 @@
|
||||
# 测试环境、数据与依赖计划
|
||||
|
||||
## 1. 环境分层
|
||||
|
||||
| 环境 | 用途 | 数据 | 外部依赖 |
|
||||
| --- | --- | --- | --- |
|
||||
| Local | 单元、组件、快速接口调试 | 自动生成、可重置 | 内存/本地 Mock |
|
||||
| CI | 静态、单元、契约、构建 | 每任务独立数据库 | 容器化替身,禁止共享状态 |
|
||||
| Integration | API+DB+Redis+Worker+IoT 集成 | 固定基线+场景数据 | 沙箱或可控 Mock,支持故障注入 |
|
||||
| Staging | 全端 E2E、专项、UAT | 脱敏仿真数据 | 尽量接真实沙箱、设备模拟器 |
|
||||
| Production | 发布后只读/低风险冒烟 | 生产数据 | 禁止造资金与高风险设备动作,除非有演练审批 |
|
||||
|
||||
各环境必须记录:代码提交、构建号、配置版本、数据库 Schema、种子版本、依赖版本、测试开始/结束时间。测试不得使用真实密码、令牌、证件、银行卡、精确住址和生产定位轨迹。
|
||||
|
||||
## 2. 基础设施
|
||||
|
||||
- PostgreSQL:每轮可重置的独立库;启用约束、事务、时区和并发测试;保留慢查询与锁等待观测。
|
||||
- Redis:验证码、限流、支付密码锁定及未来事件流;提供清空命名空间、断连、延迟和重启能力。
|
||||
- API:默认基线 `http://localhost:12426`;按平台、气站、配送点、用户、服务人员分别生成令牌。
|
||||
- Worker/IoT:当前执行启动、配置、健康、日志和优雅退出验证;真实消息/协议接入后扩充专用环境。
|
||||
- 对象存储替身:支持上传、下载授权、过期、拒绝、超时、损坏和病毒扫描结果模拟。
|
||||
- 时间控制:支持验证码过期、SLA、合同、证照、订单、提现及幂等窗口的时间推进。
|
||||
|
||||
## 3. 账号与权限数据集
|
||||
|
||||
每种角色至少准备“正常、禁用、过期凭证、无菜单、只读、跨组织”六类账号:
|
||||
|
||||
| 角色 | 最少数据 |
|
||||
| --- | --- |
|
||||
| 平台 root/运营/财务/安全/审计/客服 | 能力互斥,验证财务不能控设备、安全不能改资金、审计只读 |
|
||||
| 气站管理员 A/B | 两个不同气站,各自包含人员、用户、合同、订单和钱包 |
|
||||
| 配送点管理员 A/B | 分属不同组织,含配送人员与轨迹数据 |
|
||||
| 用户 A/B/家庭成员 | 设备所有者、只读共享者、可控制共享者、已撤销成员 |
|
||||
| 配送员/安装维修员/安检员 | 待审核、资质过期、未培训、未上班、区域外、完全合格 |
|
||||
|
||||
权限测试使用“同结构不同组织”的镜像数据,避免因目标不存在造成假通过。
|
||||
|
||||
## 4. 核心业务数据集
|
||||
|
||||
- 设备:未激活、未绑定、已绑定、在线、离线、高风险锁定、命令待确认、不同厂商/固件。
|
||||
- 遥测:正常、阈值前后、重复、乱序、未来时间、非法单位、极端值、缺字段和伪造身份。
|
||||
- 安全:1/2/3 级事件、待整改、复检失败、已关闭、SLA 即将/已经超时。
|
||||
- 商品/合同/订单:正常、库存边界、过期合同、多商品、多任务、部分履约、异常、取消、完成。
|
||||
- 资金:0 余额、临界余额、余额不足、大额、并发支付、重复回调、退款、提现各状态、对账差异。
|
||||
- 取证:合法图片/PDF/视频、超限文件、扩展名与 MIME 不符、损坏文件、恶意样本、安全扫描失败。
|
||||
- 离线队列:重复幂等键、乱序采集、时钟偏移、网络切换、部分上传成功、应用被杀后恢复。
|
||||
|
||||
## 5. Mock 与沙箱契约
|
||||
|
||||
每个 Mock 必须可配置成功、业务拒绝、超时、连接断开、重复回调、乱序回调和不可解析响应,并记录输入输出供断言。Mock 不得比真实依赖更宽松。
|
||||
|
||||
| 依赖 | 必备模拟能力 |
|
||||
| --- | --- |
|
||||
| MQTT/设备 | 在线/离线、命令 ACK/拒绝/超时、重复回执、伪造设备、遥测峰值 |
|
||||
| 支付 | 签名正确/错误、金额/订单/商户不符、重复/乱序回调、查询补偿 |
|
||||
| 短信/推送 | 成功、失败、延迟、重复、限流、部分接收人失败 |
|
||||
| 地图/定位 | 正常、低精度、权限拒绝、漂移、区域外、无位置、后台受限 |
|
||||
| 电子合同 | 签署成功、拒签、超时、回调重放、原文哈希不符 |
|
||||
| 对象存储/扫描 | 上传成功、过期授权、超限、恶意、损坏、下载越权 |
|
||||
|
||||
## 6. 数据清理与证据
|
||||
|
||||
- 测试数据以专用前缀和批次 identity 标记,通过受控脚本清理;不得物理删除资金、安全和审计事实来“恢复环境”。
|
||||
- 证据至少包含请求/响应(脱敏)、数据库断言、审计记录、日志关联 ID、截图/录屏和构建信息。
|
||||
- 失败现场先保留,再清理;报告中不得粘贴真实令牌、密码和完整敏感字段。
|
||||
- 备份恢复测试使用隔离库,恢复后以记录数、关键哈希、状态不变量和审计链完整性校验。
|
||||
|
||||
## 7. 待确认项
|
||||
|
||||
以下内容在得到正式口径前只测试“可配置与安全默认值”,不自行设定政策:安全阈值与开阀审批、SLO/RPO/RTO 数值、目标设备规模和上报频率、支付/合同/地图厂商、证据留存期、支持的 OS/浏览器最低版本、视频合规规则。
|
||||
|
||||
125
checking/05-执行批次与质量门禁.md
Normal file
125
checking/05-执行批次与质量门禁.md
Normal file
@@ -0,0 +1,125 @@
|
||||
# 执行批次与质量门禁
|
||||
|
||||
## 1. 建议批次
|
||||
|
||||
| 批次 | 内容 | 频率 | 预计目标 |
|
||||
| --- | --- | --- | --- |
|
||||
| B0 基线 | 范围冻结、环境/账号/数据验证、依赖健康 | 每轮开始 | 证明结果可复现 |
|
||||
| B1 快速门禁 | 静态、单元、契约、构建 | 每次提交/合并请求 | 尽早阻断低层错误 |
|
||||
| B2 API 回归 | 鉴权、CRUD、状态动作、金额、幂等、审计、上传 | 每日 | 后端事实层稳定 |
|
||||
| B3 单端回归 | 两 App、三个管理端、官网 | 每日/候选版 | 单端功能和兼容性 |
|
||||
| B4 跨端 E2E | 7 条主流程、AC-01~AC-24 | 候选版 | 业务闭环可验收 |
|
||||
| B5 专项 | 安全、性能、弱网、稳定性、灾备、可访问性 | 候选版 | 非功能风险可接受 |
|
||||
| B6 UAT | 产品、运营、安全、财务、运维签署 | 发布前 | 业务与上线决策完成 |
|
||||
| B7 发布验证 | 部署校验、迁移、低风险冒烟、监控和回滚 | 发布时 | 生产可用且可回退 |
|
||||
|
||||
## 2. 可直接执行的当前基线命令
|
||||
|
||||
### Flutter App(分别在两个 App 目录执行)
|
||||
|
||||
```bash
|
||||
flutter pub get
|
||||
flutter analyze
|
||||
flutter test
|
||||
flutter build apk --debug
|
||||
flutter build web --release --dart-define=API_BASE_URL=https://api.example.com
|
||||
```
|
||||
|
||||
iOS 构建需 macOS 执行:
|
||||
|
||||
```bash
|
||||
flutter build ios --simulator --no-codesign
|
||||
```
|
||||
|
||||
### 三个 Vue 管理端(分别执行)
|
||||
|
||||
```bash
|
||||
pnpm install --frozen-lockfile
|
||||
pnpm type:check
|
||||
pnpm lint
|
||||
pnpm contract:check
|
||||
pnpm build
|
||||
```
|
||||
|
||||
涉及后端资源/路由变化时,先执行 `pnpm contract:sync` 并审查生成差异,再执行 `contract:check`。
|
||||
|
||||
### 官网
|
||||
|
||||
```bash
|
||||
npm ci
|
||||
npm run test:sites
|
||||
npm run build
|
||||
```
|
||||
|
||||
### 后端
|
||||
|
||||
```bash
|
||||
cd backend/api && go test ./... && go vet ./... && go build ./cmd/main/main.go
|
||||
cd backend/worker && go test ./... && go vet ./... && go build ./cmd/main/main.go
|
||||
cd backend/iot && go test ./... && go vet ./... && go build ./cmd/main/main.go
|
||||
```
|
||||
|
||||
建议 CI 增加 `go test -race ./...`(运行环境支持时)、覆盖率输出、依赖/密钥扫描和 API E2E 作业。命令只是门禁,不等价于完整业务验收。
|
||||
|
||||
## 3. 准入条件
|
||||
|
||||
- 被测提交、构建号、数据库版本、配置和变更范围已冻结。
|
||||
- 环境健康,基线账号/数据/Mock 可用,上一轮阻塞缺陷已处理。
|
||||
- 新增或变更需求有明确验收口径;接口变更已同步资源契约。
|
||||
- 高风险动作在隔离环境执行,设备、资金、通知不会影响真实用户。
|
||||
|
||||
## 4. 各阶段准出条件
|
||||
|
||||
### 合并请求
|
||||
|
||||
- 受影响模块 L0/L1/L2/L3 通过。
|
||||
- 状态机、金额、权限、幂等改动具有回归测试。
|
||||
- 无新增高危依赖/密钥泄露,生成契约无非预期漂移。
|
||||
|
||||
### 候选版
|
||||
|
||||
- 全模块构建通过,B2/B3 全回归完成。
|
||||
- 7 条跨端主流程和 AC-01~AC-24 全部执行。
|
||||
- P0/P1 为 0;性能、安全、弱网和恢复专项已出报告。
|
||||
- Worker/IoT 的 Mock 限制在报告中明确,未完成真实联调不伪装成通过。
|
||||
|
||||
### 生产发布
|
||||
|
||||
- UAT、安全、财务、运维签署完成;所有 P2 延期有风险接受。
|
||||
- 数据库迁移已演练,备份、回滚和监控告警可用。
|
||||
- 发布后冒烟仅执行审批过的低风险动作;设备控制和真实资金动作使用专门演练方案。
|
||||
|
||||
## 5. 冒烟清单
|
||||
|
||||
1. API/Worker/IoT 启动、健康、配置加载和无敏感日志。
|
||||
2. 五类客户端登录及 client claim 隔离。
|
||||
3. 三个管理端菜单加载、核心列表、详情和一个低风险写操作。
|
||||
4. user_app 读取首页/商品/订单,service_app 读取准入/任务。
|
||||
5. 一次幂等写入重复提交,事实不重复。
|
||||
6. 一次跨组织 identity 访问,被稳定错误码拒绝。
|
||||
7. 一次设备命令 Mock 回执和一次超时待确认。
|
||||
8. 一次订单到任务的跨端可见性校验。
|
||||
9. 一次敏感字段脱敏和审计查询。
|
||||
10. 官网首页、主要导航、静态资源与错误页。
|
||||
|
||||
## 6. 自动化建设优先级
|
||||
|
||||
| 优先级 | 建设项 | 原因 |
|
||||
| --- | --- | --- |
|
||||
| P0 | API 鉴权/组织隔离/状态机/金额/幂等集成测试 | 当前最高业务与安全风险 |
|
||||
| P0 | AC-02、03、04、07、08、09、21 跨端回归 | 设备、安全、资金、隔离、离线核心链路 |
|
||||
| P1 | App Repository/ViewModel/离线草稿及 Web 权限组件测试 | 当前端侧自动化覆盖较薄 |
|
||||
| P1 | 三管理端契约检查统一 CI、浏览器冒烟 | 防止路由/菜单/资源漂移 |
|
||||
| P1 | 上传、日志脱敏、依赖与密钥扫描 | 隐私与供应链风险 |
|
||||
| P2 | 性能基线、故障注入、备份恢复自动化 | 候选版稳定性保障 |
|
||||
| P2 | 视觉回归、可访问性和多设备兼容矩阵 | 降低交互与适配回归 |
|
||||
|
||||
## 7. 每轮报告最小指标
|
||||
|
||||
- 计划/执行/通过/失败/阻塞/未执行用例数及覆盖率。
|
||||
- 按模块和 P0~P3 的新增、遗留、关闭、重开缺陷。
|
||||
- AC-01~AC-24 状态,关键链路通过率。
|
||||
- 自动化通过率、偶发失败率、覆盖率变化和执行时长。
|
||||
- API 性能分位数/错误率、资源峰值、安全发现、恢复实测值。
|
||||
- 环境限制、未测范围、残余风险、责任人和下一步日期。
|
||||
|
||||
30
checking/README.md
Normal file
30
checking/README.md
Normal file
@@ -0,0 +1,30 @@
|
||||
# 全链路测试计划索引
|
||||
|
||||
本目录用于规划和沉淀 `apps/`、`frontend/`、`backend/` 的完整测试活动。测试目标不是只验证页面可打开,而是证明物联网智能瓶阀平台在身份、设备安全、订单履约、资金、组织隔离、离线补传和审计等关键链路上可正确、安全、可恢复地运行。
|
||||
|
||||
## 文档导航
|
||||
|
||||
| 文件 | 用途 |
|
||||
| --- | --- |
|
||||
| [01.md](01.md) | 用户已有的平台后台补充需求原文,作为测试输入保留,不作为完整测试计划 |
|
||||
| [02-总体测试计划.md](02-总体测试计划.md) | 范围、策略、分层、阶段、角色、风险和完成标准 |
|
||||
| [03-系统与业务覆盖矩阵.md](03-系统与业务覆盖矩阵.md) | 各端、后端进程、跨端流程和 AC-01~AC-24 的追踪关系 |
|
||||
| [04-环境数据与依赖计划.md](04-环境数据与依赖计划.md) | 测试环境、账号、数据、Mock、第三方和设备模拟要求 |
|
||||
| [05-执行批次与质量门禁.md](05-执行批次与质量门禁.md) | 冒烟、回归、专项、发布验收的执行顺序和准入准出条件 |
|
||||
| [templates/测试用例模板.md](templates/测试用例模板.md) | 单条测试用例的统一记录格式 |
|
||||
| [templates/测试报告模板.md](templates/测试报告模板.md) | 每轮测试结果、缺陷和发布建议模板 |
|
||||
|
||||
## 使用方式
|
||||
|
||||
1. 冻结本次被测版本、数据库迁移版本、App/Web 构建号和后端提交号。
|
||||
2. 按覆盖矩阵为每个场景建立用例,必须同时包含正常、拒绝、重复、超时、越权和恢复路径。
|
||||
3. 先执行静态检查和单元测试,再执行接口/契约、组件、跨端 E2E,最后执行性能、安全、弱网和灾备专项。
|
||||
4. 每轮结果使用报告模板归档;失败用例必须关联缺陷、责任模块和复测证据。
|
||||
5. 任何业务口径、状态、权限或接口变化,先更新 `docs/` 基线,再同步更新本目录的矩阵和用例。
|
||||
|
||||
## 计划边界
|
||||
|
||||
- `backend/worker` 和 `backend/iot` 当前仍是 Mock 边界。计划会验证其进程、配置和失败行为,但真实 Redis Streams、MQTT Broker、设备证书及厂商协议的生产验收必须等契约和环境就绪后执行。
|
||||
- `frontend/site` 是官网,按展示、响应式、可访问性、链接、构建和托管 Worker 测试;不把它当成业务事实写入端。
|
||||
- 本计划不把尚未实现或文档中“待确认”的政策当作通过标准。此类项进入阻塞/待决清单,由产品、安全、财务或法务确认后再固化用例。
|
||||
|
||||
60
checking/templates/测试报告模板.md
Normal file
60
checking/templates/测试报告模板.md
Normal file
@@ -0,0 +1,60 @@
|
||||
# 测试报告:版本/批次
|
||||
|
||||
## 1. 结论
|
||||
|
||||
- 发布建议:通过 / 有条件通过 / 不通过
|
||||
- 被测版本:
|
||||
- 环境与数据版本:
|
||||
- 测试时间:
|
||||
- 结论摘要与主要风险:
|
||||
|
||||
## 2. 范围与变更
|
||||
|
||||
| 模块 | 提交/构建号 | 本轮范围 | 未测范围及原因 |
|
||||
| --- | --- | --- | --- |
|
||||
|
||||
## 3. 执行结果
|
||||
|
||||
| 类型 | 计划 | 通过 | 失败 | 阻塞 | 未执行 | 通过率 |
|
||||
| --- | ---: | ---: | ---: | ---: | ---: | ---: |
|
||||
| 静态/单元/契约 | | | | | | |
|
||||
| 接口/集成 | | | | | | |
|
||||
| 单端/E2E | | | | | | |
|
||||
| 安全/性能/弱网/恢复 | | | | | | |
|
||||
|
||||
## 4. AC-01~AC-24
|
||||
|
||||
| AC | 结果 | 证据 | 缺陷/限制 |
|
||||
| --- | --- | --- | --- |
|
||||
|
||||
## 5. 缺陷
|
||||
|
||||
| 等级 | 新增 | 遗留 | 已关闭 | 重开 | 发布阻塞 |
|
||||
| --- | ---: | ---: | ---: | ---: | ---: |
|
||||
|
||||
列出所有 P0/P1,以及延期 P2 的影响、绕行方案、责任人、计划日期和风险接受人。
|
||||
|
||||
## 6. 专项结果
|
||||
|
||||
- 性能:P50/P95/P99、吞吐、错误率、资源峰值、与基线差异。
|
||||
- 安全:发现、等级、修复/缓解、复测状态。
|
||||
- 弱网/稳定性:断网、重试、重启、重复/乱序、数据一致性。
|
||||
- 恢复:备份点、恢复耗时、实测 RPO/RTO、完整性校验。
|
||||
- 兼容性/可访问性:设备、OS、浏览器、分辨率与问题。
|
||||
|
||||
## 7. 环境限制与残余风险
|
||||
|
||||
- 未接真实 MQTT/设备、支付、短信、地图、合同等项必须逐项说明。
|
||||
- 区分“Mock 通过”“沙箱通过”“真实联调通过”和“生产演练通过”。
|
||||
- 列出待确认业务口径,不得默认为已验收。
|
||||
|
||||
## 8. 签署
|
||||
|
||||
| 角色 | 姓名 | 结论 | 日期 |
|
||||
| --- | --- | --- | --- |
|
||||
| 测试 | | | |
|
||||
| 产品/业务 | | | |
|
||||
| 开发 | | | |
|
||||
| 安全 | | | |
|
||||
| 财务 | | | |
|
||||
| 运维 | | | |
|
||||
45
checking/templates/测试用例模板.md
Normal file
45
checking/templates/测试用例模板.md
Normal file
@@ -0,0 +1,45 @@
|
||||
# 测试用例:TC-模块-编号 标题
|
||||
|
||||
## 基本信息
|
||||
|
||||
| 字段 | 内容 |
|
||||
| --- | --- |
|
||||
| 关联需求/AC | 例如 AC-07 |
|
||||
| 层级 | L1/L2/L3/L4/L5/L6/L7 |
|
||||
| 优先级 | P0/P1/P2/P3 |
|
||||
| 被测模块 | apps/frontend/backend 具体目录 |
|
||||
| 前置版本 | 提交、构建号、Schema、配置版本 |
|
||||
| 自动化 | 是/否/计划中;脚本路径 |
|
||||
|
||||
## 前置条件与数据
|
||||
|
||||
- 账号/角色/组织:
|
||||
- 核心对象 identity:
|
||||
- 初始状态与余额:
|
||||
- Mock/第三方模式:
|
||||
|
||||
## 步骤与预期
|
||||
|
||||
| # | 操作/请求 | 预期 UI/API | 数据库/事件/审计断言 |
|
||||
| --- | --- | --- | --- |
|
||||
| 1 | | | |
|
||||
|
||||
## 必测变体
|
||||
|
||||
- [ ] 首次合法请求
|
||||
- [ ] 相同幂等键重复请求
|
||||
- [ ] 无权/跨组织/跨对象请求
|
||||
- [ ] 非法状态跳转或边界金额
|
||||
- [ ] 超时、断连、重复/乱序回调
|
||||
- [ ] 重试、补偿、恢复和审计查询
|
||||
|
||||
## 执行记录
|
||||
|
||||
| 字段 | 内容 |
|
||||
| --- | --- |
|
||||
| 结果 | 通过/失败/阻塞/未执行 |
|
||||
| 执行人/时间 | |
|
||||
| 证据 | 脱敏请求响应、截图、日志 request_id、审计 identity |
|
||||
| 缺陷 | 编号、等级、链接 |
|
||||
| 复测 | 版本、结果、证据 |
|
||||
|
||||
Reference in New Issue
Block a user