testcase-planner · git:20260915.bc5a8d6 · 2026-09-15 · sha256 5d09711042fd227d

testcase-planner git:20260915.bc5a8d6A

Immutable. This exact content is served forever at /api/v1/blob/5d09711042fd227d.

---
name: testcase-planner
description: 测试规划器 - 基于软件测试理论(场景法、等价类划分、边界值分析)将完备需求拆解为结构化的测试规划,输出测试项(ITEM)和测试点(POINT)。当用户执行 /testcase-plan 命令或需要生成测试规划时使用。
allowed-tools: Read, Write, Bash
---

# 测试规划 Skill

## 1. 目标

识别测试项(ITEM)和测试点(POINT),生成结构化测试规划。

## 2. 输入输出

- 输入:`clarified-requirements/` 目录(主要读取 `index.md`)
- 输出:`test-case/plan.md`

## 3. 核心原则

1. 场景优先:基于场景法识别测试点,而非等价类
2. 独立性:每个 POINT 是独立的操作路径
3. 完整性:覆盖所有业务模块和关键场景
4. 风险导向:评估风险等级,指导用例生成

## 4. 执行流程

### 4.1 层级定义

三层结构:

**ITEM(测试项)**:
- 业务模块或需求章节
- 示例:登录功能、订单管理、用户设置

**POINT(测试点)**:
- 独立的操作路径(场景)
- 示例:用户名密码登录、手机验证码登录、第三方登录

**备注**:
- 风险等级:Critical / High / Medium / Low
- 测试关注点:边界值、异常情况、业务规则等

### 4.2 ITEM 识别

按以下方式划分:

**方式1:按需求章节**
- 需求文档有明确章节结构时使用
- 示例:第3章"用户管理" → ITEM "用户管理"

**方式2:按业务实体**
- 需求文档无明确章节时使用
- 示例:涉及订单的所有功能 → ITEM "订单管理"

**方式3:按功能模块**
- 跨章节的功能集合
- 示例:所有登录相关功能 → ITEM "登录功能"

### 4.3 POINT 识别

基于场景法识别独立操作路径:

**判断标准**:
- 是否是独立的用户操作流程?
- 是否有不同的前置条件或触发条件?
- 是否有不同的业务规则?

**正确示例**:
- "用户名密码登录"、"手机验证码登录"、"第三方登录" → 3 个 POINT(不同操作路径)

**错误示例**:
- "密码长度 <8"、"密码长度 8-20"、"密码长度 >20" → 不是 3 个 POINT(同一场景的不同数据)
- 正确做法:合并为 1 个 POINT "用户名密码登录",在用例生成时覆盖密码长度的等价类

### 4.4 风险等级评估

4 个等级:

- **Critical**:核心业务流程,影响系统可用性
- **High**:重要功能,影响用户体验
- **Medium**:辅助功能,影响局部功能
- **Low**:边缘功能,影响较小

### 4.5 测试关注点提炼

从以下维度提炼:

- 边界值:长度、数量、时间等限制
- 异常情况:失败、超时、冲突等
- 业务规则:权限、状态、约束等
- 数据约束:格式、范围、依赖等

### 4.6 输出格式

```markdown
# 测试规划

## ITEM 名称

### POINT 名称
> 风险等级: Critical/High/Medium/Low
> 测试关注点: 具体关注点1、具体关注点2

### POINT 名称
> 风险等级: Critical/High/Medium/Low
> 测试关注点: 具体关注点1、具体关注点2
```

## 5. 示例

### 示例1:正确的 ITEM/POINT 划分

```markdown
# 测试规划

## 登录功能

### 用户名密码登录
> 风险等级: Critical
> 测试关注点: 密码错误次数限制(5次)、账户锁定(30分钟)、密码长度边界(8-20位)

### 手机验证码登录
> 风险等级: High
> 测试关注点: 验证码过期(60s)、错误次数限制(5次)、手机号格式验证

### 第三方登录(微信/支付宝)
> 风险等级: Medium
> 测试关注点: 授权失败处理、token过期处理、首次登录绑定流程
```

### 示例2:错误的 POINT 划分

```markdown
## 登录功能

### 密码长度小于8位
> 风险等级: High
> 测试关注点: 提示"密码长度不足"

### 密码长度8-20位
> 风险等级: High
> 测试关注点: 登录成功

### 密码长度大于20位
> 风险等级: High
> 测试关注点: 提示"密码长度超限"
```

**为什么错误**:这3个不是独立场景,而是同一场景(用户名密码登录)的不同数据。应该合并为1个 POINT "用户名密码登录",在用例生成时覆盖密码长度的等价类。

## 6. 脚本工具

### parse_plan.py

解析和验证 `plan.md` 文件,提取 ITEM/POINT 结构。

```bash
# 解析并验证(严格模式,格式错误时报错退出)
python testcase-planner/scripts/parse_plan.py test-case/plan.md

# 显示详细摘要(ITEM/POINT 列表、风险等级、测试关注点)
python testcase-planner/scripts/parse_plan.py test-case/plan.md --verbose

# 输出 JSON 格式(便于程序化处理)
python testcase-planner/scripts/parse_plan.py test-case/plan.md --json

# 非严格模式(仅警告不报错)
python testcase-planner/scripts/parse_plan.py test-case/plan.md --no-strict
```

**验证规则**:
- 缺少一级标题 `# 测试规划` → 错误
- 无任何 ITEM → 错误
- 无任何 POINT → 错误
- ITEM 名称 < 2 字符 → 错误;> 20 字符 → 警告
- POINT 名称 < 4 字符 → 错误;> 30 字符 → 警告
- ITEM 下无 POINT → 错误

## 7. 检查清单

- [ ] 所有业务模块都已识别为 ITEM
- [ ] 所有独立操作路径都已识别为 POINT
- [ ] 没有将等价类误识别为 POINT
- [ ] 每个 POINT 都有风险等级
- [ ] 每个 POINT 都有测试关注点
- [ ] 风险等级评估合理
- [ ] 测试关注点具体明确(有数值、有条件)
- [ ] 格式符合规范(## ITEM、### POINT、> 备注)
- [ ] 已通过 `parse_plan.py` 验证格式