什么是测试数据:意义、应用和挑战

出版日期:
2024 年 4 月 10 日
医疗保健、保险、金融、政府和其他部门的行业严重依赖数据宝库来确保其软件解决方案的质量。然而,使用 生产数据 测试似乎是最明显的选择,但由于此类数据的敏感性和大量数据,带来了巨大的挑战。这是哪里 测试数据 成为游戏规则改变者,实现高效、安全的测试。 即使 测试数据在软件测试中的意义 意义深远,贯穿整个过程 - 测试数据准备 其存储和管理 - 就是没有在公园里散步。因此,根据凯捷的调查,测试人员 投入了惊人的 44% 的时间 test data management. 本文将阐明该问题的各个方面 测试数据 概念并解开最新的方法 test data management。到最后,您将学会如何让您的软件团队的生活变得更轻松,并简化软件交付流程,所有这些都具有新的清晰度。

目录

软件测试中的测试数据是什么?

什么是软件测试中的测试数据 - Syntho

简单来说, 测试数据定义 是这样的:测试数据被选中 数据集 用于发现缺陷并确保软件按预期方式工作。 

测试人员和工程师依赖 测试数据集,无论是手动组装还是专业组装 测试数据生成工具,验证软件功能、评估性能并增强安全性。

扩展这个概念, 测试中的测试数据是什么?超越单纯 数据集,测试数据包括一系列输入值、场景和条件。这些元素经过精心挑选,以验证可交付成果是否满足软件预期的严格质量和功能标准。

为了更好地掌握 测试数据定义,让我们探索一下各种类型的测试数据。

测试数据有哪些类型?

虽然主要目标是 测试数据 是为了确保软件按预期运行,影响软件性能的因素差异很大。这种可变性意味着测试人员必须使用不同类型的数据来评估系统在不同条件下的行为。

那么,我们来回答一下这个问题——软件测试中的测试数据是什么?——举例.

  • 测试数据呈阳性 用于测试软件在正常运行情况下的性能,例如检查汽车在平坦的道路上是否顺利行驶,没有任何障碍。
  • 阴性测试数据 就像在某些备件出现故障的情况下测试汽车的性能一样。它有助于确定软件如何响应 无效数据 输入或系统过载。
  • 等价类测试数据 有助于表示要测试的软件中特定组或类别的行为,特别是软件如何处理不同类型的用户或输入。
  • 随机测试数据 是在没有任何特定模式的情况下生成的。它有助于确保软件能够顺利处理意外情况。
  • 基于规则的测试数据 是根据预定义的规则或标准生成的。在银行应用程序中,它可以是生成的交易数据,以确保所有交易满足某些监管要求或帐户余额保持在指定限制内​​。
  • 边界测试数据 检查软件如何管理可接受范围极端的值。这类似于将某些设备推向其绝对极限。
  • 回归测试数据 用于检查最近对软件的任何更改是否引发了新的缺陷或问题。

通过使用这些不同的 测试数据类型,QA 专家可以有效评估软件是否按预期运行,查明任何弱点或错误,并最终提高系统的性能。 

但是软件团队可以从哪里获得这些数据呢?我们接下来讨论一下。

测试数据是如何创建的?

您有以下三种选择 创建测试数据 对于您的项目:

  • 从现有数据库中精挑细选数据,屏蔽客户信息,例如个人身份信息 (PII)。
  • 手动创建 真实的测试数据 与基于规则的数据应用程序。
  • 生成合成数据。 

许多数据工程团队只依赖其中一种方法,常常选择最耗时、最费力的方法 测试数据生成。例如,挑选时 样本数据 从现有数据库中,工程团队必须首先从多个来源提取它,然后对其进行格式化、清理和屏蔽,使其适合开发或测试环境。

另一个挑战是确保数据满足特定的测试标准:准确性、多样性、特定解决方案的特异性、高质量以及遵守保护个人数据的法规。然而,这些挑战已被现代有效解决。 test data management 方法,例如 自动化测试数据生成

Syntho 平台 提供一系列功能来应对这些挑战,包括:

  • 智能去识别化工具自动识别所有 PII,从而节省专家的时间和精力。
  • 通过用合成替换 PII 和其他标识符来解决敏感信息 模拟数据 与业务逻辑和模式保持一致。
  • 通过跨数据库和系统的一致数据映射来维护引用完整性。

我们将更详细地探讨这些功能。但首先,让我们深入研究一下相关问题 创建测试数据 这样您就了解它们并知道如何解决它们。

软件测试中的测试数据挑战

采购 有效测试数据 是有效测试的基石。然而,工程团队在开发可靠软件的过程中面临着相当多的挑战。

数据源分散

