Supply-Intelligence 测试策略
版本:v1.0 | 状态:初稿
1. 测试目标
| 目标 |
指标 |
验证方式 |
| 功能正确性 |
所有 AC 通过率 100% |
每个 AC 至少 1 正向 + 1 负向测试用例 |
| 状态机正确性 |
状态迁移符合状态图 |
所有状态转换路径覆盖 |
| 安全性 |
无越权、审计日志完整 |
渗透测试 + 审计追溯 |
| 性能 |
探针 P99 < 50ms,扫描完成 < 30min |
负载测试 |
2. 测试层级
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 超时等所有常见异常场景。
- 状态机测试:必须覆盖所有状态转换路径,特别是
active → disabled 的违规路径必须被拒绝。
- 审计测试:所有自动化操作必须在 5 秒内生成审计记录,且字段完整。
- 并发测试:探针任务与运营人员手动操作的并发场景必须测试,验证乐观锁机制。