100 lines
3.2 KiB
Markdown
Executable File
100 lines
3.2 KiB
Markdown
Executable File
# 测试策略金字塔
|
||
|
||
> 相关:[[核心Loop]]、[[超级Loop]]、[[Playwright]]、[[Browser_Use]]
|
||
|
||
## 定义
|
||
|
||
**测试策略金字塔**是AI辅助下的分层测试策略,从代码扫描到端到端测试,层层递进。
|
||
|
||
**核心思想**:分层测试,每层有不同的测试对象和工具。
|
||
|
||
## 测试层级
|
||
|
||
| 测试类型 | 测试对象 | 工具(含AI) | 负责人 |
|
||
|---------|---------|--------------|-------------------|
|
||
| **Lint代码扫描** | 代码风格、代码逻辑和片段 | TS Lint/SonarQube | 程序 |
|
||
| **Code Review** | 代码逻辑、架构设计、规范 | GitHub Copilot、Claude Code、CodeRabbit、GitHub PR | 开发者 + AI Review Agent |
|
||
| **单元测试** | 函数/类行为、边界条件、异常处理 | JUnit、pytest、Jest + AI生成测试代码 | 开发者 + Test Generation Agent |
|
||
| **API测试** | 接口契约、输入输出、鉴权、错误码、业务规则 | Karate(主)、RestAssured(补充) + AI生成测试用例 | QA + 后端开发 + API Test Agent |
|
||
| **E2E测试** | 用户关键路径、跨系统流程、前后端联动 | Playwright + AI生成脚本/自愈 | QA + 自动化测试工程师 + E2E Agent |
|
||
|
||
## AI的作用
|
||
|
||
### Lint代码扫描
|
||
- 自动修复格式问题
|
||
- 检测潜在的bug
|
||
- 提供修复建议
|
||
|
||
### Code Review
|
||
- 速度快:几分钟内完成审查
|
||
- 覆盖广:可以检查多个维度(安全、性能、规范)
|
||
- 一致性:不会遗漏
|
||
|
||
### 单元测试
|
||
- 快速生成大量测试用例
|
||
- 覆盖边界条件
|
||
- 生成Mock数据
|
||
|
||
### API测试
|
||
- 根据OpenAPI规范生成测试用例
|
||
- 生成测试数据
|
||
- 自动生成断言
|
||
|
||
### E2E测试
|
||
- 生成测试脚本
|
||
- 自愈(selector修复)
|
||
- 步骤补全
|
||
|
||
## 测试金字塔演变
|
||
|
||
### 传统测试金字塔
|
||
```
|
||
E2E测试(少量)
|
||
/ \
|
||
/ 集成测试 \
|
||
/ (中等数量) \
|
||
/ \
|
||
/ 单元测试 \
|
||
/ (大量) \
|
||
/_________________________\
|
||
```
|
||
|
||
### AI时代的测试策略
|
||
- **AI生成大量单元测试**:覆盖边界条件
|
||
- **AI生成API测试**:基于OpenAPI规范
|
||
- **AI操作浏览器做E2E测试**:模拟真实用户
|
||
- **人工专注于Code Review**:审查AI的审查结果
|
||
|
||
## 适用场景
|
||
|
||
- **所有项目**:都需要分层测试
|
||
- **复杂项目**:需要完整的测试金字塔
|
||
- **AI辅助开发**:充分利用AI生成测试
|
||
|
||
## 优势
|
||
|
||
- **全面覆盖**:从代码到端到端,全面覆盖
|
||
- **自动化**:充分利用AI生成测试
|
||
- **质量保障**:多层测试保证代码质量
|
||
- **效率提升**:AI生成测试提高效率
|
||
|
||
## 挑战
|
||
|
||
- **维护成本**:需要维护多层测试
|
||
- **运行时间**:完整的测试金字塔运行时间长
|
||
- **学习成本**:需要了解多种测试工具和策略
|
||
|
||
## 最佳实践
|
||
|
||
1. **分层测试**:单元测试→API测试→E2E测试
|
||
2. **AI生成测试**:利用AI快速生成大量测试用例
|
||
3. **人工审查**:AI生成的测试需要人工审查
|
||
4. **持续集成**:所有测试集成到CI/CD流程
|
||
|
||
## 相关概念
|
||
|
||
- [[核心Loop]]:核心Loop使用测试策略金字塔
|
||
- [[超级Loop]]:超级Loop扩展了测试策略金字塔
|
||
- [[Playwright]]:E2E测试使用的工具
|
||
- [[Browser_Use]]:E2E测试使用的工具
|