测试金字塔分析技能Skill analyze-pyramid

这个技能用于分析软件项目中的测试金字塔健康度,通过统计单元测试、集成测试和端到端测试的分布,提供测试组合评估和优化建议。关键词包括测试金字塔、单元测试、集成测试、端到端测试、软件测试、测试策略、DevOps、自动化测试、质量保证、测试覆盖率。

测试 0 次安装 0 次浏览 更新于 3/11/2026

名称: 分析测试金字塔 描述: 通过检查单元测试、集成测试和端到端测试的分布来分析测试金字塔的健康度。用于测试组合评估和重新平衡建议。 允许工具: Read, Glob, Grep, Bash, Skill, Task 参数提示: [测试目录]

分析测试金字塔命令

分析当前的测试分布,并为更健康的测试金字塔推荐改进措施。

过程

步骤1: 发现测试

如果提供了测试目录,则使用它。否则,搜索常见的测试模式:

# .NET 项目
find . -name "*.Tests.csproj" -o -name "*Tests*.csproj"
find . -name "*Test*.cs" -type f

# 计数测试
grep -r "\\[Fact\\]\\|\\[Theory\\]" --include="*.cs" | wc -l

步骤2: 分类测试

通过项目/文件夹命名识别测试级别:

  • 单元测试: *.Unit.Tests, *.Domain.Tests
  • 集成测试: *.Integration.Tests, *.Api.Tests
  • 端到端测试: *.E2E.Tests, *.Acceptance.Tests

计算每个级别的测试数量:

| 级别 | 项目 | 测试数量 |
|-------|---------|------------|
| 单元测试 | MyApp.Domain.Tests | 150 |
| 单元测试 | MyApp.Application.Tests | 80 |
| 集成测试 | MyApp.Api.Tests | 60 |
| 端到端测试 | MyApp.E2E.Tests | 40 |

步骤3: 加载金字塔技能

调用 test-strategy:test-pyramid-design 技能进行形状分析模式。

步骤4: 分析分布

计算百分比并识别形状:

## 当前分布

| 级别 | 数量 | 百分比 | 目标 |
|-------|-------|------------|--------|
| 单元测试 | 230 | 70% | 70% ✅ |
| 集成测试 | 60 | 18% | 20% ✅ |
| 端到端测试 | 40 | 12% | 10% ⚠️ |

**形状评估**: 近乎健康的金字塔,端到端测试稍重

步骤5: 识别反模式

检查常见问题:

  • 冰淇淋锥形: 端到端测试 > 30%
  • 沙漏形: 集成测试 > 50%
  • 倒金字塔形: 单元测试 < 50%
  • 缺失层: 任何级别为 0%

步骤6: 生成建议

基于分析:

## 建议

### 立即行动
1. **减少端到端测试** 2%(8个测试)
   - 审查可以推送到集成级别的测试
   - 识别重复低级别覆盖的测试

### 测试迁移候选
| 当前级别 | 候选 | 建议级别 | 原因 |
|---------------|-----------|-------------------|--------|
| 端到端测试 | 登录验证 | 集成测试 | API测试足够 |
| 端到端测试 | 表单验证 | 单元测试 | 纯逻辑测试 |
| 集成测试 | 数据转换 | 单元测试 | 无需I/O |

### 覆盖缺口
- 需要单元测试的领域:[业务逻辑区域]
- 需要集成测试的领域:[API边界]

步骤7: 输出报告

## 测试金字塔分析完成

**当前形状**: [形状名称]

**分布**:
```text

     ▲
    ███  端到端测试: 12%
   █████ 集成测试: 18%
  ███████ 单元测试: 70%

```

**健康得分**: [X/10]

**关键发现**:
1. [发现1]
2. [发现2]

**建议行动**:
1. [行动1]
2. [行动2]

示例

分析当前目录:

/test-strategy:analyze-pyramid

指定测试目录:

/test-strategy:analyze-pyramid tests/