数据(尤其是企业数据)驻留在无数来源中,包括遗留大型机、SAP、关系数据库、NoSQL 和各种云环境。这种分散性加上多种多样的格式使情况变得复杂 生产数据访问 对于软件团队。它还减慢了获取正确的测试数据和结果的过程 无效的测试数据.

焦点子集化

工程团队经常难以将大型且多样化的测试数据集分割成较小的目标子集。但这是必须做的,因为这次分手帮助他们专注于特定的事情 测试用例,更容易重现和修复问题,同时保持较低的测试数据量和相关成本。

最大化测试覆盖率

工程师还负责确保测试数据足够全面,能够彻底测试定义的 测试用例,最大限度地减少缺陷密度,并增强软件的可靠性。然而,由于系统复杂性、资源有限、软件变化、数据隐私和安全问题以及可扩展性问题等多种因素,他们在这项工作中面临挑战。

测试数据的真实性

对测试数据真实性的追求表明反映原始数据是多么重要 数据值 以最大的保真度。测试数据必须与生产环境非常相似,以避免误报或漏报。如果无法实现这种现实性,可能会损害软件质量和可靠性。鉴于此,专家需要密切关注细节 准备测试数据。

数据刷新与维护

测试数据必须定期更新,以反映生产环境和应用需求的变化。然而,这项任务面临着巨大的挑战,特别是在由于法规遵从性而导致数据访问受到限制的环境中。协调数据刷新周期并确保测试环境中的数据一致性变得复杂,需要仔细协调和严格的合规措施。

真实测试数据的挑战

根据 Syntho 在 LinkedIn 上的调查, 50% 的公司使用生产数据,22% 使用屏蔽数据来测试他们的软件。他们选择 实际数据 因为这似乎是一个简单的决定:复制 现有数据 从生产环境粘贴到测试环境,并根据需要使用。 

然而,使用真实的 测试数据 提出了一些挑战,包括:

  • 屏蔽数据以遵守数据隐私法规,避免 数据安全 违规行为并遵守禁止将真实数据用于测试目的的法律。
  • 将数据拟合到测试环境中,该环境通常与生产环境不同。
  • 定期更新数据库。

除了这些挑战之外,公司在选择时还需要解决三个关键问题 真实数据 供测试用。

有限的可用率

当开发人员将生产数据视为 合适的测试数据。访问高质量的测试数据,尤其是复杂的系统或场景,变得越来越困难。数据的缺乏阻碍了全面的测试和验证过程,使得软件测试工作的效率降低。 

合规问题

CPRA 和 GDPR 等严格的数据隐私法要求在测试环境中保护 PII,对数据清理施加严格的合规标准。在这种情况下,生产数据中找到的真实姓名、地址、电话号码和 SSN 均被考虑 非法数据格式.

隐私问题

合规挑战很明显:禁止使用原始个人数据作为测试数据。为了解决这个问题并确保不使用 PII 来构建 测试用例,测试人员必须仔细检查 敏感数据 在测试环境中使用之前经过消毒或匿名处理。虽然对于 数据安全,此任务变得非常耗时,并为测试团队增加了另一层复杂性。

质量测试数据的重要性

测试数据不错 作为整个 QA 流程的支柱。它可以保证软件正常运行、在不同条件下表现良好,并且免受数据泄露和恶意攻击。然而,还有另一个重要的好处。

您熟悉左移测试吗?这种方法将测试推向开发生命周期的早期阶段,因此不会减慢开发速度 agile 过程。左移测试通过尽早发现和修复问题,减少了周期后期测试和调试相关的时间和成本。

为了使左移测试顺利进行,需要兼容的测试数据集。这些可以帮助开发和 QA 团队彻底测试特定场景。自动化和简化手动流程是这里的关键。您可以通过使用适当的测试来加快配置并解决我们讨论的大多数挑战 数据生成工具 与合成数据。

综合数据作为解决方案

基于综合数据的 test data management 的途径 是一种相对较新但有效的策略,用于在应对挑战的同时保持质量。公司可以依靠合成数据生成来快速创建高质量的测试数据。 

可视化 test data management 方法 - Syntho

定义和特征

综合测试数据是人工生成的数据,旨在模拟软件开发的数据测试环境。通过用没有任何敏感信息的模拟数据替换 PII,合成数据使得 test data management 更快,更轻松。 

 

综合测试数据可以降低隐私风险,还可以让开发人员在一系列潜在场景中严格评估应用程序的性能、安全性和功能,而不会影响真实系统。现在,让我们探讨一下合成数据工具还能做什么。

解决合规性和隐私挑战

我们以Syntho的解决方案为例。为了应对合规性和隐私挑战,我们采用了先进的技术 数据屏蔽 技术以及最先进的 PII 扫描技术。 Syntho 的 AI 驱动的 PII 扫描仪 自动识别并标记用户数据库中包含直接 PII 的任何列。这减少了手动工作并确保敏感数据的准确检测,降低了数据泄露和不遵守隐私法规的风险。

