企业 AI 项目 Wiki · 数据、知识与模型
测试数据
也常写作Test data · 测试资料 · 测试数据集 · 测试输入数据 · 测试样本数据
测试数据是为执行一个或一组测试而准备的受控数据,包括使测试对象进入所需前置状态的数据、提交给测试对象的输入、外部依赖返回的数据,以及用于确定预期结果和通过与否的参照数据。它必须能说明对应的测试目标、来源或生成方法、适用版本、覆盖条件、敏感性和重置方式。
测试数据让测试条件可以执行和判断,不是随手准备几条例子
一个测试通常不只需要界面上填写的值。它还可能需要已存在的账号、角色、供应商、库存、历史状态、时间、外部接口响应和配置,使系统先进入规定条件;执行后又要用预期状态、金额、消息、审计记录或禁止发生的副作用判断结果。能够支撑这些条件和判断的数据共同构成测试数据。
NASA 的软件测试资料把测试输入、前置条件、预期结果、评价标准和测试配置分开记录,并要求测试覆盖允许范围、边界、无效输入、异常、压力和恢复。测试数据因此必须服务于明确测试目标,不能用一份看起来真实但不知覆盖什么的数据库快照代替测试设计。
ISO/IEC/IEEE 29119 系列把测试概念、过程、文档和设计技术分别规范。测试数据是执行资产的一部分,但测试是否充分仍取决于测试依据、风险、覆盖模型、预期结果和证据;数据量大不自动意味着覆盖充分。
一套可管理的测试数据包含哪些部分
一条输入记录本身还不是完整测试数据。团队还需要知道它对应什么条件、从哪里来、应得到什么结果、如何恢复前置状态,以及可以在哪些环境和期限内使用。把这些一起版本化,测试结果才可复现。
身份与版本
为数据集、记录族或生成配方分配稳定标识,注明适用测试对象、软件/模型/规则/接口版本和数据模式版本,避免同名文件悄悄变化。
测试目标与追溯
关联要求、风险、业务规则、场景、缺陷或变更,并说明这组数据要证明正常处理、拒绝、边界、恢复还是其他性质。
前置状态
记录测试开始前必须存在的主体、对象、余额、权限、工作流状态、时间和外部依赖状态,以及怎样建立和验证该状态。
输入与刺激
包括界面字段、文件、消息、API 请求、设备信号、时间推进、并发顺序或操作者动作,并保留单位、格式、编码和来源语义。
依赖响应与替身数据
定义外部系统、模拟器、桩或模型返回的成功、拒绝、超时、重复、乱序和部分结果;模拟内容不能脱离真实接口契约。
预期结果与允许差异
说明预期输出、状态变化、记录、通知、工具动作和不得发生的副作用;数值、概率或人工判断结果需有容差、评分和裁决规则。
来源、处理与敏感性
标记人工构造、规则生成、合成、去标识生产样本或获准真实数据,以及转换步骤、权利、个人或机密信息等级和访问限制。
建立、清理与保留
规定装载顺序、唯一值策略、重置或回滚、运行后删除、失败证据保留和到期处置,防止测试之间互相污染。
从要求、场景和风险逐步推导测试数据
测试数据不是先找一批方便取得的记录,再看能测什么。应从要求和场景中的条件、边界、例外与严重后果倒推需要哪些身份、对象、状态和输入组合,使每组数据都有明确的验证目的。
确定测试对象和正式版本
先锁定系统、软件、模型、接口、规则、配置与环境版本;同一数据在不同版本下可能对应不同预期结果。
确认测试依据
读取已批准要求、业务规则、接口契约、数据定义、风险控制、变更和历史缺陷,不从现有实现反向猜测唯一正确行为。
展开正常和异常场景
沿业务过程列出主体、对象、状态、触发、依赖、结果和补偿,包含资料不足、权限不足、重复、并发、超时和外部失败。
选择覆盖技术
对数值和类别使用等价类与边界值,对规则组合使用决策表,对生命周期使用状态转换,对序列和接口使用场景、组合与错误猜测。
确定数据来源
优先选择能够满足目的的最低风险来源:小型人工数据、可重复生成数据、合成数据、经评估的去标识样本,最后才是范围严格受控的真实数据。
建立测试预言
由业务规则、独立计算、权威系统、批准样本或有权专家确定预期结果;若不存在单一真值,预先确定评分、复核和分歧处理。
审查覆盖与危害
业务、测试、数据、安全隐私和领域角色共同检查遗漏人群、稀有状态、错误合并、敏感内容、不可逆动作和测试本身可能造成的风险。
冻结并可重复执行
保存数据版本、生成种子、转换代码、模式、校验和、环境准备、执行顺序和清理方法,再把它与测试记录和缺陷证据连接。
测试数据覆盖的是有意义的类别和风险,不是随机增加行数
一万条相似的正常记录,可能仍然没覆盖一个币种缺失、权限冲突或切换日边界。覆盖要按业务等价类、状态、群体和风险分层,数量只是支撑每一层得到足够证据的手段。
正常与代表性数据
覆盖主要用户、业务对象、流程、格式和常见组合,证明系统在预期使用条件下能完成任务,但不能只测最整齐的理想样本。
等价类
把预计以相同方式处理的有效和无效值划成不重叠类别,再从每类选择代表值;分类依据必须来自要求和实现风险。
边界值
检查阈值本身及其相邻值,如最小/最大长度、金额限额、日期生效点、容量上限和超时时点,因为缺陷常发生在包含与排除边界。
规则组合
用决策表覆盖条件组合、优先级、例外和冲突,不把每个字段单独有效误当成组合结果必然正确。
状态与时间
覆盖允许与禁止转换、终态、撤销、更正、迟到事件、时区、有效期、顺序颠倒和并发更新,保留执行前后的可核对状态。
权限与主体
同时准备本人、代理、跨组织、失效角色、权限不足和职责冲突身份,验证不仅能做什么,也验证不能读取、决定或执行什么。
异常与恢复
制造缺失、格式错误、重复、超时、依赖不可用、部分成功、资源耗尽和重试,检查安全停止、幂等、对账、补偿和恢复。
规模与分布
性能和容量测试须匹配记录量、字段宽度、关联密度、热点、长尾、到达率和并发分布;复制同一行百万次不能代表真实复杂度。
人工、生成、合成、去标识和真实数据各有适用边界
人工构造容易控制边界,合成数据便于扩展,真实数据能暴露分布和脏数据,但每种来源都有盲区与权利要求。项目应说明为何选择、改变了什么、代表不了什么,不能因为数据“不是生产原表”就认为没有隐私风险。
| 数据来源 | 适用方式与限制 |
|---|---|
| 人工构造 | 适合少量精确的规则、边界和异常测试,预期结果容易确认;容易遗漏真实数据的复杂组合和长尾。 |
| 规则或程序生成 | 用固定种子和约束批量形成组合、状态和规模数据,可重复且便于自动化;生成规则错误会系统性制造假覆盖。 |
| 合成数据 | 生成不存在于生产主体的记录或分布,能降低直接使用真实个人数据的需求;仍需验证业务有效性、统计保真度、偏差、泄漏和稀有风险是否保留。 |
| 去标识或假名化副本 | 保留部分真实结构和关联,适合难以人工重建的迁移或集成问题;删除姓名或遮盖字段不等于匿名,关联、稀有值和映射表仍可能识别主体。 |
| 受控真实样本 | 只在测试目的确实无法由更低风险数据实现时考虑,需最小范围、明确依据和批准、隔离权限、完整审计、期限和处置;不得因方便默认复制生产库。 |
| 捕获与回放 | 可复现真实协议、顺序或故障,但必须处理敏感内容、凭证、时效、第三方权利和副作用,并确认回放不会触达正式对象。 |
没有可信预期结果,测试数据只会产生输出而不能作出判断
系统返回了一个结果,不等于结果正确。预期结果要来自获批规则、权威资料或有资格的判断者,并记录允许范围与无法唯一判断的情况。否则测试只能比较输出是否变化,不能证明满足要求。
精确预期值
确定性计算、状态、代码和消息可给出完整值,并说明舍入、时区、排序、编码和空值口径。
约束与不变量
当完整输出过大时,检查金额守恒、状态单调、唯一性、引用完整性、权限不泄漏或重试不重复创建等必须始终成立的性质。
独立参照
用经批准的手工计算、权威系统、不同实现或已核实黄金样本交叉判断,避免预期结果与被测代码共用同一错误逻辑。
允许范围与统计判定
性能、检索或概率输出需要预先确定指标公式、样本资格、容差、置信或不确定性处理、分段阈值和失败规则,不在看到结果后改口径。
专家与多人标注
不存在单一客观答案时,记录标注指南、人员资格、独立判断、分歧比例、裁决人和无法确定标签,不能强迫所有样本拥有伪造真值。
禁止结果
除期望输出外,明确不得越权读取、自动批准、修改生产对象、泄露提示或个人信息、静默丢失、重复扣款等停止处理条件。
身份、关系和状态必须可重建,否则自动化测试会互相影响
很多失败并不来自当前输入,而是前一次测试留下了账号、审批任务、余额或缓存。测试数据包要能创建完整关系、隔离并行运行、在结束后清理,使同一用例无论何时执行都从可识别状态开始。
- 使用专用测试身份
账号、组织、角色、密钥和证书与生产分离,权限与生命周期可追踪,不把共享管理员账号当成全部角色。
测试身份清单、所属人、权限快照和到期记录
- 保持引用关系完整
主数据、交易、附件、状态历史和外部标识按数据模型连接;孤立地插入一条业务表记录可能绕过真实约束。
数据关系图、装载顺序和完整性校验
- 每项测试拥有数据
并行测试使用唯一命名空间、租户、事务或可识别记录,避免一个测试修改另一个测试正在使用的共享对象。
所有权标记、运行 ID 和并行冲突检查
- 从已知状态开始
执行前验证余额、状态、时间、队列和依赖响应;失败后知道是准备失败、产品失败还是断言错误。
准备步骤结果和前置校验日志
- 清理不破坏证据
成功数据可自动撤销或删除;失败数据先保存最小复现证据,再按权限和期限处置。
清理结果、残留扫描和证据引用
测试环境不是数据保护的例外区,脱敏也不是删除几个字段
姓名被替换后,稀有职位、时间、地址和关系组合仍可能指回真实个人。测试数据保护要看重识别与滥用风险,控制提取、访问、复制和到期删除,并确认外部测试工具是否会继续保留内容。
Microsoft 的测试指导建议以合成数据为默认选择,确需生产数据时先匿名化敏感信息,并把持久测试数据与生产数据分开、受控存储。这里不能把产品文档理解成通用法律结论;项目仍需按数据主体、目的、地域、合同和组织制度决定合法性与控制。
NIST SP 800-188 指出,面向开发和测试形成的数据遮盖工具通常只提供有限隐私保护,不能把遮盖直接等同于充分去标识。直接标识符之外,准标识符、稀有组合、自由文本、图片、附件、时间地点和外部可关联数据也可能重新识别主体。
假名化数据仍可能通过映射表或附加信息还原,应把映射、密钥和原始副本分离保护。测试数据还可能包含商业秘密、安全配置、真实凭证或可执行恶意载荷,须执行最小化、审批、访问隔离、传输存储保护、审计、泄漏响应和到期删除。
测试数据要能重建、更新和退出,而不是永久堆在共享库里
规则、接口和数据模型变化后,旧测试数据可能不再代表当前要求。团队要保留生成方法、版本和失效原因,更新时说明历史指标是否仍可比较;不再需要的数据与凭据也应按计划退出。
登记
记录负责人、用途、来源、敏感性、许可、适用版本、覆盖范围和使用环境,未经登记的数据不得进入正式验收证据。
生成与转换
把脚本、规则、种子、源版本、筛选和去标识步骤纳入版本控制,验证生成数量、模式、关系、分布和隐私目标。
封装与发布
使用不可混淆的版本、校验和和变更说明,把数据、测试用例、预期结果、准备脚本和环境要求一起交付。
装载与预检
在隔离环境按顺序建立状态,校验测试对象版本、依赖、时钟、权限和数据完整性;预检失败不计为产品测试失败。
执行与留证
保存实际使用的数据版本、运行 ID、时间、结果和偏差;对失败保留足够复现信息,但不无期限复制完整敏感数据。
清理与复位
撤销外部副作用、清空队列缓存、回收身份和秘密、删除临时对象并检查残留,使下一次运行从可证明的状态开始。
变化与退役
要求、模式、规则、生产分布、缺陷或风险变化时评估数据集;过期版本停止使用并按保留要求归档或安全删除。
构造例子:采购申请测试数据怎样形成可验收的数据包
下面用独立构造、与任何客户无关的采购场景,展示一套测试数据怎样同时包含正常、边界、资料不足、重复与权限条件。每条记录都连接预期规则、环境状态和清理方法,而不是只提供一张输入表。
正常提交
准备有权申请人、有效部门、可用预算、已启用供应商、币种金额、必要附件和接口成功响应;预期创建唯一申请并处于待审批状态,而不是自动批准。
边界与规则
围绕已批准限额 M1 准备 M1 以下、等于 M1、刚超过 M1 和单位/币种不一致数据,并按规则版本分别给出审批路径和禁止动作。
资料不足
分别缺少供应商身份、金额币种、附件证据或预算来源,预期指出具体缺项并停止正式提交,不由模型猜值补齐。
身份与权限
准备本人、代理、过期委托、跨组织和职责冲突身份,核对可见范围、提交和批准权限以及拒绝审计。
接口与恢复
模拟 ERP 超时、重复请求、已接收但状态未知、乱序回执和部分失败,检查幂等键、查询确认、对账和补偿,不盲目重复创建。
数据来源
优先生成自建人员、供应商和附件;若迁移缺陷必须使用经批准的去标识结构样本,单独登记来源、处理、访问、期限和销毁证据。
交付包
移交数据集版本、生成脚本、字段与关系说明、测试用例映射、预期结果、装载复位、敏感性、已知空白和批准记录,使客户能复测同一结论。
企业 AI 测试集既要像真实使用,也要与训练和调参保持独立
AI 系统很容易在开发中逐渐记住一套熟悉题目:团队反复看失败、调整提示和检索,分数自然上升,却未必代表新问题也能处理。测试集既要覆盖真实语言和风险,也要保留一部分不参与开发选择的独立证据。
先区分数据用途
训练集用于拟合参数,验证集用于选择模型或阈值,测试集用于对冻结方案作相对独立评价;检索知识、实时上下文、红队提示和生产监测样本又是不同对象。
一套题看过太多次,就不再是独立考试
样本本身、近似表达、模板和来源文档如果进入训练、知识库、提示开发或人工调参,最终分数会偏向熟悉内容。团队要记录这些接触,并为关键发布保留未用于选择方案的数据;反复根据答案修改系统的那部分,应诚实地转为开发集。
代表预期使用
按任务、语言、用户角色、文档类型、资料质量、地区、时间、群体和风险后果分层,说明实际使用与样本分布的差异,不用总平均掩盖少数或高风险失败。
覆盖知识和能力边界
同时准备有充分证据、资料不足、资料冲突、超出知识范围、过期资料、无权限内容和恶意指令,验证回答、拒绝、澄清和人工接手。
保存标注依据
每个期望答案、证据片段、工具动作和风险标签记录规则、来源版本、标注指南、标注人资格、分歧与裁决;允许“无法唯一判定”,不制造虚假标准答案。
评测完整组合
测试模型之外还要固定提示、检索、知识、规则、工具、过滤和人工流程版本,分别测回答质量、证据一致、权限、工具副作用、延迟成本和人工接手。
使用盲测与保留集
对重要发布保留开发人员不可见的样本或由相对独立角色执行。NIST AITE 使用隔离盲数据减少训练/测试污染,体现的是独立评价原则,不代表所有项目必须照搬同一平台。
持续更新但保留基准
生产主题、知识和攻击变化后增加新样本,同时保留受控核心回归集和版本间可比性;任何换题、重标或删除都记录原因及对历史指标的影响。
测试数据与相邻概念怎样区分
测试数据提供执行条件,测试用例说明步骤,预期结果负责判定,测试环境承载运行。它们共同形成证据,却不能互相替代。训练、验证和生产监测数据也可能看起来相似,但用途与独立性要求不同。
| 概念 | 与测试数据的区别 |
|---|---|
| 测试用例 | 说明测试目标、前置条件、步骤、输入和预期结果;测试数据是其中被引用、装载、提交或用于判断的具体数据资产。 |
| 测试环境 | 提供运行测试的计算、网络、配置、依赖和权限条件;测试数据在环境中建立业务状态,但两者不能互相替代。 |
| 验收样本 | 由双方为正式验收选择并确认的一类测试数据,须绑定验收对象和通过标准;开发回归数据不自动成为验收样本。 |
| 生产数据 | 支撑真实主体和业务活动,具有真实权威、权利和生命周期;复制到非生产环境后风险不会因名称变成“测试数据”而消失。 |
| 合成数据 | 按规则或模型人工生成的数据来源,可用于测试、训练或分析;是否适合作测试数据取决于测试目的、保真度、风险和预期结果。 |
| 脱敏/去标识数据 | 描述对可识别或敏感内容采取的处理,不代表用途;用于测试时仍需测试追溯、覆盖、访问、重识别风险和生命周期控制。 |
| 训练集、验证集和测试集 | 是机器学习按模型开发与评价用途划分的数据集合;企业系统测试数据还覆盖规则、接口、权限、工作流、工具动作和人工流程。 |
| 测试结果 | 记录实际输出、通过失败、偏差和证据;测试数据是执行前或执行中使用的条件与参照,运行产生的数据需单独标识。 |
| 测试预言 | 是确定预期结果或正确性的机制,可以引用黄金数据、规则、不变量或专家判断;它不是输入数据本身。 |
| Mock、Stub 与模拟器 | 是替代依赖行为的测试组件;它们返回的响应属于测试数据,但组件逻辑、协议和运行环境另需管理。 |
依据与适用边界
本文解释软件、系统和企业 AI 项目中的测试数据:为了在规定测试条件下执行测试、建立必要状态、提供输入并判断实际结果而选择、构造、转换或生成的数据。测试数据不等于测试用例、测试脚本、测试环境、生产数据副本、验收样本、训练数据、验证集、模型评测报告、测试结果或缺陷记录。本文不完整定义测试计划、测试技术、数据脱敏、合成数据、数据质量、隐私安全制度、性能测试、AI 红队测试或行业合规。哪些数据可用于测试、由谁提供和确认、是否允许来自生产、怎样去标识、覆盖哪些风险、预期结果如何判定、保留多久,须由项目有权角色按目的和风险批准。
- ISO/IEC/IEEE 29119-1:2022:软件测试通用概念和 29119 系列共同术语
- ISO/IEC/IEEE 29119-3:2021:适用于不同组织、项目和生命周期的软件测试文档模板
- ISO/IEC/IEEE 29119-4:2021:在测试设计和实现过程中使用的测试设计技术
- ISO/IEC TS 42119-2:2025:以风险为基础把 ISO/IEC/IEEE 29119 应用于 AI 系统测试
- ISTQB CTFL 4.0.1:基于风险的测试及等价类、边界值、决策表和状态转换测试技术
- NASA SWE-066:要求追溯、已批准测试程序、含边界/故障/压力情形的标注测试集和完整执行证据
- Microsoft Azure Well-Architected Framework:真实且隔离的测试数据、每场景专用数据、自动建立清理、合成优先和秘密保护
- NIST SP 800-188:去标识目标、披露风险、准标识符、合成数据,以及普通数据遮盖工具的保护限制
- 英国 ICO 假名化指南:识别风险、附加信息和密钥分离、技术选择及持续有效性评估
- NIST AI RMF Core:记录测试集、指标和工具,评估数据代表性、适用性、权利、部署相似条件和持续监测
- NIST AI RMF 可信特性:准确性须连接清晰、现实、代表预期使用条件的测试集和分段测量
- NIST AI Technology Evaluation:使用隔离测试台、盲数据、共同指标和评分减少训练与测试数据污染