测试数据管理是什么
测试数据管理为测试准备可控、可重复、合法合规的数据:覆盖边界与异常样本,并通过合成、脱敏、子集化等手段获得接近真实分布的数据。数据做不好,用例再精致也不可靠:环境重建后跑不动、样本失真导致假通过、生产数据未脱敏引发合规事故,三类问题都出在数据层。
基本信息
| 数据分类 | 主数据、事务数据、边界样本、异常样本 |
|---|---|
| 生成策略 | 合成生成(如 Faker)、生产子集脱敏、手工构造 |
| 隔离策略 | 用例自建自清、命名空间或租户隔离 |
| 合规要求 | 个人信息最小化,脱敏后评估可再识别性 |
| 可追溯 | 脚本化生成,数据能由代码重建 |
合成数据示例
合成数据示例
from faker import Faker
# 固定种子,保证本地产出与 CI 一致
Faker.seed(42)
fake = Faker('zh_CN')
user = {'name': fake.name(), 'phone': fake.phone_number()}
# 生成脚本入库,环境可随时重建典型使用场景
- 环境重建:用生成脚本在空环境一键造数,套件直接能跑。
- 边界覆盖:显式构造空值、极值与非法样本,正负用例都有料。
- 吞吐测试:按量级生成数据,为性能场景准备足量样本。
- 隐私合规:用脱敏子集替代生产数据,先评估再使用。
- 问题复现:把线上问题数据脱敏后固化为回归样本。
- 多人并行:按租户或命名空间隔离,避免互相踩数据。
手段与适用面
| 手段 | 适合 | 注意 |
|---|---|---|
| 合成生成 | 功能与接口测试 | 分布要贴近真实 |
| 子集脱敏 | 性能与报表验证 | 先评估可再识别性 |
| 手工构造 | 边界与异常样本 | 样本要入库复用 |
| 数据工厂 | 按需造数、自清理 | 接口化封装、可组合 |
测试数据应可重复生成:脚本化产出比在环境里手工维护更可追溯。
脱敏不是删列:替换、掩码、泛化、扰乱各有适用面,效果要按可再识别性评估。
生产数据只应通过审批的通道进入测试环境:直接复制一份「先用着」是常见的合规红线。