一旦识别出包含 PII 的列,Syntho 的平台就会提供模拟数据作为这种情况下的最佳去识别方法。此功能通过将敏感的原始 PII 替换为代表性的模拟数据来保护敏感的原始 PII,这些模拟数据仍然保持引用完整性,以便跨数据库和系统进行测试。这是通过以下方式实现的 一致的映射功能,这确保替换的数据与业务逻辑和模式匹配,同时遵守 GDPR 和 HIPAA 等法规。

提供测试的多功能性

多功能测试数据可以帮助公司克服数据可用性有限的挑战并最大限度地提高测试覆盖率。 Syntho 平台支持多功能性 基于规则的综合数据生成

这个概念涉及到 创建测试数据 通过遵循预定义的规则和约束来模仿现实世界的数据或模拟特定的场景。基于规则的合成数据生成通过各种策略提供了测试的多功能性:

  • 从头开始生成数据: 基于规则的合成数据使得在有限或没有真实数据可用时生成数据成为可能。这为测试人员和开发人员提供了必要的数据。
  • 丰富数据: 它通过添加更多行和列来丰富数据,从而更轻松地创建更大的数据集。
  • 灵活性和定制化: 通过基于规则的方法,我们可以保持灵活性并适应不同的数据格式和结构,生成适合特定需求和场景的合成数据。
  • 数据清理: 这涉及在生成数据时遵循预定义的规则以纠正不一致、填充缺失值并删除 测试数据损坏。 它确保 数据质量 和完整性,当原始数据集包含可能影响测试结果的不准确性时尤其重要。

选择正确的 数据生成工具, 必须考虑某些因素,以确保它们确实减轻了团队的工作量。

选择合成数据工具时的注意事项

合成数据工具的选择取决于您的业务需求、集成能力和数据隐私要求。虽然每个组织都是独一无二的,但我们概述了选择合成材料的关键标准 数据生成工具.

数据现实主义

确保您考虑的工具 生成测试数据 与真实世界的数据非常相似。只有这样,它才能有效地模拟各种测试场景并发现潜在的问题。该工具还应该提供定制选项来模拟生产环境中的不同数据分布、模式和异常。

数据多样性

寻找可以生成的工具 样本数据 涵盖广泛的用例,包括与被测软件相关的不同数据类型、格式和结构。这种多样性有助于验证系统是否稳健并确保全面的测试覆盖率。

可扩展性和性能

检查该工具生成大量合成数据的能力如何,尤其是在测试复杂或大容量系统时。您需要一个可以扩展以满足企业级应用程序的数据要求而不影响性能或可靠性的工具。

数据隐私和安全

优先考虑具有内置功能的工具,以在生成数据时保护敏感或机密信息。寻找数据匿名化和遵守数据保护法规等功能,以最大限度地降低隐私风险并遵守法律。

集成和兼容性

选择无缝适合您现有测试设置的软件,以便于轻松采用和集成到软件开发工作流程中。兼容各种数据存储系统、数据库和测试平台的工具将更加通用且更易于使用。

例如, 合成器支持 20 多个数据库连接器和 5 多个文件系统连接器,包括 Microsoft SQL Server、Amazon S3 和 Oracle 等流行选项,确保数据安全并轻松生成数据。

定制化和灵活性

寻求提供灵活定制选项的工具,以根据特定的测试要求和场景定制合成数据生成。可定制的参数(例如数据生成规则、关系和约束)使您可以微调生成的数据以匹配测试标准和目标。

总结一下

测试数据的含义 软件开发中的缺陷怎么强调都不为过——它可以帮助我们识别和纠正软件功能中的缺陷。但管理测试数据不仅仅是为了方便,更是为了方便。这对于遵守法规和隐私规则至关重要。正确执行可以减轻开发团队的工作量,节省资金并更快地将产品推向市场。 

这就是合成数据派上用场的地方。它提供真实且通用的数据,无需太多时间密集型工作,从而保持公司的合规性和安全性。借助合成数据生成工具,管理测试数据变得更快、更高效。 

最好的部分是,无论其目的如何,每个公司都可以获得高质量的综合测试数据。您所需要做的就是找到可靠的合成数据生成工具提供商。立即联系 Syntho 并 预订免费演示 了解合成数据如何使您的软件测试受益。

关于作者

首席产品官兼联合创始人

Marijn 拥有计算科学、工业工程和金融方面的学术背景,此后在软件产品开发、数据分析和网络安全领域表现出色。 Marijn 现在担任 Syntho 的创始人兼首席产品官 (CPO),推动技术前沿的创新和战略愿景。

合成器指南盖

立即保存您的合成数据指南!