覆盖率

coverage
分类通用
作者Alireza Rezvani
许可MIT
评分4.20/5
使用2.2K

分析测试覆盖率缺口

映射应用程序中所有可测试的界面,并识别已测试部分与缺失部分。

步骤

1. 映射应用界面

使用 Explore 子代理编目:

路由/页面:

  • 扫描路由定义(Next.js app/、React Router 配置、Vue Router 等)

  • 列出所有面向用户的页面及其路径

组件:

  • 识别交互式组件(表单、模态框、下拉菜单、表格)

  • 记录具有复杂状态逻辑的组件

API 接口:

  • 扫描 API 路由文件或后端控制器

  • 列出所有接口及其请求方法

用户流程:

  • 识别关键路径:认证、结账、引导流程、核心功能

  • 映射多步骤工作流

2. 映射现有测试

扫描所有 *.spec.ts / *.spec.js 文件:

  • 提取已覆盖的页面/路由(通过 page.goto() 调用识别)
  • 提取已测试的组件(通过定位器 usage 识别)
  • 提取已模拟或调用的 API 接口
  • 统计每个区域的测试数量

3. 生成覆盖率矩阵

code
## 覆盖率矩阵

| 区域 | 路由 | 测试数 | 状态 |
|---|---|---|---|
| 认证 | /login | 5 | ✅ 已覆盖 |
| 认证 | /register | 0 | ❌ 缺失 |
| 认证 | /forgot-password | 0 | ❌ 缺失 |
| 控制面板 | /dashboard | 3 | ⚠️ 部分覆盖 (缺少错误状态) |
| 设置 | /settings | 0 | ❌ 缺失 |
| 结账 | /checkout | 8 | ✅ 已覆盖 |

4. 优先级排序

根据业务影响对未覆盖区域进行排序:

1. 紧急 (Critical) — 认证、支付、核心功能 $\rightarrow$ 优先测试
2. 高 (High) — 面向用户的 CRUD、搜索、导航
3. 中 (Medium) — 设置、偏好设置、边缘情况
4. 低 (Low) — 静态页面、关于页、条款页

5. 建议测试计划

针对每个缺口,推荐:

  • 所需测试数量

  • 使用 templates/ 中的哪个模板

  • 预计工作量(快速/中等/复杂)

code
## 推荐测试计划

优先级 1:紧急

1. /register (4 个测试) — 使用 auth/registration 模板 — 快速 2. /forgot-password (3 个测试) — 使用 auth/password-reset 模板 — 快速

优先级 2:高

3. /settings (4 个测试) — 使用 settings/ 模板 — 中等 4. 控制面板错误状态 (2 个测试) — 使用 dashboard/data-loading 模板 — 快速

6. 自动生成(可选)

询问用户:“是否为前 N 个缺口生成测试?[是/否/选择特定项]”

如果用户同意,针对每个缺口调用 /pw:generate 并使用推荐的模板。

输出

  • 覆盖率矩阵(表格形式)
  • 覆盖率百分比预估
  • 带有工作量预估的优先级缺口列表
  • 自动生成缺失测试的选项