skills/smithery.ai/generate-test

generate-test

SKILL.md

生成测试用例技能

技能概述

基于已完成的PRD(产品需求文档)和TDD(技术设计文档),AI辅助生成全面的测试用例文档草稿,提升测试设计效率。


使用场景

何时使用

  • ✅ PRD和TDD均已完成并评审通过
  • ✅ 需要快速生成测试用例草稿
  • ✅ 需要确保测试覆盖全面

何时不使用

  • ❌ PRD或TDD尚未完成
  • ❌ 需求和技术方案变更频繁
  • ❌ 完全定制化的测试场景(无需AI辅助)

前置条件

必需条件

  1. PRD文档已完成并评审通过(状态:🟢 已批准)
  2. TDD文档已完成并评审通过(状态:🟢 已批准)
  3. PRD包含完整的验收标准
  4. TDD包含完整的接口设计

可选条件

  • 测试策略已明确
  • 测试环境已准备
  • 自动化测试框架已选定

使用步骤

步骤1:定位PRD和TDD文档

AI操作

  1. 询问用户需求名称或文档路径
  2. 验证PRD和TDD文档存在且可读
  3. 检查文档状态是否为"已批准"
  4. 确认PRD和TDD版本对应

步骤2:分析PRD和TDD内容

AI分析要点

从PRD提取

  • 功能需求:每个功能点生成对应测试用例
  • 验收标准:转化为功能验收用例
  • 业务规则:生成业务逻辑测试用例
  • 异常处理:生成异常场景测试用例
  • 性能要求:生成性能测试用例
  • 安全要求:生成安全测试用例
  • 兼容性要求:生成兼容性测试用例

从TDD提取

  • 接口清单:生成接口测试用例
  • 数据库表结构:生成数据测试用例
  • 业务逻辑服务:生成集成测试用例
  • 错误码定义:生成错误场景测试用例

步骤3:确认测试策略

AI询问

基于PRD和TDD分析,我建议生成以下测试用例:

**功能测试** (覆盖率目标: 100%)
- 正向测试用例:[数量]
- 异常测试用例:[数量]
- 边界值测试用例:[数量]

**接口测试** (覆盖率目标: 100%)
- API接口测试:[数量]

**性能测试**
- 性能测试用例:[数量]

**安全测试**
- 安全测试用例:[数量]

**兼容性测试**
- 浏览器兼容性:[数量]
- 设备兼容性:[数量]

是否按照此策略生成?或者需要调整?

步骤4:生成测试用例草稿

模板使用说明

  • 模板位置:.cursor/skills/generate-test/templates/TCD_template.md
  • 模板变量替换:
    • {{需求名称}} → 实际需求名称
    • {{创建日期}} → 当前日期(YYYY-MM-DD)
  • AI应基于 测试用例模板 结构生成内容,替换占位符并填充实际内容

AI生成内容

一、测试概述

  • 基于PRD和TDD梳理测试范围
  • 明确测试目标
  • 定义测试策略

二、功能测试用例

生成规则

正向测试用例
对PRD每个核心功能生成至少1个正向用例:
- 用例编号:TC-{模块}-001
- 用例名称:[功能名称]-正常场景
- 前置条件:基于PRD梳理
- 测试步骤:基于PRD交互流程
- 预期结果:基于PRD验收标准
- 优先级:P0(核心功能)
异常测试用例
对PRD每个异常场景生成用例:
- 网络异常
- 权限异常
- 数据异常
- 参数错误
- 业务规则违反
边界值测试用例
对PRD数据字段生成边界测试:
- 字符串长度:最小值、最大值、超出范围
- 数字范围:最小值、最大值、零、负数
- 日期时间:过去、现在、未来
- 特殊字符:空格、表情符号、SQL注入

三、边界值测试

生成规则

  • 提取PRD和TDD中的所有数据字段
  • 为每个字段生成边界测试用例表格
  • 包含:最小值、最大值、超出范围、特殊值

四、异常场景测试

生成规则

  • 网络异常(断网、超时、慢网络)
  • 权限异常(未登录、Token过期、无权限)
  • 数据异常(数据为空、数据加载失败、并发冲突)
  • 系统异常(服务器错误、依赖服务不可用)

五、接口测试用例

生成规则

从TDD提取所有接口,为每个接口生成:

