Files
platforms/checking/03-系统与业务覆盖矩阵.md

69 lines
7.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 系统与业务覆盖矩阵
## 1. 端到端主流程
| 流程 | 参与端/进程 | 必测断言 |
| --- | --- | --- |
| 用户注册与服务归属 | user_app → API → gas/delivery admin | 邀请范围/时效/次数/地址校验;已有账号不重复创建;归因可审计 |
| 设备绑定与远控 | user_app/platform_admin → API → Outbox → Worker → Gateway → IoT Server → MQTT 设备 | 归属鉴权、事务、幂等键、命令 ID、包序号、回执、超时待确认、审计高风险开阀拦截 |
| 告警整改闭环 | MQTT 设备 → IoT Server → Gateway → API/Worker → user_app/service_app/platform_admin | 原始帧、设备/接收时间、事件分级、自动关阀、通知、SLA、派单、证据、复检、关闭与审计 |
| 渠道支付与退款 | user_app → API → 支付渠道 → API → platform_admin → 钱包 | 支付单幂等、验签、金额/商户、超时关单、重复/迟到回调、按项退款、审核与不可变流水 |
| 商城订单履约 | 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、状态机、支付/退款、金额、幂等、权限、IoT 命令/Outbox/上行模型 | Router+DB、错误码、Schema、上传、内部接口 | 所有跨端业务流 | 安全、并发、性能、故障注入、审计 |
| Worker | 支付关单调度、IoT Outbox 轮询与投递 | API/Gateway 内部接口及令牌 | 过期支付、命令可靠投递 | 重试、积压、重启、重复认领、上游超时 |
| IoT Gateway | 命令/上行 HTTP 转发 | Worker/API/IoT Server 内部契约 | 命令下行与设备消息上行 | 无状态、令牌、过期、体积限制、上游故障 |
| IoT Server | V1.8 帧、AES/LRC8、阀门命令、实时数据解析 | MQTT Topic/ACL 与内部 HTTP 命令契约 | 遥测→持久化、命令→回执 | TLS、设备认证、断线重连、伪造、乱序、容量 |
## 3. AC-01AC-25 追踪矩阵
| 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 暴露、迁移兼容错误 |
| AC-25 | MQTT 设备命令与协议回执 | API/Worker/Gateway/IoT Server/设备模拟器 | 事务中断、重复认领、Gateway 超时、命令过期、ACL 越权、坏帧、ACK 丢失/重复/伪造 |
## 4. 数据与接口不变量
- 每表存在 `id bigint` 自增主键、`created_at``updated_at`;主实体按规则存在唯一 `identity`
- HTTP、前端、日志和跨服务只使用 `identity`,不接受或暴露内部自增 ID。
- 金额字段为最小货币单位整数;资金、安全和审计事实不可物理删除。
- 状态只能经专用动作接口流转,非法跳转返回稳定错误码。
- 客户端隐藏按钮、菜单或本地缓存不作为安全断言,必须直接调用 API 验证服务端拒绝。
- 所有关键写入验证幂等、事务原子性、审计完整性及失败后的可查询状态。