Files
platforms/checking/05-执行批次与质量门禁.md

6.3 KiB
Raw Permalink Blame History

执行批次与质量门禁

1. 建议批次

批次 内容 频率 预计目标
B0 基线 范围冻结、环境/账号/数据验证、依赖健康 每轮开始 证明结果可复现
B1 快速门禁 静态、单元、契约、构建 每次提交/合并请求 尽早阻断低层错误
B2 API 回归 鉴权、CRUD、状态动作、金额、幂等、审计、上传 每日 后端事实层稳定
B3 单端回归 两 App、三个管理端、官网 每日/候选版 单端功能和兼容性
B4 跨端 E2E 06-业务流程测试.md、AC-01AC-25 候选版 业务闭环可验收
B5 专项 安全、性能、弱网、稳定性、灾备、可访问性 候选版 非功能风险可接受
B6 UAT 产品、运营、安全、财务、运维签署 发布前 业务与上线决策完成
B7 发布验证 部署校验、迁移、低风险冒烟、监控和回滚 发布时 生产可用且可回退

2. 可直接执行的当前基线命令

Flutter App分别在两个 App 目录执行)

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 执行:

flutter build ios --simulator --no-codesign

三个 Vue 管理端(分别执行)

pnpm install --frozen-lockfile
pnpm type:check
pnpm lint
pnpm contract:check
pnpm build

涉及后端资源/路由变化时,先执行 pnpm contract:sync 并审查生成差异,再执行 contract:check

官网

npm ci
npm run test:sites
npm run build

后端

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-gateway && go test ./... && go vet ./... && go build ./cmd/main/main.go
cd backend/iot-server && 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 全回归完成。
  • 06-业务流程测试.md 中 P0/P1 流程和 AC-01AC-25 全部执行。
  • P0/P1 为 0性能、安全、弱网和恢复专项已出报告。
  • IoT 模拟器、真实设备、TLS/证书和厂商联调的通过层级在报告中明确,不混写结论。

生产发布

  • UAT、安全、财务、运维签署完成所有 P2 延期有风险接受。
  • 数据库迁移已演练,备份、回滚和监控告警可用。
  • 发布后冒烟仅执行审批过的低风险动作;设备控制和真实资金动作使用专门演练方案。

5. 冒烟清单

  1. API、Worker、IoT Gateway、IoT Server 启动、健康、配置加载和无敏感日志。
  2. 五类客户端登录及 client claim 隔离。
  3. 三个管理端菜单加载、核心列表、详情和一个低风险写操作。
  4. user_app 读取首页/商品/订单service_app 读取准入/任务。
  5. 一次幂等写入重复提交,事实不重复。
  6. 一次跨组织 identity 访问,被稳定错误码拒绝。
  7. 一次完整 IoT 命令下行与 MQTT 回执,以及一次 ACK 丢失后的待确认。
  8. 一次订单到任务的跨端可见性校验。
  9. 一次敏感字段脱敏和审计查询。
  10. 官网首页、主要导航、静态资源与错误页。

6. 自动化建设优先级

优先级 建设项 原因
P0 API 鉴权/组织隔离/状态机/金额/幂等集成测试 当前最高业务与安全风险
P0 AC-02、03、04、07、08、09、21、25 跨端回归 设备、安全、资金、隔离、离线和 IoT 可靠性核心链路
P1 App Repository/ViewModel/离线草稿及 Web 权限组件测试 当前端侧自动化覆盖较薄
P1 三管理端契约检查统一 CI、浏览器冒烟 防止路由/菜单/资源漂移
P1 上传、日志脱敏、依赖与密钥扫描 隐私与供应链风险
P2 性能基线、故障注入、备份恢复自动化 候选版稳定性保障
P2 视觉回归、可访问性和多设备兼容矩阵 降低交互与适配回归

7. 每轮报告最小指标

  • 计划/执行/通过/失败/阻塞/未执行用例数及覆盖率。
  • 按模块和 P0P3 的新增、遗留、关闭、重开缺陷。
  • AC-01AC-25 状态,关键链路通过率。
  • 自动化通过率、偶发失败率、覆盖率变化和执行时长。
  • API 性能分位数/错误率、资源峰值、安全发现、恢复实测值。
  • 环境限制、未测范围、残余风险、责任人和下一步日期。

8. 当前自动化缺口基线

本次盘点只用于安排优先级,不代表功能缺陷结论:

  • backend/iot-gateway 已有命令元数据转发、上行转发和无本地状态测试,但缺 Handler 鉴权、过期、体积限制、上游错误映射和优雅退出覆盖。
  • backend/iot-server 已有配置、加密帧往返、篡改拒绝、阀门命令和实时传感器解析测试,但缺 Broker 级设备认证、Topic ACL、真实 MQTT 上下行、ACK、断线重连和 TLS 测试。
  • backend/worker 当前没有 _test.go支付扫描、Outbox 轮询、HTTP 状态分支、超时、坏响应、重试和停止行为应列为 P0 自动化补齐项。
  • backend/api 的新增支付/退款和 IoT Logic 尚缺直接数据库事务及路由安全测试;优先覆盖并发回调、迟到回调、退款金额守恒、命令/Outbox 原子性、重复认领和 ACK 状态更新。
  • 跨四进程的设备模拟 E2E 和支付沙箱 E2E 尚未形成持续集成作业,应在候选版验收前落地或以人工证据明确替代。