测试数据准备可以按“定场景—定数据画像—选生成方式—脱敏与校验—入库登记—按需发放与回收”六步推进。每一步都明确输入、动作、输出和完成标志,测试人员拿到的是可追溯、可复用的数据,临时手工改库的情况会明显减少。下面给出可直接照做的流程、角色分工、订单场景示例和交付前检查清单。
要点总览(TL;DR)
- 测试数据准备按“定场景—定数据画像—选生成方式—脱敏与校验—入库登记—按需发放与回收”六步推进,前四步串行,登记与发放准备可并行,回收在测试结束后统一执行。
- 数据场景从测试用例的前置条件反推,字段清单要写清字段名、类型、取值范围、约束和关联关系,场景清单在用例评审通过后冻结。
- 造数方式按数据量、真实性要求和合规限制选择:少量简单用手工,大批量用脚本,需要真实分布用脱敏复制,需走业务校验用接口生成,也可组合使用。
- 角色按“谁定义、谁生产、谁校验、谁使用”分工,测试负责人、数据管理员、开发或DBA、测试执行人各有明确交付物和交接时点。
- 交付前逐项核对完整性、准确性、合规性、可重复使用、环境隔离和登记闭环,任一项不通过即暂停发放。
测试数据准备的核心步骤与操作顺序
六步流程的依赖关系是:场景决定数据画像,数据画像决定造数方式,造数完成后必须经过脱敏与校验才能入库,入库登记之后才允许发放。前四步串行,入库登记可与发放准备并行,回收在测试结束后统一执行。跳过任何一步,后续环节都会返工。
| 步骤 | 输入 | 动作 | 输出 | 完成标志 |
|---|---|---|---|---|
| 1. 定场景 | 本轮测试用例、需求说明 | 测试负责人圈定用例涉及的数据场景,标注正常、边界、异常三类 | 数据场景清单 | 场景清单经评审并冻结 |
| 2. 定数据画像 | 数据场景清单 | 数据管理员按场景拆出字段名、类型、取值范围、约束和关联关系 | 字段清单 | 字段清单与用例逐条对应,无遗漏字段 |
| 3. 选生成方式 | 字段清单、数据量、合规要求 | 确定手工、脚本、脱敏复制或接口生成,或组合方案 | 造数方案说明 | 方案写明方式、责任人、预计产出时间 |
| 4. 脱敏与校验 | 原始数据或生成数据、脱敏规则 | 开发或DBA执行脱敏,测试人员按字段清单抽样校验 | 脱敏后的数据集、校验记录 | 敏感字段全部处理,抽样校验通过 |
| 5. 入库登记 | 校验通过的数据集 | 数据管理员将数据放入指定测试库或数据池,登记来源、版本、有效期 | 数据登记记录 | 登记信息完整,可凭记录定位到具体数据集 |
| 6. 发放与回收 | 测试人员的领取申请 | 按需分配数据,测试结束后统一回收或清理 | 领用记录、回收记录 | 领用与回收记录一一对应,无遗留数据 |
小团队可以把第1、2步合并为一次半小时的用例走查,由测试负责人直接产出场景与字段合一的清单。多项目并行时,各项目独立走第1至4步,第5步入库登记集中到共享数据池,由数据管理员统一编号,避免同一份数据被两个项目同时修改。回收环节按项目分别登记,防止互相覆盖。
数据场景与字段清单怎么定
数据场景从测试用例反推:逐条阅读用例的前置条件和操作步骤,把“需要已存在的某类记录”提取出来,归并重复项,形成场景清单。例如一条“验证订单超时自动关闭”的用例,反推出的场景是“存在一笔超过支付时限且未支付的订单”。场景描述用业务语言,不写字段。
字段清单把每个场景翻译成可核对的数据画像,建议包含以下要素:
- 字段名与所属表或对象,标明主键与外键;
- 数据类型与长度,例如金额保留两位小数;
- 取值范围与枚举值,例如订单状态限定为待支付、已支付、已关闭;
- 约束条件,例如必填、唯一、格式校验;
- 关联关系,例如订单关联用户、商品、支付流水,并注明关联数量。
覆盖方式上,正常值保证主流程可跑通;边界值按字段约束取上下限,如金额取0.01和单笔上限;异常值覆盖空值、超长、非法格式和状态冲突;批量数据按性能或分页测试的需要确定量级,例如列表页测试准备略多于单页条数的记录。场景清单在用例评审通过后冻结,冻结后新增场景走变更记录,避免测试中途反复改口径。
造数方式怎么选:手工、脚本、脱敏复制与接口生成
选择造数方式主要看三个条件:数据量、对真实性的要求、合规限制。数据量小且结构简单时手工构造最快;需要成百上千条且结构固定时脚本批量生成更可控;需要贴近真实分布时用生产数据脱敏复制;系统提供稳定写入接口时,接口生成能保证数据经过业务校验。
| 方式 | 适用条件 | 数据量 | 真实性 | 可重复性 | 合规风险 |
|---|---|---|---|---|---|
| 手工构造 | 少量、结构简单、临时验证 | 小 | 中 | 低,依赖个人操作 | 低 |
| 脚本批量生成 | 大批量、字段规则明确 | 大 | 中,需自行设计分布 | 高,脚本可版本化 | 低 |
| 生产数据脱敏复制 | 需要真实分布、关联复杂 | 大 | 高 | 中,依赖脱敏流程 | 中高,须先脱敏 |
| 接口调用生成 | 系统有稳定写入接口、需通过业务校验 | 中到大 | 高 | 高,可脚本化调用 | 低 |
组合使用的常见优先级是:先用脱敏复制获取一批基础数据,再用脚本在其上补充边界和异常记录,接口生成用于需要走完整业务链路的场景。脱敏规则的基本要求是:姓名、手机号、身份证号、地址、银行卡号等直接标识信息做替换或掩码;金额、日期等业务字段在保持分布特征的前提下做扰动;关联字段的脱敏结果保持一致,避免订单与用户对不上。校验方式是抽取样本比对脱敏前后记录数、关联完整性和字段格式,确认无原始敏感值残留。
角色分工与交付物
数据准备涉及四类角色,职责边界按“谁定义、谁生产、谁校验、谁使用”划分,交接物必须可查。
| 角色 | 职责边界 | 交付物 | 交接时点 |
|---|---|---|---|
| 测试负责人 | 定义数据场景,确认覆盖范围,冻结清单 | 数据场景清单 | 用例评审通过后 |
| 数据管理员 | 编制字段清单,组织造数,执行入库登记与发放回收 | 字段清单、登记记录、领用与回收记录 | 造数前、入库时、测试结束后 |
| 开发或DBA | 提供造数脚本、执行脱敏、处理数据冲突 | 造数脚本、脱敏规则与执行记录 | 造数方案确定后、校验前 |
| 测试执行人 | 领取数据、按用例使用、反馈数据问题、配合回收 | 校验反馈、领用确认 | 领取时、测试结束时 |
数据申请与审批的流转方式是:测试执行人提交申请,写明场景编号、所需数据量和用途;数据管理员核对字段清单后审批;涉及生产数据复制的申请增加合规或安全负责人审批。跨团队协作时,数据归属方指定一名数据管理员作为唯一对接人,其他团队的需求统一经此人流转,责任归属落在数据归属方,使用方对使用范围和回收负责。
示例:一个订单场景的数据准备全过程
以下为演示情景,用于说明流程落地形态。某电商系统本轮要测试订单支付、超时关闭和退款三个功能。
场景与字段。测试负责人从用例反推出三个场景:待支付订单、已超时未支付订单、已支付待退款订单。数据管理员编制字段清单,包含订单号、用户ID、商品ID、订单金额、订单状态、创建时间、支付时间、支付流水号,并注明订单关联一个用户和一到三个商品。
造数方式。基础订单采用生产数据脱敏复制,保留真实的状态分布;超时订单用脚本把创建时间回拨到支付时限之前;退款订单通过接口调用生成,确保支付流水真实存在。脱敏规则对用户姓名和手机号做掩码,订单号做不可逆替换,金额保持原分布。
校验。测试人员抽取20条记录,核对订单与用户、商品的关联完整,状态与时间字段逻辑一致,确认无原始手机号残留,校验记录附在数据集说明中。
登记与发放。数据管理员将数据集编号为“订单-2024-06-A”,登记来源、脱敏规则版本、有效期两周,放入测试库。测试执行人凭申请领取,领用记录写明领取人、场景编号、数据量。测试结束后回收,记录清理时间和清理方式,与领用记录对应关闭。
完成检查:数据准备是否可交付
数据准备交付前逐项核对,任一项不通过即视为阻断,修复后重新检查。
- 完整性:场景清单中的每个场景都有对应数据集,字段清单中的必填字段无缺失。
- 准确性:抽样数据与字段清单的取值范围、约束、关联关系一致,边界值和异常值已覆盖。
- 合规性:敏感字段全部按规则处理,抽样确认无原始敏感值,脱敏规则版本有记录。
- 可重复使用:数据集有编号和版本,重新生成时能凭脚本或规则复现。
- 环境隔离:数据只进入指定测试环境,未混入其他项目正在使用的数据集。
- 登记闭环:入库登记信息完整,领用记录与回收记录一一对应,无未回收数据。
放行条件是上述六项全部通过,且测试负责人确认场景覆盖无遗漏。出现字段缺失、敏感值残留或数据未登记时,暂停发放,由对应责任人补齐后再走检查。
把数据准备纳入研发协作流程
数据申请、审批、登记和回收如果只靠聊天记录流转,追溯成本很高。可以把数据申请做成工作项:字段包含场景编号、数据量、用途、期望交付时间、合规审批人;状态按“待审批—造数中—待校验—已入库—已发放—已回收”流转,每次状态变更留下操作人和时间。
场景清单和字段清单用文档承载,与对应测试用例关联,评审意见直接留在文档中,冻结后新增场景走变更记录。交接与评审记录随工作项和文档留存,回收环节由数据管理员在测试结束后核对领用记录,逐条关闭。
ONES 的测试管理支持测试用例与需求、任务关联,测试计划与迭代关联,可以把数据申请工作项挂到对应迭代和测试计划下,让数据准备进度与测试执行进度在同一视图里可见;用例属性可自定义,便于标注每条用例所需的数据场景编号。权限方面,ONES 支持为不同用户组配置不同权限,也可为用例库、测试计划单独配置权限,适合把数据相关记录限定在测试与数据管理角色范围内。测试结束后,效能管理可对系统中的数据进行多维度分析,并把仪表盘共享给相关角色,用于查看数据准备与回收的完成情况。数据本身的生成、脱敏和发放仍由团队既有的脚本、脱敏流程和数据池承担,协作工具负责把申请、审批、登记和回收串成可追溯的流程。
常见问题
测试数据准备一定要走完六步吗,小团队能不能简化?
六步是完整流程,小团队可以合并执行,但合并的是动作形式,不是省略环节。常见做法是把“定场景”和“定数据画像”合并为一次用例走查,由测试负责人当场产出场景与字段合一的清单;脱敏与校验、入库登记仍要保留,因为这两步决定了数据能不能被追溯和复用。如果本轮只验证一两个简单功能、数据量很小,手工构造后同样要登记来源和有效期,否则后续无法判断数据是否过期。
没有生产数据可用时,怎么保证造出来的数据足够真实?
可以从三个方向补足真实性:一是按业务规则设计字段分布,例如订单状态按真实比例分配,而不是全部设为同一种状态;二是通过接口调用生成数据,让数据经过系统自身的业务校验,避免出现数据库里存在但业务上不可能出现的组合;三是请业务方提供一批脱敏后的样本作为参照,脚本按样本的分布特征生成。需要说明的是,生成数据的真实性以覆盖测试场景为准,不必追求与生产数据完全一致。
数据脱敏做到什么程度算合格,校验时看什么?
合格的标准是敏感字段无法还原到具体个人,同时关联关系保持完整。校验时抽取样本比对脱敏前后的记录数是否一致、订单与用户和商品的关联是否对得上、字段格式是否符合规则,并确认样本中不存在原始手机号、身份证号等敏感值。脱敏规则要有版本记录,规则调整后重新校验。涉及生产数据复制的申请,建议增加合规或安全负责人审批,审批记录与数据集说明一并留存。
多个项目同时测试时,数据怎么避免互相覆盖?
各项目独立完成场景、字段和造数,入库登记集中到共享数据池,由数据管理员统一编号,同一份数据不分配给两个项目同时修改。需要共用基础数据时,可以复制出项目专属副本,副本单独编号并注明来源。回收按项目分别登记,清理前核对领用记录,确认该项目的数据已全部归还或删除,再释放编号。这样即使两个项目测试时间重叠,也能凭编号定位到具体数据集和责任人。
数据申请和回收在协作工具里怎么落地,需要配置哪些内容?
把数据申请做成工作项,字段包含场景编号、数据量、用途、期望交付时间和合规审批人,状态按“待审批—造数中—待校验—已入库—已发放—已回收”流转,每次变更留下操作人和时间。场景清单和字段清单用文档承载,与测试用例关联,评审意见留在文档中。ONES 的测试管理支持测试用例与需求、任务关联,测试计划与迭代关联,可以把数据申请工作项挂到对应迭代和测试计划下;用例属性可自定义,便于标注每条用例所需的数据场景编号;权限可按用户组配置,也可为用例库、测试计划单独配置。数据本身的生成、脱敏和发放仍由团队既有的脚本和脱敏流程承担。
