测试用例生成器 (Test Case Generator)
帮助用户把任何被测对象(SUT, System Under Test)的描述转化为系统化、可执行、可覆盖的测试用例集。
何时使用本 Skill
- 用户给出需求/PRD/用户故事,要求"生成测试用例"
- 用户提供接口文档(OpenAPI/Swagger、GraphQL、RPC)、函数签名或代码片段,要求覆盖测试
- 用户要求做"边界值""异常/负面""回归""冒烟""安全""性能"等专项测试
- 用户要求把已有测试清单整理成标准格式或导出成文件
核心工作流
生成测试用例请遵循以下步骤,按顺序推进:
1. 明确被测对象 (Clarify SUT)
→ 确定测试层级:单元 / 接口(API) / 集成 / UI / 端到端
→ 确定测试类型:功能 / 边界 / 异常 / 安全 / 性能 / 兼容 / 易用
2. 解析输入 (Parse Input)
→ 提取被测功能点、规则、约束、输入域、状态、依赖
3. 选择测试设计技术 (Select Techniques)
→ 依据输入形态与风险,从下方"技术选择指南"挑 1–N 种技术
→ 高风险/核心路径优先覆盖
4. 生成用例 (Generate Cases)
→ 严格按"测试用例结构"输出,每条用例可追溯到一个需求点/技术
5. 补充专项 (Add Specialized Cases)
→ 必加:异常流、边界、空值/超长/越权、幂等、并发(如适用)
6. 格式化与导出 (Format & Export)
→ 默认 Markdown 表格;需要文件时调用 scripts/export_testcases.py
> 关键原则:每条测试用例都必须包含「可独立执行的步骤」和「明确的预期结果」。不要只写测试点/检查项——那是测试场景,不是测试用例。先有场景,再展开为用例。
输入形态与处理要点
| 输入形态 | 关键解析点 | 推荐技术 |
|---|---|---|
| 需求文档 / PRD | 功能点、业务规则、约束、验收标准 | 场景法、决策表、等价类 |
| 用户故事 | 验收标准(AC)、角色-动作-价值 | 场景法、用例法 |
| OpenAPI / 接口文档 | 路径、方法、参数类型、必填、枚举、状态码 | 边界值、等价类、异常 |
| 函数 / 代码 | 参数类型、分支、异常抛出、返回值 | 边界值、分支覆盖、异常 |
| 状态机 / 流程 | 状态、事件、迁移条件、终态 | 状态迁移法 |
| UI / 页面 | 输入控件、校验规则、交互反馈 | 等价类、边界值、易用性 |
若用户输入含歧义(如未说明必填/边界),先基于合理假设生成并在表格末尾标注假设,不要反复追问打断流程;仅在关键信息缺失(如完全无功能描述)时向用户澄清。
测试设计技术选择指南
技术细节见 references/techniques.md。速查:
- 等价类划分:把输入域分为有效/无效等价类,每类取代表值 → 减少用例数同时保持覆盖。
- 边界值分析:在等价类边界及相邻值取用例(min、min+1、max、max-1、边界外)。
- 决策表:多条件组合 → 列条件桩/动作桩,覆盖所有规则。
- 状态迁移:针对状态机,覆盖合法迁移、非法迁移、环状迁移。
- 场景法 / 用例法:按基本流+备选流生成端到端路径。
- 错误推测:基于经验补充异常/破坏性输入。
- 正交/组合:参数组合爆炸时,用最小组合保证两两覆盖。
测试用例结构(每条必含字段)
用例ID : TC-<模块>-<序号> 例: TC-LOGIN-001
所属模块 : 功能/子系统名称
用例标题 : 一句话描述被测点与预期
测试类型 : 功能 | 边界 | 异常 | 安全 | 性能 | 兼容 | UI | 回归
优先级 : P0(核心/阻断) / P1(重要) / P2(一般)
设计技术 : 等价类划分 / 边界值 / 决策表 / 状态迁移 / 场景法 ...
预置条件 : 执行前系统应有的状态/数据/权限
测试步骤 : 1. ... 2. ... 3. ... (可独立复现)
测试数据 : 具体输入值(含边界值、无效值)
预期结果 : 可观测、可判定的结果(状态码/界面/数据/日志)
完整模板与示例见 references/templates.md。
输出格式
默认:Markdown 表格(直接回复用户)
| 用例ID | 模块 | 标题 | 类型 | 优先级 | 预置条件 | 测试步骤 | 测试数据 | 预期结果 | 技术 |
|--------|------|------|------|--------|----------|----------|----------|----------|------|
| TC-LOGIN-001 | 登录 | 正确账号密码登录成功 | 功能 | P0 | 已注册用户 | 1.打开登录页 2.输入账号密码 3.点击登录 | user=alice, pwd=Pass@123 | 跳转首页,返回200,写入会话 | 等价类 |
文件导出(需要 .xlsx / .csv 时)
将用例整理为 JSON(schema 见 assets/testcase_schema.json),然后运行:
python3 scripts/export_testcases.py --input cases.json --format xlsx --output cases.xlsx
# 支持 --format csv / markdown;可同时 --format all
脚本会自动生成表头、设置列宽、按优先级排序并着色。
质量自检清单
生成后对照检查:
- [ ] 每个功能点/业务规则都至少一条用例
- [ ] 每条用例步骤可独立执行、预期结果可判定
- [ ] 已覆盖:正常流 + 异常流 + 边界 + 必填/空值/越权
- [ ] 高风险(P0)优先且完整
- [ ] 用例ID唯一、可追溯需求