测试数据准备与合成数据
概述
当数据工作需要真实的测试输入、但又不能依赖不安全生产数据副本时,可使用此技能。它帮助智能体判断何时使用脱敏子集、合成数据、种子夹具(seeded fixtures)或符合契约结构的测试数据集。
适用场景
- 构建低环境验证数据集;
- 准备集成测试或 QA 数据;
- 创建具代表性的演示或训练数据集;
- 生成保留数据形状与边缘情况的合成数据;
- 为管道、dbt 或 Spark 作业定义种子夹具。
不要默认认为生产副本是测试的标准答案。
工作流程
- 定义测试目标。 明确数据是用于:
- 契约验证;
- 业务逻辑测试;
- 性能演练;
- UI 或仪表盘测试;
- 演示或训练用途。
- 选择合适的测试数据来源。 在以下选项间做决定:
- 基于契约生成的合成数据;
- 脱敏或令牌化的生产子集;
- 为狭窄边缘情况手工编写的夹具;
- 在严格控制下采样的低环境副本。
- 保留重要的行为特征。 包含:
- 边缘情况;
- 空值模式;
- 基数与偏斜;
- 延迟或重复事件;
- 分区或日期范围覆盖。
- 移除对生产环境的不安全依赖。 确保:
- 标识符已脱敏或被替换;
- 敏感值不可恢复;
- 重新生成测试集不需要密钥和直接的生产连接。
- 对数据集进行版本化与文档记录。 记录:
- 生成方法;
- 预期用途;
- 刷新频率;
- 与生产行为的差异与局限。
常见借口
- “我们需要真实数据,否则测试没有意义。” 现实:只要保留了正确的形状与边缘情况,许多测试目标用合成数据或脱敏数据即可满足。
- “快速复制一份生产数据更快。” 现实:不安全的低环境副本往往会变成长期存在的风险面。
- “只取顺利路径的样本就足够了。” 现实:省略了偏斜、空值、重复或边界条件的测试数据会带来虚假的信心。
危险信号
- 低环境依赖生产环境的实时抽取;
- 合成数据忽略了引发故障的边缘情况;
- 脱敏数据集仍可能泄露身份或业务敏感值;
- 无人能够安全地复现或刷新测试数据集。
验证
- 测试目标明确;
- 所选测试数据策略与所需风险和真实性匹配;
- 敏感值已被移除或适当保护;
- 在相关处体现边缘情况、偏斜与重放行为;
- 数据集可以被安全地重新生成或刷新。