Files
supply-intelligence/test/STRATEGY.md
2026-05-07 10:16:46 +08:00

2.9 KiB
Raw Permalink Blame History

Supply-Intelligence 测试策略

版本v1.0 | 状态:初稿


1. 测试目标

目标 指标 验证方式
功能正确性 所有 AC 通过率 100% 每个 AC 至少 1 正向 + 1 负向测试用例
状态机正确性 状态迁移符合状态图 所有状态转换路径覆盖
安全性 无越权、审计日志完整 渗透测试 + 审计追溯
性能 探针 P99 < 50ms扫描完成 < 30min 负载测试

2. 测试层级

├── 单元测试 (Unit Test)
│   ├── 状态机转换逻辑
│   ├── 探针策略逻辑
│   ├── 扫描比对算法
│   └── 准入测试判定逻辑
│
├── 集成测试 (Integration Test)
│   ├── 数据库交互(状态变更、审计日志)
│   ├── Redis 缓存交互
│   ├── 供应商 API Mock
│   ├── 邮件/短信网关 Mock
│   └── 向量数据库检索
│
├── E2E 测试 (End-to-End Test)
│   ├── 探针到状态变更整条链路
│   ├── 扫描到候选模型整条链路
│   ├── 准入测试到上架整条链路
│   └── 账号注册整条链路
│
└── 稳定性测试 (Stability Test)
    ├── 7 天连续探针运行
    └── 高并发扫描/测试

3. 测试工具

层级 工具 说明
单元测试 Go testing + testify + mockery 覆盖率门槛 domain ≥ 70%、service ≥ 80%
数据库测试 testcontainers-go (PostgreSQL) 每次测试启动独立容器
缓存测试 miniredis 轻量级 Redis Mock
供应商 Mock gock / httptest 模拟供应商 API 响应
E2E 测试 自定义 Go E2E 框架 启动完整服务 + 数据库
稳定性测试 自定义脚本 7 天连续运行监控

4. 测试环境

环境 用途 数据
本地开发 单元 + 快速集成测试 测试数据生成
CI 自动化单元 + 集成测试 测试数据生成
测试环境 E2E + 性能基准 模拟生产数据
生产前 稳定性验证 生产数据副本(脱敏)
生产环境 灰度监控 真实数据

5. 测试数据管理

  • 供应商 API 响应使用 test/fixtures/supplier_responses/ 下的 JSON 文件管理。
  • 测试用例集使用 test/fixtures/test_cases/ 下的 YAML 文件管理。
  • 每个测试用例自洁,启动前加载固定数据集,结束后清理。

6. 特殊测试要求

  • 探针测试:必须覆盖 429 、 401 、 403 、 500 、 503 、超时、空响应、DNS 失败、TCP 超时等所有常见异常场景。
  • 状态机测试:必须覆盖所有状态转换路径,特别是 activedisabled 的违规路径必须被拒绝。
  • 审计测试:所有自动化操作必须在 5 秒内生成审计记录,且字段完整。
  • 并发测试:探针任务与运营人员手动操作的并发场景必须测试,验证乐观锁机制。