AI 辅助生成测试数据与边界用例:从字段画像到可复现的用例集
测试最怕的不是用例写得少,而是数据造得假:主流程全是理想值,一到边界、异常和组合场景就现原形。本文介绍一种可落地的做法——先给字段做画像,再让 AI 按约束生成测试数据与边界用例,最后把结果固化成可复现的用例集,让回归测试每次都能跑出同样的覆盖面。
一、为什么测试数据总在关键时刻掉链子
手工造数常见三个问题:第一,只覆盖“ happy path ”,空值、超长、负数、跨月、时区这类输入根本没出现;第二,数据之间没有关联,例如订单金额与优惠金额对不上,测的其实是脏数据;第三,数据不可复现,这次发现的问题下次换一批数据就复现不了,定位成本很高。
AI 生成数据的价值不在于“多”,而在于“按约束批量产出”:把字段规则、业务约束和边界条件写清楚,模型负责穷举组合,人负责评审和锁定。
二、先画像,再生成:三步拿到字段清单
步骤 1:列出字段画像表
对每个关键字段记录五项:类型与长度、取值范围、是否可空、枚举或格式约束、与其他字段的关系。例如:
- 订单金额:数值,0.01 至 999999.99,保留两位小数,不可为空;
- 优惠金额:数值,大于等于 0,且不得大于订单金额;
- 下单时间:日期时间,不得晚于当前时间,跨时区统一用 UTC 存储;
- 手机号:11 位数字,首位为 1,第二位在 3 至 9 之间。
步骤 2:把约束写成可校验的提示词
不要只说“生成一些测试数据”,要把约束逐条写进提示词,并要求输出结构化结果,例如 JSON 数组,每条数据附带“预期结果”和“覆盖的边界类型”。约束越具体,幻觉越少。
步骤 3:生成后先校验,再入库
生成的数据必须先跑一遍规则校验:格式、范围、关联关系、唯一性,校验不通过的直接打回或人工修正。未经校验的数据不要直接进入测试库,否则测出来的失败可能是数据本身的问题。
三、边界用例的生成清单:六类必覆盖
- 空值与缺失:必填字段为空、可选字段缺失、空字符串与 null 的区别;
- 临界值:最小值、最小值减一、最大值、最大值加一,例如金额 0.01、0、999999.99、1000000.00;
- 格式边界:超长字符串、特殊字符、全角与半角、首尾空格;
- 关联边界:优惠等于订单金额、优惠大于订单金额、折扣后金额为零;
- 时间边界:月初与月末、闰年 2 月 29 日、跨时区、夏令时切换前后;
- 组合边界:两个边界同时出现,例如“最大金额 + 最大优惠 + 跨月退款”,这类组合最容易暴露隐藏假设。
四、一个可复现的生成流程示例
以“订单优惠计算”为例,流程如下:
- 输入字段画像表和业务规则,明确金额、优惠、时间的约束;
- 要求 AI 输出 30 条数据,覆盖上述六类边界,每条标注预期应收金额和判定依据;
- 用脚本校验金额关系与格式,把通过的数据写入用例库,并用固定随机种子保存生成参数;
- 回归时不再重新随机生成,而是直接复用这份用例集,失败时可以精确定位到某一条数据的某一个边界。
示例数据(节选):订单金额 100.00、优惠 100.00,预期应收 0.00,覆盖“优惠等于订单金额”;订单金额 0.01、优惠 0.01,预期应收 0.00,覆盖“最小金额组合”;订单金额 999999.99、优惠 0,预期应收 999999.99,覆盖“最大金额”。
五、落地检查清单:发布用例前自查
- 每条数据是否都有明确的预期结果,而不是“跑通就行”;
- 边界类型是否标注齐全,能否一眼看出它在测什么;
- 是否剔除了真实用户信息,手机号、身份证、地址一律用虚构数据;
- 生成参数与随机种子是否已保存,下次能否原样复现;
- 失败用例是否单独成组,便于回归时优先执行。
结语
AI 生成测试数据的正确姿势是“约束先行、校验兜底、复现收尾”:人负责定规则和评审,模型负责穷举和组合。把字段画像、边界清单和生成参数沉淀下来,测试数据就不再是一次性消耗品,而是一份可以反复使用、持续增补的资产。
- 点赞
- 收藏
- 关注作者
评论(0)