正常场景
- 请求参数:完整正确的参数
- 预期状态码:200/201
- 预期响应:符合接口定义的数据结构
参数异常
- 缺少必填参数 → 400
- 参数类型错误 → 400
- 参数格式错误 → 400
- 参数超出范围 → 400
认证和权限
- 无Token → 401
- Token过期 → 401
- 无权限 → 403
业务异常
- 资源不存在 → 404
- 业务规则冲突 → 400
- 数据重复 → 400
服务器异常
- 服务器内部错误 → 500

六、UI/兼容性测试

生成规则

基于PRD兼容性要求生成:

  • 浏览器兼容性测试表格
  • 设备分辨率测试表格
  • UI效果测试用例

七、性能测试用例

生成规则

基于PRD性能要求生成:

  • 页面加载时间测试
  • 接口响应时间测试
  • 并发压力测试
  • 长时间运行测试

八、安全测试用例

生成规则

标准安全测试用例:

  • SQL注入测试
  • XSS攻击测试
  • CSRF防护测试
  • 敏感信息泄露测试
  • 越权访问测试

九、回归测试清单

生成规则

  • 提取P0优先级的核心用例
  • 组成冒烟测试清单
  • 每次发布必须执行

十、测试数据准备

生成规则

基于TDD数据库设计生成:

  • 测试账号清单
  • 测试数据清单
  • 数据准备脚本建议

其他章节

  • 测试环境
  • 缺陷管理
  • 测试报告模板
  • 版本历史(初始化为v1.0)

步骤5:人工审核和完善

AI提示

✅ 测试用例草稿已生成:docs/需求文档/{年月}-{需求名称}/test/TCD.md

📊 生成统计:
- 功能测试用例:[数量]
- 接口测试用例:[数量]
- 性能测试用例:[数量]
- 安全测试用例:[数量]
- 总计:[数量]

📋 请人工审核和完善以下内容:
1. 测试用例是否覆盖PRD所有功能点
2. 边界值测试是否全面
3. 异常场景是否遗漏
4. 接口测试是否覆盖TDD所有接口
5. 测试数据是否充分

⚠️ 注意事项:
- AI生成的是草稿,复杂业务场景需人工补充
- 边界值需要根据实际业务调整
- 性能指标需要根据实际环境确定

✏️ 完善后请更新:
- 文档状态:🔵 草稿
- 测试负责人信息
- PRD和TDD版本号

步骤6:执行质量检查

AI自动检查

  • 所有必需章节已包含
  • 功能测试用例覆盖PRD核心功能
  • 用例编号符合规范(TC-XXX-001)
  • 用例包含优先级标注
  • 接口测试用例覆盖TDD接口清单
  • 至少有1个安全测试用例
  • 与PRD和TDD版本对应

输出检查报告


生成规则

测试用例生成映射

PRD功能需求 → 功能测试用例

每个PRD功能点 → 至少1个正向用例 + 至少1个异常用例

PRD核心功能 → 优先级P0
PRD重要功能 → 优先级P1
PRD辅助功能 → 优先级P2

PRD验收标准 → 验收测试用例

PRD验收标准每一项 → 1个对应的测试用例

验收标准任务列表:
- [ ] 功能完整 → TC-XXX-验收-001
- [ ] 性能达标 → TC-XXX-验收-002

TDD接口设计 → 接口测试用例

TDD每个接口 → 至少5个测试用例:
1. 正常场景
2. 缺少必填参数
3. 无Token
4. 无权限
5. 资源不存在(针对GET/PUT/DELETE)

POST接口额外增加:
6. 数据重复

GET列表接口额外增加:
6. 分页参数测试
7. 筛选参数测试

PRD异常处理 → 异常测试用例

PRD异常处理表格每一行 → 1个异常测试用例

| 异常场景 | 交互反馈 | 用户指引 |
→ 测试用例验证:触发异常 → 检查反馈 → 验证指引

用例编号规则

编号格式

TC-{模块代码}-{序号}

模块代码规则:
- 功能名称简写(3-5个字符)
- 全大写英文
- 避免特殊字符

示例:
- LOGIN:登录模块
- USER:用户管理
- ORDER:订单管理
- API:接口测试

编号分配

功能测试:TC-{模块}-001 ~ 099
接口测试:TC-API-001 ~ 099
性能测试:TC-PERF-001 ~ 099
安全测试:TC-SEC-001 ~ 099
UI测试:TC-UI-001 ~ 099
兼容性测试:TC-COMP-001 ~ 099

优先级分配规则

P0(必须):
- PRD核心功能的正向用例
- PRD验收标准的用例
- TDD核心接口的正常场景
- 关键安全测试用例

