测试用例Skill小记
记录一个迭代了多次的用于生成测试用例的Skill
技能的目标:当用户希望生成、补全或评审 测试用例时,助手可基于用户提供的“需求摘要 / PRD / 页面流程 / 接口定义 / 现有用例草稿”等输入,按上述模板生成可直接复制到文档系统、整理后导入用例库或继续评审的测试用例;缺项用占位提示补全;若提供的是已有用例,则输出符合性检查结果(如是否可执行、是否可验证、是否覆盖关键路径、是否关联需求)并给出必改/建议清单。
SKILL.md
---
name: test-case
description: 按模板生成、补全或评审 测试用例(test cases);适用于提到「写测试用例」「生成 case」「补全这批 QA case」「按模板写测试 case」「评审这组用例」或提及测试用例、test case、QA case 时。
---
# 测试用例技能
当用户要求生成、补全或评审测试用例时,按以下模板与规范输出。
## 执行前
- **输入范围**:用户提供的 PRD/需求摘要、页面流程、接口说明、交互原型、已有测试用例草稿,或指定的功能模块。若用户只说「写测试用例」「生成 case」等未提供任何上下文,先询问:功能/模块名称、对应需求 ID、测试目标(功能/异常/边界/回归)、输出格式(表格或列表),再生成。
- 确认至少有**功能主题 + 需求或流程信息**后,再按下方模板输出;缺项用 `[请补充:xxx]` 占位。
## 输出模式
根据用户意图,选择以下模式之一:
1. **生成模式**:从需求/流程直接生成一组测试用例。
2. **补全模式**:对已有用例补充缺失字段、异常场景、边界 case 或追溯信息。
3. **评审模式**:检查已有用例是否完整、可执行、可验证、可追溯,并输出必改 / 建议 / 可选清单。
## 用例结构(必填字段)
每条用例至少包含以下字段:
1. **用例 ID**:如 `TC-001`,若用户未指定编号规则,可用 `[待编号]`。
2. **标题**:一句话说明验证场景,建议格式为「模块 - 场景 - 预期」。
3. **关联需求**:需求 ID、用户故事 ID、接口或页面标识;无则写 `[请补充需求来源]`。
4. **前置条件**:账号状态、环境、数据、开关或依赖准备;无则写「无」。
5. **测试步骤**:按顺序编号,每步只写一个动作或一个关键验证点。
6. **预期结果**:与步骤或整条用例对应,必须可观察、可判断通过/失败。
7. **优先级**:P0/P1/P2 或团队约定级别;未指定则根据主路径/高风险场景判断。
## 用例结构(可选字段)
- **测试类型**:冒烟 / 功能 / 回归 / 异常 / 边界 / 兼容性 / 权限。
- **测试数据**:明确输入数据、样本或账号。
- **备注**:依赖限制、暂不覆盖说明、相关缺陷单。
- **执行结果字段**:结果、执行人、执行时间、缺陷单号(若团队把设计与执行放在同一模板中)。
## 用例书写规范
- **标题**:避免笼统写法(如「登录测试」),改为具体场景(如「登录 - 输入正确账号密码后成功进入首页」)。
- **步骤**:必须可执行,避免「进行登录操作」这类抽象描述,改为「输入已注册邮箱与正确密码,点击登录按钮」。
- **预期结果**:必须可验证,避免「功能正常」「结果正确」,改为「跳转至首页,页面右上角显示用户名,接口返回 200 且 body 含 token」。
- **覆盖分类**:默认优先覆盖主路径、异常路径、边界条件;若用户只要求核心 case,可先生成 P0/P1。
- **关联需求**:每条用例至少关联一个需求 ID 或来源描述,避免孤立 case。
- **避免重复**:多个 case 仅在输入或前置条件不同的,应明确区分差异,不要只换标题。
## 输出格式
- 默认输出为 **Markdown 表格**;若步骤较长或每步都需写预期,可改为**分条列表**。
- 若生成的是一组用例,先给出**覆盖范围摘要**(覆盖了哪些主路径/异常/边界),再给出 case 明细。
- 占位符统一为 `[请补充:xxx]` 或 `[待确认]`。
## 示例输出(节选)
```markdown
## 覆盖范围摘要
- 核心登录成功路径
- 密码错误异常路径
- 未注册邮箱异常路径
- 密码为空边界场景
| 用例 ID | 标题 | 关联需求 | 前置条件 | 步骤 | 预期结果 | 优先级 | 类型 |
|---------|------|----------|----------|------|----------|--------|------|
| TC-001 | 登录 - 正确账号密码登录成功 | R1 | 用户已注册且账号状态正常 | 1. 打开登录页 2. 输入已注册邮箱 3. 输入正确密码 4. 点击登录 | 跳转至首页,显示登录态,接口返回 200 且含 token | P0 | 功能 |
| TC-002 | 登录 - 密码错误时提示错误信息 | R1 | 用户已注册且账号状态正常 | 1. 打开登录页 2. 输入已注册邮箱 3. 输入错误密码 4. 点击登录 | 页面提示“账号或密码错误”,停留在登录页,不创建登录态 | P0 | 异常 |
| TC-003 | 登录 - 密码为空时按钮置灰或提示必填 | R1 | 无 | 1. 打开登录页 2. 输入已注册邮箱 3. 密码留空 4. 点击登录按钮 | 按钮不可点击或提示“密码不能为空”,不发起登录请求 | P1 | 边界 |
```
若用户提供的是**已有测试用例**并要求「评审」「检查是否规范」,则输出:符合项 ✓、缺失字段、不可执行步骤、不可验证预期、未覆盖的关键场景;按 **必改 / 建议 / 可选** 分级,并给出修改建议。
reference.md
# 测试用例模板与书写规范参考
本文件供 test-case 技能在需要时查阅,与 SKILL.md 中的用例结构一致并展开细节。
---
## 一、完整测试用例模板(表格版)
```markdown
| 用例 ID | 标题 | 关联需求 | 前置条件 | 步骤 | 预期结果 | 优先级 | 类型 | 备注 |
|---------|------|----------|----------|------|----------|--------|------|------|
| TC-001 | | | | | | P0 | 功能 | |
```
---
## 二、完整测试用例模板(列表版)
```markdown
### TC-001 [标题]
- 关联需求:R1
- 前置条件:
- 优先级:P0
- 类型:功能
- 步骤:
1. ...
2. ...
- 预期结果:
1. ...
2. ...
- 备注:
```
---
## 三、标题与步骤书写规范
### 标题
- 推荐格式:**模块 - 场景 - 预期**。
- 示例:`注册 - 输入合法手机号验证码后注册成功`。
### 步骤
- 每步一个动作,必要时拆分输入与点击。
- 尽量避免跨多页面、多前置条件混写在一条 case 中。
### 预期结果
- 可观察、可判断通过失败。
- 能写接口返回、页面提示、状态变更时尽量写具体。
---
## 四、覆盖维度清单(示例)
- **主路径**:正常输入、成功流程。
- **异常路径**:错误密码、无权限、服务端异常。
- **边界场景**:空值、最大长度、最小长度、重复提交。
- **状态组合**:已登录/未登录、已实名/未实名、开关开/关。
- **兼容性**:浏览器、机型、系统版本(若适用)。
可按模块维护“常见漏测点清单”,供生成 case 时补齐。
---
## 五、优先级定义(占位)
- **P0**:核心主路径、阻塞发布的高风险场景。
- **P1**:重要分支与常见异常场景。
- **P2**:边界、低频、体验优化类场景。
将上述定义替换为团队实际约定即可。
---
## 六、内部链接(占位)
- 用例库:\[团队内部链接]
- 需求系统:\[团队内部链接]
- 缺陷系统:\[团队内部链接]
