# Test Strategy Designer

> Analyze code changes and design targeted test strategies covering impact scope, test types, and priority. Use when (1) determining what tests are needed after code changes, (2) designing test plans for new features or bug fixes, (3) estimating test effort and coverage gaps, (4) selecting appropriate test types. Outputs actionable test strategies with priority and scope.

- Skill: `bingooyong/test-strategy-designer` (Agent Skill)
- Install (CLI): `npx skillmds@latest add bingooyong/test-strategy-designer`
- Raw SKILL.md: https://api.skillmd.com/api/skills/bingooyong/test-strategy-designer/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: bingooyong (https://skillmd.com/u/bingooyong)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/bingooyong/test-strategy-designer

---


# 测试策略设计 Skill

根据代码变更分析测试影响面，设计按优先级分类的测试策略，帮助选择合适的测试类型和范围。

## 何时使用

- 代码变更后确定需要测什么
- 新功能开发前设计测试计划
- 评估测试覆盖率缺口
- 选择合适的测试类型（单元/集成/E2E/性能）

**不适用**：编写具体测试代码、CI/CD 流水线配置、测试环境搭建。

## 测试类型选择矩阵

| 变更类型 | 单元测试 | 集成测试 | E2E 测试 | 性能测试 | 安全测试 |
|----------|----------|----------|----------|----------|----------|
| 纯逻辑/数据转换 | 必须 | 可选 | 不需要 | 不需要 | 不需要 |
| 接口变更 | 必须 | 必须 | 建议 | 按需 | 按需 |
| UI 变更 | 不需要 | 可选 | 必须 | 不需要 | 不需要 |
| 性能敏感路径 | 必须 | 必须 | 不需要 | 必须 | 不需要 |
| 安全相关 | 必须 | 必须 | 按需 | 不需要 | 必须 |
| 并发/异步逻辑 | 必须 | 必须 | 建议 | 建议 | 不需要 |

## 输入

| 输入类型 | 说明 | 必需 |
|----------|------|------|
| 代码变更内容 | diff 或变更描述 | 是 |
| 变更涉及的模块 | 受影响的模块名称 | 是 |
| 已有测试覆盖率 | 当前覆盖率数据和已有测试 | 否 |
| 项目技术栈 | 语言、框架、测试框架 | 否 |
| 质量要求级别 | 基础 / 标准 / 严格 | 否（默认标准） |

## 输出

- 测试影响面分析
- 按优先级分类的测试策略（P0/P1/P2）
- 每项测试的范围、类型和理由
- 覆盖率缺口分析
- 预估测试工作量

## 执行步骤

### 1. 分析变更影响面

```
分析变更影响面:
  IF 修改了公共 API/接口 → 影响面: 全部消费方, 优先级: P0
  IF 修改了内部工具函数 → 影响面: 直接调用方, 优先级: P1
  IF 修改了配置/常量 → 影响面: 所有引用点, 优先级: P1
  IF 修改了 UI 组件 → 影响面: 渲染路径, 优先级: P2
  IF 修改了测试代码本身 → 影响面: 测试套件, 优先级: P2
  IF 新增了功能 → 影响面: 新功能路径 + 边界条件, 优先级: P0
  IF 修复了 bug → 影响面: bug 路径 + 回归范围, 优先级: P0
```

### 2. 映射测试类型

根据变更类型和影响面，查测试类型选择矩阵确定需要的测试类型：

```
IF 变更涉及纯逻辑 → 单元测试（必须）
IF 变更涉及外部依赖交互 → 集成测试（必须）
IF 变更涉及用户可见行为 → E2E 测试（必须）
IF 变更涉及高并发/大数据 → 性能测试（建议）
IF 变更涉及认证/授权/数据处理 → 安全测试（建议）
```

### 3. 评估已有测试覆盖

```
覆盖率评估:
  FOR each 变更路径:
    IF 已有测试覆盖此路径 → 标记"已有覆盖", 评估是否需要更新
    IF 已有测试但断言不充分 → 标记"覆盖不足", 建议增强
    IF 无任何测试覆盖 → 标记"未覆盖", 建议新增

覆盖率缺口 = 所有"未覆盖" + "覆盖不足"的路径
```

### 4. 设计测试策略

```markdown
## 测试策略

### P0 — 必须测试（阻塞发布）
| 测试项 | 测试类型 | 范围 | 理由 |
|--------|----------|------|------|
| 用户创建接口返回格式 | 单元 + 集成 | POST /users | 公共 API 变更 |
| 新增字段的空值处理 | 单元 | UserService.create | 新增必填参数 |
| 回归: 用户列表分页 | 集成 | GET /users?page= | 修改了分页逻辑 |

### P1 — 应该测试（发布前完成）
| 测试项 | 测试类型 | 范围 | 理由 |
|--------|----------|------|------|
| 错误响应格式一致性 | 集成 | 所有错误码 | 修改了错误处理 |

### P2 — 建议测试（下个迭代补充）
| 测试项 | 测试类型 | 范围 | 理由 |
|--------|----------|------|------|
| 并发创建用户 | 性能 | POST /users | 新增了唯一性校验 |

### 覆盖率缺口
- src/services/UserService.ts: 当前覆盖率 45%, 建议达到 80%
- 新增代码路径未覆盖: 错误码映射逻辑、空值分支
```

### 5. 预估工作量

```
工作量估算:
  单元测试: 每个测试项 ~15 分钟
  集成测试: 每个测试项 ~30 分钟
  E2E 测试: 每个测试项 ~45 分钟
  性能测试: 每个测试项 ~1 小时
  安全测试: 每个测试项 ~1 小时

总计: P0 约 X 小时, P1 约 Y 小时, 全部约 Z 小时
```

## 边界与非目标

- **不做**编写具体测试代码 — 只设计策略，编写由用户执行
- **不做**代码 review — 这是 code-review-checklist 的职责
- **不做**重构建议 — 这是 refactoring-planner 的职责
- **不做**API 设计审查 — 这是 api-design-reviewer 的职责
- **不做**错误模式管理 — 这是 error-pattern-library 的职责
- 只设计测试策略，不涉及 CI/CD 流水线和测试环境

## 验收标准

- 每个测试项都有明确的测试类型、范围和理由
- P0 测试项覆盖了所有公共 API 变更和 bug 修复路径
- 覆盖率缺口分析指出了具体的未覆盖路径
- 工作量估算基于测试类型和测试项数量
- 没有将低优先级探索性测试标记为 P0