P1(重要):
- PRD重要功能的用例
- 边界值测试
- 异常场景测试
- 性能测试

P2(一般):
- PRD辅助功能的用例
- UI效果测试
- 兼容性测试

边界值自动生成规则

字符串字段

字段:username, length: 3-20

边界测试:
- 最小长度:3个字符 → 应该通过
- 最大长度:20个字符 → 应该通过
- 小于最小:2个字符 → 应该失败,提示"用户名至少3个字符"
- 大于最大:21个字符 → 应该失败,提示"用户名最多20个字符"
- 空字符串:"" → 应该失败,提示"用户名不能为空"
- 特殊字符:含空格/表情/SQL → 验证过滤规则

数字字段

字段:age, range: 0-150

边界测试:
- 最小值:0 → 应该通过
- 最大值:150 → 应该通过
- 负数:-1 → 应该失败
- 超出:151 → 应该失败
- 小数:18.5 → 根据业务规则
- 字符串:"abc" → 应该失败

日期字段

字段:birthday

边界测试:
- 过去日期 → 应该通过
- 今天 → 根据业务规则
- 未来日期 → 应该失败(生日不能在未来)
- 无效日期:2023-02-30 → 应该失败
- 格式错误:"2023/02/01" → 根据接口定义

覆盖率分析

功能覆盖率

功能覆盖率 = 已测试功能点 / PRD总功能点 × 100%

目标:核心功能100%,整体≥95%

接口覆盖率

接口覆盖率 = 已测试接口 / TDD接口总数 × 100%

目标:100%

代码覆盖率

单元测试覆盖率目标:≥80%
(在TDD中定义)

命令示例

基本用法

用户

基于PRD和TDD生成测试用例

AI

正在查找PRD和TDD文档...
找到PRD:docs/需求文档/202602-移动端首页改版/product/PRD.md (v1.0, 🟢已批准)
找到TDD:docs/需求文档/202602-移动端首页改版/develop/TDD.md (v1.0, 🟢已批准)

开始分析PRD和TDD...
- PRD功能点:8个
- TDD接口:12个
- 性能要求:3项
- 安全要求:5项

生成测试用例...
[生成过程]
✅ 测试用例草稿已生成

指定需求

用户

为"202602-移动端首页改版"生成测试用例

只生成部分测试

用户

只生成接口测试用例

AI

仅生成接口测试用例,跳过功能测试、性能测试等其他部分。

高级选项

选项1:测试深度

快速模式

  • 每个功能点1个正向用例
  • 核心接口的基本测试
  • 适合快速迭代

标准模式(推荐):

  • 每个功能点至少2个用例(正向+异常)
  • 所有接口的完整测试
  • 边界值和异常场景

详尽模式

  • 每个功能点多个场景覆盖
  • 所有接口的全面测试
  • 详细的边界值和异常场景
  • 性能和安全测试

选项2:自动化测试

生成自动化测试建议

可自动化的测试用例标注:
- [🤖可自动化] TC-LOGIN-001:用户名密码登录-正常场景
- [🤖可自动化] TC-API-001:获取用户列表-正常场景
- [👤需人工] TC-UI-001:按钮hover效果

常见问题

Q1: 测试用例生成需要多长时间?

A: 通常1-5分钟,取决于PRD和TDD的复杂度。

Q2: 生成的测试用例可以直接使用吗?

A: 不能。测试用例草稿需要人工审核,补充复杂业务场景的测试。

Q3: 测试覆盖率能达到多少?

A: AI能覆盖80-90%的常规场景,复杂业务逻辑和边界情况需人工补充。

Q4: 如果PRD或TDD有修改怎么办?

A: 使用"refine-requirement-docs"技能同步更新测试用例,或重新生成。

Q5: 生成的边界值测试合理吗?

A: AI会基于数据类型和长度生成标准边界测试,具体业务边界需人工调整。


检查清单

使用此技能后,确认以下内容:

  • PRD和TDD均已完成且评审通过
  • 测试用例草稿已生成
  • 功能测试覆盖PRD所有核心功能
  • 接口测试覆盖TDD所有接口
  • 用例编号符合规范
  • 用例包含优先级
  • 边界值测试已生成
  • 异常场景测试已生成
  • 性能测试用例已生成
  • 安全测试用例已生成
  • 已执行质量检查
  • 人工审核计划已安排

相关资源

规则

技能

模板


技能维护者: [填写]
最后更新: 2026-02-09
版本: v1.0

Weekly Installs
1
First Seen
4 days ago
Installed on
trae1