fbpx

软件开发周期充满挑战,因为组织不仅面临上市时间缩短,而且应用程序复杂性增加。 为了确保应用程序从初始开发到产品发布及以后保持稳定和正常运行,组织需要采用各种测试类型。

当然,随着开发复杂性的增加,所需的测试也随之增加。 任何成功的测试场景的一个重要组成部分是测试数据管理 (TDM)。 它允许企业级组织简化、自动化和控制所使用的所有测试类型,同时降低成本并提高测试质量。

Table of Contents

什么是软件测试中的测试数据管理 (TDM)?

测试数据管理是创建、管理、实施和交付测试数据的过程。 传统上,软件开发测试是在分散的孤岛中进行的,但 TDM 将测试合并到单个团队、小组或部门的权限内。

测试数据管理服务收集自动化软件测试所需的数据,包括来自单元、集成和系统测试的数据。 它涉及获取和存储自动化测试所需的适当且准确的数据,减少或消除人为参与测试过程的需要(类似于 机器人过程自动化)。

随着 TDM 越来越受欢迎,它已经扩展到包括合成数据生成、数据屏蔽、子集化、人工智能等。

最终,测试数据管理提高了成品软件产品的可靠性和质量,从而带来卓越的最终用户体验。 此外,TDM 的数据混淆方面有助于组织遵守所有适用的数据隐私法律和法规。

谁在软件测试中使用测试数据管理 (TDM)?

虽然“每个人”的答案可能听起来简单而宽泛,但事实是测试数据管理技术 使所有类型的软件应用程序受益。 如果在开发周期中进行测试(而且应该),TDM 过程会提高结果的准确性、组织性和有用性。

因为所有的软件开发都需要测试,所以 TDM 将从本质上使任何项目受益。也就是说,某些组织和应用程序实际上要求使用测试数据管理策略

企业级应用程序由于其复杂、多方面的测试需求而需要 TDM。 TDM 有益于企业开发中的所有主要测试领域,包括功能性、非功能性、性能和自动化测试。

此外,TDM 的混淆过程使其对涉及个人或敏感数据的应用程序(包括与电子商务、金融和医疗保健相关的任何站点或应用程序)至关重要。

数据管理用于哪些类型的测试?

数据管理侧重于三大类测试。

1. 用于性能测试的 TDM

性能测试衡量应用程序在预期工作负载下的性能,评估其响应能力、稳定性和可扩展性。 TDM 允许您将测试重点放在基础架构和面向用户的元素上,以实现快速、可靠的性能。

最好测试管理工具有助于增加刷新周期和批量数据生成。

2. 用于功能测试的 TDM

性能测试分析应用程序的速度和稳定性,而功能测试确定软件是否按照预先确定的要求运行。 本质上:软件是否做它应该做的事情? 测试数据管理服务有助于保持对核心应用程序以及新功能和升级功能的质量控制。

TDM 有助于缓解或防止低覆盖率、访问限制、冗长的数据采购时间线、高依赖性以及与测试环境大小相关的问题。

3.自动化测试中的TDM

自动化和自动化的测试数据策略 流程允许非接触式操作,同时还通过减少人为错误的可能性来提高准确性。 测试数据管理流程用于所有类型的测试数据管理自动化工具和测试,包括 机器人过程自动化

自动化测试数据策略有助于缓解前端数据创建缓慢、无法访问动态数据以及无法访问测试环境的问题

测试数据管理的好处

建立卓越测试中心 (TCoE) 的优势

TDM 策略以及测试数据管理自动化工具为企业级组织提供了多种好处。

1. 提高数据质量

如果世界上所有的测试都是建立在不完整、不相关或损坏的数据上的,那么它就是徒劳的。 TDM 识别、管理和存储自动化测试所需的数据,因此您可以确保其适当且完整。 此外,通过终止在多个测试人员之间传输数据的需求,即使不能消除数据损坏,也可以最大限度地减少数据损坏。

2. 开发真实数据

如果测试数据不能准确地代表生产数据,则测试结果将是无效的。 TDM 允许组织识别和存储反映生产服务器上发现的数据的测试数据,确保测试结果反映真实世界的软件功能。 被称为“现实数据”,它在格式、数量和其他因素上与生产数据相似。

3. 改进对数据的访问

只有当数据在预定时间可用时,自动化软件测试才能有效运行。 例如,数据仓库测试工具可能需要在特定时间访问数据以进行身份验证。 由于 TDM 专注于数据存储,因此在自动化测试软件和生产时间表需要时,始终准备好适当的数据。

