testcase-generator
测试用例生成器 - 基于等价类划分和边界值分析理论,按测试点(POINT)分批生成高质量测试用例,输出为 Markdown 格式。当用户执行 /testcase-gen 命令或需要生成测试用例时使用。
By chyax98 · 351 installs
npx skills add chyax98/twu --skill testcase-generator
Source repository · Upstream listing
测试用例生成器(testcase generator)
1. 目标
根据测试点生成结构化测试用例,覆盖正向、反向、边界场景。
2. 输入输出
输入 : test case/plan.md 、 clarified requirements/index.md 、 CLAUDE.md
输出 : test case/{ITEM}/{POINT}.md 、 test case/all cases.md
3. 核心原则
1. 策略指导 :提供判断标准,而非强制数量
2. 场景驱动 :基于实际场景复杂度生成用例
3. 数据具体 :测试数据必须具体,不用占位符
4. 可验证性 :预期结果必须明确可验证
触发条件
用户执行 /testcase gen 命令
test case/plan.md 存在
4. 核心理论
4.1 等价类划分法
将输入数据划分为若干等价类,从每类中选取代表性数据测试。
应用示例 :
4.2 边界值分析法
边界是最容易出错的地方。
边界三点法 : 离点(min 1) 上点(min) 内点(中间值) 上点(max) 离点(max+1)
应用示例 :
4.3 用例数量判断
不强制数量,根据场景复杂度自适应调整。
判断标准 :
输入项数量:输入项越多,用例越多
业务规则复杂度:规则越复杂,用例越多
风险等级:Critical 和 High 需要更多用例
测试关注点:关注点越多,用例越多
5. 用例格式规范
5.1 Markdown文本协议格式 (v0.2)
每个测试点生成一个 .md 文件,格式如下:
5.2 字段说明
优先级 :P1 P5(必填)
P1: 核心功能正向流程
P2: 基本功能正向流程
P3: 核心功能异常场景
P4: 边界条件
P5: 低频场景
[反向] :反向用例标记(可选)
测试类型 :功能、接口、性能、安全、兼容、易用、安装部署、可靠、本地化、可维护、可扩展、配置(12选1)
前置条件 :测试前的准备工作
测试步骤 :操作步骤,用句号分隔
预期结果 :期望的结果,与步骤一一对应
5.3 测试类型枚举(12种)
注意 :
不能写"功能测试",必须是"功能"
括号必须是中文括号
大小写敏感
5.4 步骤格式规范
推荐格式 : 使用中文句号分隔,编号连续
重要 : 编号必须从1开始,连续递增;测试步骤和预期结果的编号数量必须一致。
5.5 测试数据要求
必须具体,不用占位符:
正确示例 :
用户名:test user
密码:Test1234
手机号:13800138000
金额:99.99
错误示例 :
用户名:{valid username}
密码:{password}
手机号:{phone}
金额:{amount}
5.6 预期结果要求
必须明确可验证:
正确示例 :
跳转到 /home 页面,顶部显示"欢迎,test user"
提示"密码长度不足,请输入8 20位密码"
订单状态变为"已支付",库存减少1
错误示例 :
登录成功
提示错误信息
系统正常处理
5.7 目录结构
5.8 合并规则
将所有 {ITEM}/{POINT}.md 合并到 all cases.md :
1. 按 ITEM 分组
2. 每个 ITEM 下按 POINT 排序
3. 添加分隔标记: ITEM 名称 和 POINT 名称
6. 用例生成流程
Step 1: 准备上下文
Step 2: 理解测试点
对每个 POINT:
读取 POINT 名称、风险等级、测试关注点
读取需求文档中的相关描述
Step 3: 识别输入项
列出所有输入项(字段、参数、操作等)
识别输入项的约束条件
Step 4: 划分等价类和边界值
有效等价类 :符合规则的输入
无效等价类 :违反规则的输入
边界值 :临界点(最小值、最大值、临界值)
Step 5: 设计测试用例
基于以下策略设计:
核心思考框架 :
1. 输入分析
该场景涉及哪些输入项?
每个输入有什么约束(长度、格式、范围)?
2. 等价类识别
有效等价类:正常情况下的典型值
无效等价类:各种异常情况(空值、越界、格式错误)
3. 测试价值评估
这个等价类失败时,会暴露不同的缺陷吗?
如果和其他等价类的测试逻辑相同,是否可以合并?
测试关注点中提到的场景,如何在用例中体现?
4. 覆盖判断
有效流程至少有一个用例
核心异常场景已覆盖
边界条件根据实际情况选择
5. 用例设计
核心正向用例(P1):最常见的成功场景
基本正向用例(P2):其他有效等价类
核心异常用例(P3):关键失败场景
边界条件用例(P4):边界值测试
低频场景用例(P5):不常见但需覆盖的场景
用例质量标准 :
数据具体("test123",不要"正确用户名")
预期结果可验证("显示错误提示'用户名不能为空'",不要"提示错误")
命名规范(以"验证"开头)
Step 6: 生成完毕后统一校验
每个测试项(ITEM)生成完毕后,调用校验脚本检查格式
全部测试项生成完毕后,再次调用校验脚本进行整体检查
校验脚本路径: .claude/skills/testcase generator/scripts/validate.py
7. 示例
示例1:正确的用例(用户名密码登录)
示例2:综合场景(多输入项)
POINT : 广告账户列表 筛选功能
输入项分析 :
1. 时间范围: [今天 昨天 近7天 自定义]
2. 账户名称: [文本模糊搜索]
3. 账户状态: [正常 封禁 审核中]
生成用例(6个) :
说明 :
中等复杂度 POINT(多输入项)生成 6 个用例
覆盖:有效组合、无效边界、清空操作
选择 代表性用例 ,覆盖主要场景
示例3:错误的用例
为什么错误 :
测试数据使用占位符({username}、{password})
预期结果不可验证("登录成功"太模糊)
8. 检验流程
Step 1: 每个测试项生成完毕后
调用校验脚本检查格式:
脚本会输出日志,指出格式问题(如优先级错误、字段缺失等)。AI 分析日志,决定是否需要修改。
Step 2: 全部生成完毕后
再次调用校验脚本进行整体检查:
脚本会检查重复用例、格式一致性等。脚本只提供日志,不直接修改文件。AI 分析日志,决定是否需要调整。
Step 3: 生成质量报告
统计用例数量(按 ITEM、按优先级)
统计等价类覆盖率
统计边界值覆盖率
列出重复用例(如果有)
9. 检查清单
生成前检查
[ ] 已读取 test case/plan.md
[ ] 已读取 clarified requirements/index.md
[ ] 已读取 CLAUDE.md 业务背景
[ ] 理解测试项(ITEM)和测试点(POINT)的层级关系
每个POINT生成时检查
[ ] 每个 POINT 都已生成用例文件
[ ] 用例数量合理(基于场景复杂度)
[ ] 所有用例都有优先级(P1 P5)
[ ] 所有用例都有测试类型(12种之一)
[ ] 测试数据具体(无占位符)
[ ] 预期结果可验证(无模糊描述)
[ ] 测试步骤与预期结果数量一致
[ ] 用例标题以"验证"开头
治理阶段检查
[ ] 执行了全局校验脚本
[ ] 检查了重复用例
[ ] 格式符合规范(已通过 validate.py 检查)
[ ] 已生成 all cases.md
[ ] 无重复用例(已通过 validate.py check duplicates 检查)
[ ] 已生成质量报告
10. 脚本接口
validate.py
校验项 :
Schema格式
必填字段(优先级、测试类型、测试步骤、预期结果)
测试类型枚举(12种)
步骤编号连续性
步骤与预期结果数量一致性
等价类覆盖检查( check equivalence )
边界值覆盖检查( check boundary )
重复检测( check duplicates )
to excel.py
11. 异常处理
错误 处理方式
单文件校验失败 重试3次,仍失败则跳过并记录
用例数过多( 15) 提示检查是否有冗余等价类
缺少边界用例 警告并建议补充
缺少无效等价类 警告并建议补充异常场景
步骤编号不连续 报错并要求修正
测试类型不在枚举 报错并要求修正
步骤与预期数量不一致 报错并要求修正
导出失败 检查openpyxl依赖
12. 停止点
✅ 用例生成完成
产物 :
test case/{ITEM}/{POINT}.md 各测试点的用例文件
test case/all cases.md 所有用例汇总
质量保证 :
基于等价类理论生成
边界值全覆盖
用例数量合理(基于场景复杂度)
统计示例 :
下一步 :
人工审核测试用例
导出为 Excel 格式(可选)
根据业务理解调整用例