| name | test-data-generator |
| description | 当测试用例设计完成后需要具体测试数据,或用户明确要求生成测试数据、构造数据集时激活。负责根据字段约束、业务规则和测试目标,生成覆盖正常值、边界值、异常值的完整测试数据集,支持多种数据类型和格式。 |
测试数据生成 Skill
激活场景
- test-case-design 完成后,用例中存在「测试数据待定」或测试数据不够具体
- 用户要求「生成测试数据」「构造数据集」「给出具体的测试值」
- 用户提供字段规格要求生成对应的数据集
- 需要为参数化测试生成数据驱动的输入集合
数据类型生成策略
字符串类型
正常值:
- 典型业务值(「张三」「test@example.com」)
- 最短有效值(1个字符)
- 最长有效值(maxLength个字符)
边界值:
- maxLength - 1 个字符
- maxLength 个字符
- maxLength + 1 个字符(预期拒绝)
异常值:
- 空字符串 ""
- 纯空格 " "
- 特殊字符 "!@#$%^&*()"
- SQL注入 "'; DROP TABLE users; --"
- XSS注入 "<script>alert(1)</script>"
- Unicode "中文测试"
- 超长字符串(1000个字符)
数字类型
正常值:
- 典型业务值(18岁、100元)
- 中间值(min + max)/ 2
边界值:
- min - 1(预期拒绝)
- min
- min + 1
- max - 1
- max
- max + 1(预期拒绝)
异常值:
- 0
- -1
- 负最大值
- MAX_INT(2147483647)
- 小数(如果期望整数)
- 非数字字符串("abc")
日期/时间类型
正常值:
- 今天
- 昨天
- 明天
- 业务典型日期
边界值:
- 最早有效日期
- 最晚有效日期
- 闰年2月29日
- 月末(1月31、3月31等)
异常值:
- 无效日期(2月30日)
- 过去的过期日期(如果不允许)
- 格式错误("2024/13/45")
- 空值
枚举/状态类型
正常值:所有合法枚举值(逐一测试)
异常值:
- 不存在的枚举值("INVALID_STATUS")
- 大小写变体("active" vs "ACTIVE")
- 数字替代(如果期望字符串)
- 空值
列表/数组类型
正常值:
- 典型元素数量
- 单元素列表
边界值:
- 空列表 []
- 最大允许元素数
- 最大允许元素数 + 1(预期拒绝)
异常值:
- null
- 包含非法元素的列表
- 重复元素
标准数据集模板
### 字段:{字段名}
**类型**:{数据类型}
**约束**:{长度/范围/格式约束}
**业务规则**:{相关业务规则}
| 场景 | 测试值 | 预期行为 | 对应用例 |
|------|--------|---------|----------|
| 正常-典型值 | 张三 | 接受 | TC-001 |
| 正常-最短 | 李 | 接受 | TC-002 |
| 边界-最长 | [50字符字符串] | 接受 | TC-003 |
| 边界-超长 | [51字符字符串] | 拒绝,提示「最多50字符」 | TC-004 |
| 异常-空值 | "" | 拒绝,提示「不能为空」 | TC-005 |
| 异常-特殊字符 | <script> | 拒绝或转义 | TC-006 |
执行流程
Step 1:字段规格提取
从需求文档或用例描述中提取每个字段的:
- 数据类型
- 长度/范围约束
- 格式要求(正则、枚举值)
- 必填/可选
- 业务规则(唯一性、关联关系)
Step 2:数据集生成
按上述数据类型生成策略,为每个字段生成完整数据集。
Step 3:组合数据构造
对于多字段表单,构造组合测试数据:
- 全合法组合:所有字段合法值(基准测试)
- 单字段异常组合:一个字段异常,其余合法(逐一测试)
- 关键组合:业务规则要求的特定字段组合
Step 4:数据与用例关联
将生成的测试数据与对应用例编号关联,更新用例中的测试数据字段。
Step 5:数据集整理输出
输出结构化数据集,支持:
- Markdown 表格(便于阅读)
- JSON 数组(便于自动化测试使用)
输出规范
- 📊 字段分析摘要:涉及字段数、生成数据条数
- 📋 按字段的数据集:每个字段的完整测试数据集(含预期行为)
- 🔗 用例-数据关联表:数据与用例编号的映射
- ⚡ 自动化友好格式:JSON 格式的参数化数据集
关键约束
🔢 真实性:生成的测试数据必须真实可用,不能使用「xxx」「aaa」等占位符。
⚖️ 完整性:每个字段必须覆盖正常值、边界值、异常值三类。
🔗 关联性:数据集中必须标注每条数据对应的用例编号。
🚫 安全性:生成的SQL注入、XSS等攻击性数据仅用于安全测试,需明确标注。