4. 确保数据合规

TDM 帮助组织遵守所有相关政府法规和其他法规,例如HIPPA CCPA和欧盟的GDPR. 测试数据管理 GDPR 和其他此类法规要求生产数据可以包括用户名、位置数据、个人信息等 – 在进行测试之前需要屏蔽的数据。

最好测试数据管理工具允许组织自动匿名化数据以供内部和外部使用,以确保合规性。

测试数据管理的挑战和陷阱

挑战负载测试

虽然测试数据管理为企业级软件开发提供了至关重要的好处,但它们也存在潜在的缺陷。 了解 TDM 的挑战使组织能够预测并最大限度地减少其影响。

1. 生产克隆缓慢且昂贵

为了获取测试数据,大多数组织将从生产服务器中提取数据,然后将其匿名化。 但是,收集生产数据可能很耗时,尤其是在开发过程后期处理大量代码时。

克隆数据后,您需要在某个地方存储它。 基础设施和存储成本会迅速增加。 您可以通过数据切片降低这些成本。 该团队不会克隆所有生产数据,而是会切出一个较小的、具有代表性的数据“切片”。

2. 混淆过程增加了成本和复杂性

如前所述,用户数据受到严格监管,即使对于内部测试也是如此,并且需要匿名化。 不幸的是,数据混淆过程增加了开发过程的复杂性和成本。

虽然使用自动化测试工具提高了混淆的速度、准确性和成本效益,但相关团队仍然存在学习曲线。

表明您的组织需要测试数据管理的主要迹象/原因

虽然所有软件开发都受益于测试数据管理,但组织并不总是优先考虑实施。 以下迹象表明,组织将立即从实施 TDM 中获益:

  • 数据大小“全面”增加,包括数据集大小、总数据集、数据库实例和上游系统的增加。
  • 大量生产时间用于准备测试数据。
  • 生产数据远远超过可用的测试数据量。
  • 应用程序功能会出现错误。
  • 测试团队是分散的,或者必须依赖来自中央来源的数据。
  • 测试团队工作过度,无法满足测试需求。
  • 上游数据生成绝大多数测试数据。
  • 测试数据集不可重复使用或易于复制。

测试数据管理有助于减少、纠正和预防这些问题等。

IS YOUR COMPANY IN NEED OF

ENTERPRISE LEVEL

TASK-AGNOSTIC SOFTWARE AUTOMATION?

软件测试中的数据类型

软件应用程序在开发过程中和发布后会产生难以置信的数据量。 这 测试数据管理过程通常侧重于以下数据类型:

一、生产数据

生产数据是由真实的人使用您的应用程序生成的。 根据用户群的大小和应用程序的复杂性,生产量可能会变得非常大、非常快——这就是为什么通常根据测试需要将其划分为子集的原因。

请注意,生产数据通常包含与合规问题相关的敏感信息,例如需要混淆的医疗和财务数据。

2. 综合数据

合成数据可以手动创建,也可以使用自动化测试工具创建。 它尽可能地模拟真实的用户行为。

尽管它避免了数据模糊的需要,但合成数据的用处确实有限。 它主要用于负载测试新功能。

准确地创建合成数据需要高水平的专业知识,尽管自动化测试数据管理工具使它更容易。

3. 有效数据

有效数据是用于描述未发生意外错误或事件时产生的数据的术语。 数据的格式、值和数量与测试前的预期一致。 有效数据测试所谓的“快乐路径”,即用户的旅程遵循预期的路线。

4. 无效数据

无效数据源自“不愉快的路径”。 它是来自意外场景和故障的数据。 无效数据也被用作混沌测试的一部分,它在大量不良数据下测试应用程序的极限。

什么是软件测试目的的“优质数据”?

软件测试清单

使用不完整或不相关的数据进行测试通常比完全放弃测试更糟糕,因为得出的结论和随后采取的行动将是不正确的。 但是组织如何为软件测试目的识别“好”数据呢? 寻找这三个数据质量特征:

1. 准确性

良好的数据密切反映现实生活中的程序。 如果使用屏蔽的生产数据,它应该直接与您正在测试的区域相关 – 它不能是用户行为的随机样本。 合成数据应该准确地类似于真实的用户行为,包括其不可预测的性质。

2. 有效期

良好的数据与您的测试场景的目的相匹配。 例如,大多数在线购物者不会购买 200 个数量的单件商品,因此在这种情况下对系统行为进行广泛测试是对资源的不良使用。 但是,您确实想测试人们购买十件商品的情况。

3. 例外

