74 lines
2.6 KiB
Markdown
74 lines
2.6 KiB
Markdown
|
|
# AI-Ops 测试策略
|
|||
|
|
|
|||
|
|
> 版本:v1.0 | 状态:初稿
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 1. 测试目标
|
|||
|
|
|
|||
|
|
| 目标 | 指标 | 验证方式 |
|
|||
|
|
|------|------|---------|
|
|||
|
|
| 功能正确性 | 所有 AC 通过率 100% | 每个 AC 至少 1 个正向 + 1 个负向测试用例 |
|
|||
|
|
| 性能达标 | 首页加载 <2s,查询 <3s,告警触发 <30s | 负载测试 + 峰值测试 |
|
|||
|
|
| 安全性 | 无越权、无审计日志缺失 | 渗透测试 + 审计追溯测试 |
|
|||
|
|
| 容灾能力 | 单机故障不影响服务 | 混淆工程测试 |
|
|||
|
|
|
|||
|
|
## 2. 测试层级
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
├── 单元测试 (Unit Test)
|
|||
|
|
│ ├── domain 层逻辑测试
|
|||
|
|
│ ├── service 层业务流程测试
|
|||
|
|
│ └── handler 层输入验证测试
|
|||
|
|
│
|
|||
|
|
├── 集成测试 (Integration Test)
|
|||
|
|
│ ├── 数据库交互测试
|
|||
|
|
│ ├── Redis 缓存交互测试
|
|||
|
|
│ ├── Prometheus 采集测试
|
|||
|
|
│ └── 外部服务 Mock 测试
|
|||
|
|
│
|
|||
|
|
├── E2E 测试 (End-to-End Test)
|
|||
|
|
│ ├── API 端到端测试
|
|||
|
|
│ ├── WebSocket 实时推送测试
|
|||
|
|
│ └── 前端流程测试
|
|||
|
|
│
|
|||
|
|
└── 混淆工程测试 (Chaos Test)
|
|||
|
|
├── 单机故障
|
|||
|
|
├── 网络分区
|
|||
|
|
└── 数据库主从切换
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## 3. 测试工具
|
|||
|
|
|
|||
|
|
| 层级 | 工具 | 说明 |
|
|||
|
|
|------|------|------|
|
|||
|
|
| 单元测试 | Go testing + testify + mockery | 覆盖率门槛 domain ≥ 70%、service/handler ≥ 80% |
|
|||
|
|
| 数据库测试 | testcontainers-go (PostgreSQL) | 每次测试启动独立容器 |
|
|||
|
|
| 缓存测试 | miniredis | 轻量级 Redis Mock |
|
|||
|
|
| HTTP 测试 | httptest + net/http | 标准库内置测试 |
|
|||
|
|
| E2E 测试 | 自定义 Go E2E 框架 | 启动完整服务 + 数据库 + 缓存 |
|
|||
|
|
| 混淆测试 | chaos-mesh / 自定义脚本 | K8s 环境下使用 chaos-mesh,非 K8s 使用自定义脚本 |
|
|||
|
|
|
|||
|
|
## 4. 测试环境
|
|||
|
|
|
|||
|
|
| 环境 | 用途 | 数据 |
|
|||
|
|
|------|------|------|
|
|||
|
|
| 本地开发 | 单元 + 快速集成测试 | 测试数据生成 |
|
|||
|
|
| CI | 自动化单元 + 集成测试 | 测试数据生成 |
|
|||
|
|
| 测试环境 | E2E 测试 + 性能基准 | 模拟生产数据(脱敏) |
|
|||
|
|
| 生产前 | 灾备测试 + 回滚演练 | 生产数据副本(脱敏) |
|
|||
|
|
| 生产环境 | 灰度监控 + 告警验证 | 真实生产数据 |
|
|||
|
|
|
|||
|
|
## 5. 测试数据管理
|
|||
|
|
|
|||
|
|
- 测试数据通过 `test/fixtures/` 下的 SQL 脚本和 JSON 文件管理。
|
|||
|
|
- 每个测试用例自洁,启动前加载固定数据集,结束后清理。
|
|||
|
|
- 数据库测试使用编程式事务,测试结束后自动回滚。
|
|||
|
|
|
|||
|
|
## 6. 自动化与 CI 集成
|
|||
|
|
|
|||
|
|
- PR 提交时自动触发单元测试和集成测试。
|
|||
|
|
- 每日定时触发全量 E2E 测试。
|
|||
|
|
- 每周定时触发混淆测试(若有 K8s 环境)。
|
|||
|
|
- 测试失败时自动通知 TechLead 和 QA。
|