数据应涵盖可能会发生但很少发生的问题。 客户使用优惠券代码为商品付款的场景是电子商务领域中“异常数据”的常见示例。

在规划数据测试管理之前和期间应该问哪些问题?

测试成功很大程度上取决于规划阶段。 在初始阶段,团队应该提出以下问题。

1. 我们需要什么数据?

确定需要收集哪些数据是一个由两部分组成的过程。 首先,它必须与测试场景相关。 它还必须具有业务相关性,以帮助测试保持成本效益和效率。

2. 我们需要多少数据?

过多的数据,例如复制所有生产数据,成本高昂、耗时长,并且使过程过于复杂。 另一方面,如果样本量太小,结果将不准确。

3. 我们什么时候需要数据?

测试是否已安排,或者数据是否应按需提供? 团队应在测试开始前协调所有测试计划和更新周期。

4. 需要什么类型的测试?

软件测试自动化 需要稳定、可预测的数据集。 如果测试所需的数据差异很大,手动测试可能会产生更好的结果。

管理数据测试的步骤

建立强大的测试数据管理系统 (TDM) 的步骤

虽然具体情况会有所不同,但企业级软件开发人员在实施 TDM 策略时通常会遵循这些步骤。

1. 数据创建 – 生成测试数据的技术等。

要生成有效数据,您需要考虑其准确性和相关性。 它是否复制了现实场景? 此外,您需要生成异常数据,这些数据涵盖典型用户活动之外的场景。

2. 数据混淆

您需要屏蔽所有生产数据以保持合规性。 最常见的混淆类型包括字谜、加密、替换和归零。 虽然在有限的能力下可以进行手动混淆,但企业级掩蔽需要自动化工具。

3.数据切片

复制所有生产数据通常会浪费资源和时间。 通过数据切片,可以收集一组可管理的相关数据,从而提高测试的速度和成本效益。

4. 供应

在获取和屏蔽数据之后进行配置。 在供应期间,数据被移动到测试环境中。 自动化工具提供了使用 CI/CD 集成将测试集输入测试环境的能力,并可选择手动调整。

5. 集成

来自 IT 生态系统内多个来源的测试数据必须集成到 CI/CD 管道中(CI/CD 管道是代码更改的既定流程)。 实现集成需要及早识别所有数据通道。

6. 版本控制

创建测试数据的版本有助于团队重复测试以衡量结果。 此外,版本允许监控测试参数的精确变化。

测试数据管理的特点和属性

TDM 适应任何软件开发项目不断变化的需求。 但是,无论组织需要进行何种调整,TDM 流程也将显示以下特征:

1. 提高数据质量和保真度

TDM 提高了测试数据的准确性和真实性,从而提供了真正具有代表性的用户行为样本。 所有的流程最终都指向一个目标:可靠、稳定的用户体验。

2. 合规性

测试数据管理软件 确保在测试之前充分屏蔽所有生产数据,使您的组织遵守所有隐私法规。 通过保持合规,您将避免法律后果,包括罚款和负面的公共关系问题。

3. 提高产品质量

质量保证是一个耗时、成本高昂的过程,但对于启动功能性、用户友好的应用程序也是必要的。 与传统的孤立方法相比,TDM 流程允许更快的错误识别、更高的安全性和更通用的测试。

如何实施测试数据管理

RPA 和自动化测试中心 (TCoE)

您组织的软件产品将规定各种测试细节,但测试数据管理概念的基本实施涉及以下五个步骤:

第 1 步:规划

首先组建一个数据测试团队,然后他们将确定测试数据管理要求和文档,同时制定全面的测试计划。

第 2 步:分析

在分析阶段,整合跨团队的数据需求。 还实施了备份、存储和类似的后勤问题。

第 3 步:设计

设计阶段是测试开始前规划的最后一点。 团队应识别所有数据源,同时最终确定沟通、文档和测试活动的计划。

第 4 步:构建

构建阶段是“橡胶与道路相遇”的地方。 计划被执行。 首先,发生数据屏蔽。 接下来,备份数据。 最后,运行测试。

第 5 步:维护

测数据管理实施,公司将需要维护项目生命周期的流程。 TDM 维护包括故障排除、升级现有测试数据和添加新数据类型。

测试数据管理策略

例如,自动化测试如何在银行业等行业发挥作用

由于 TDM 涉及开发过程中的许多不同元素,它会很快变得复杂。 以下策略可让您保持专注并不断完善您的组织 测试数据管理办法

策略 1:增强数据交付

通过利用ZAPTEST软件测试服务寻求持续减少测试数据的交付时间. 具有 DevOps 功能的工具通过低接触方法简化了测试。

使用 ZAPTEST,用户可以选择 Sequential;使用自动或特定行数的随机或唯一测试数据。 他们可以指定数据范围和“超出值”策略,从而为功能(UI 和 API)、性能测试和 RPA 创建现实的数据驱动测试场景。

此外,自动化测试软件可以用用户自助服务系统代替 IT 票务系统。

策略 2:降低基础设施成本

测试数据量在开发过程中不断增长,导致基础设施资源的使用增加。 TDM 工具可以通过数据整合、归档和称为书签的过程来帮助最大限度地降低相关的基础设施成本,从而更好地利用测试环境空间。

策略 3:提高数据质量

测试数据管理解决方案通过关注三个关键要素:数据的年龄、准确性和大小,不断提高数据质量特征。

如何改进测试数据管理

TDM 不是一个静态过程。 在初始设置之后,您将希望通过遵循这些来争取持续改进 测试数据管理最佳实践

1. 隔离数据

通过在受控环境中运行测试,您可以隔离数据以更好地比较预期输出与实际输出。 隔离数据还允许进行并行测试。

2. 最小化数据库存储

将测试数据存储在数据库中会降低自动测试速度,同时也增加了数据隔离的难度。 自动化工具以及数据切片等技术有助于减少所需的数据库存储量。

3.专注于单元测试

遵循测试自动化金字塔建立的指导方针,它建议在您的测试中进行大约 50% 的单元测试。 单元测试独立于外部数据运行,成本远低于其他测试类型,并且实施起来相对较快。

如何衡量测试数据管理

什么是软件测试自动化

以下指标提供了有关 TDM 策略有效性的重要信息。

1. 是否有足够的测试数据可用?

您可以通过跟踪管理用于测试的数据所花费的时间来衡量测试数据的可用性。 如果可用数据不足,开发时间就会变慢,开发人员会感到受到限制。

2. 测试数据是否可用于自动化测试?

自动化测试过程需要按需提供数据。 监控可用数据集的百分比,以及访问频率和刷新频率。

3. 自动化测试是否受限于测试数据?

您可以使用当前的测试数据运行多少个自动化测试? 如果您需要运行比数据允许的更多的测试,则需要更频繁地收集测试数据。

获得这些测量值的最简单、最准确的方法是使用测试数据管理软件

 

隐私问题及如何预防

虽然测试数据管理最初是作为一种收集和分析数据的方法,但随着时间的推移,它在防止各种隐私问题方面变得同样重要。

1. 数据监管

TDM 确保您的公司始终遵守 CCPA、HIPAA、GDPR 和所有其他相关数据隐私法规。 在测试期间未能正确屏蔽数据可能会导致严重的经济甚至潜在的刑事处罚。

2. 消费者强烈反对

数据泄露可能会对公司形象造成重大损害,因为用户将不愿意使用容易泄露的应用程序。 测试数据管理实施有助于通过防止泄漏和确保潜在用户的数据安全来获得用户信心。

结论

软件开发中对测试的需求只会变得更加必要和更加复杂。 为了简化开发流程,同时保持质量控制,企业组织需要 利用测试数据管理软件,特别是测试管理工具,例如由ZAPTEST创建的那些

最好测试数据管理工具提供全面的、响应迅速的测试数据创建和管理,允许以前所未有的速度交付具有更强大功能的卓越软件。

常见问题

以下是有关软件测试中测试数据管理的常见问题的快速解答。

什么是测试数据管理?

测试数据管理是自动化数据仓库测试工具所必需的数据的创建、管理和分析。 流程侧重于识别与特定测试参数有关的高质量数据,将其屏蔽,并将其交付给适当的团队。

最好的测试数据管理工具可以自动化许多过程,例如数据收集、混淆和存储。

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

软件测试中使用的很大一部分数据是由真实用户生成的生产数据。 由于隐私法规,生产数据在用于测试之前需要屏蔽。

软件测试数据也可以是合成的,这意味着它是人工制造的,以尽可能准确地复制真实用户的行为。 它通常用于在新功能或升级上线之前对其进行测试。

Download post as PDF

Alex Zap Chernyak

Alex Zap Chernyak

Founder and CEO of ZAPTEST, with 20 years of experience in Software Automation for Testing + RPA processes, and application development. Read Alex Zap Chernyak's full executive profile on Forbes.

Get PDF-file of this post

Virtual Expert

ZAPTEST

ZAPTEST Logo