用了Parasoft新型数据模拟后更觉得传统TDM解决方案该放弃了

验证和验证软件仍然是企业软件开发中最耗时且成本最高的方面之一。获取、存储、维护和使用测试数据进行测试是一项艰巨的任务,需要花费太多时间。业界已经认识到测试很难,但根本原因往往被忽视。

我们从行业数据中看到,高达60%的应用程序开发和测试时间可用于与数据相关的任务,其中很大一部分是测试数据管理。延迟和预算支出只是问题的一部分——缺乏测试数据也导致测试不充分,这是一个更大的问题,不可避免地导致缺陷蔓延到生产中。

市场上传统的TDM解决方案并没有成功地改善测试数据挑战的状态,例如下面列出的这三种。

3种测试数据管理的传统方法

传统方法要么依赖于生产数据库的副本,要么恰恰相反,使用合成的生成数据。有三种主要的传统方法:

1、克隆生产数据库

测试人员可以克隆生产数据库来进行测试。由于这是生产数据库的副本,因此还需要复制所需的基础结构。安全性和隐私遵从性要求对任何机密的个人信息进行严密保护,因此通常使用屏蔽来混淆这些数据。

2、克隆生产数据库的子集

生产数据库的子集是生产数据库的部分克隆,它仅包括测试所需的部分。这种方法需要更少的硬件,但与前面的方法一样,仍然需要数据屏蔽和类似于生产数据库的基础设施。

3.生成/合成数据

通过综合数据,不依赖于客户数据,但生成的数据仍然足够真实,可用于测试。综合遗留生产数据库的复杂性是一项艰巨的任务,但它消除了克隆机制中存在的安全性和隐私方面的挑战。

传统TDM方法存在的问题

首先,让我们考虑一下企业TDM最简单(也是最常见的)的方法,即在有或没有子集的情况下克隆生产数据库。为什么这种方法有问题?

  • 基础设施的复杂性和成本。可能是传统TDM方法最大的缺点,遗留数据库可能驻留在大型机中,或者由多个物理数据库组成。仅仅为一个团队复制一个生产系统是一项昂贵的工作。

  • 资料隐私及保安。在使用生产数据库时,隐私和安全性总是一个问题,测试环境通常不符合必要的隐私和安全性控制。屏蔽是处理这些问题的常用解决方案,改变敏感信息以便不透露任何个人身份信息。但不幸的是,屏蔽规避不了泄露私人信息的风险,因为它可以对测试数据进行去匿名化,就算最好的测试团队尽最大的努力也是如此。例如,需要遵守GDPR的公司可能很难说服监管机构,他们克隆的测试环境符合所需的隐私控制。

  • 缺乏并行性和数据冲突。考虑到基础设施成本,可用的测试数据库数量有限,同时运行多个测试会引起对数据冲突的关注。例如,测试可能删除或更改其他测试所依赖的记录。这种并行性的缺乏意味着测试变得不那么有效,测试人员不得不在每次测试会话之后担心数据的完整性。

  • 子设置没有多大帮助。尽管创建一个需要较少基础设施的可管理子集是可能的,但这是一个复杂的过程。必须维护引用完整性,而隐私和安全问题仍然存在于子集中。

  • 综合数据可以解决隐私问题,但需要大量的数据库和领域专业知识。创建和填充测试数据库的真实版本需要对现有数据库有深入的了解,并且能够使用适合测试的数据重新创建合成版本。因此,尽管这种方法解决了许多安全和隐私问题,但创建数据库需要更多的开发时间。如果测试数据库很大,基础设施问题仍然存在,并且并行性可能受到限制,这取决于可以同时使用多少测试数据库。

用数据模拟解决测试数据管理问题

Parasoft在SOAtest和Virtualize产品中提供的简化且更安全的测试数据管理方法更加安全,并解决了这些传统问题。那么它与传统方法有何不同?

关键的区别在于它通过在测试和正常应用程序使用期间捕获来自API调用和JDBC/SQL事务的流量来收集测试数据。根据需要对捕获的数据进行屏蔽,并在Parasoft的测试数据管理界面中生成和显示数据模型。可以在界面内推断和配置模型的元数据和数据约束,并且可以执行其他屏蔽、生成和子集化操作。这提供了一个自助服务门户,可以轻松配置多个一次性数据集,为测试人员提供充分的灵活性和对测试数据的控制,如下面的屏幕截图所示:

test-data-model.jpgtest-data-table.jpg

Parasoft的测试数据管理技术通过服务虚拟化得到增强,可以模拟受限制的后端依赖关系来解除测试活动的障碍。一个很好的例子是通过将其与模拟JDBC/SQL事务的虚拟化数据库交换来替换对共享物理数据库的依赖,从而允许进行并行和独立的测试,否则将会发生冲突。Parasoft的测试数据管理引擎扩展了服务虚拟化的功能,允许测试人员根据需求生成、子集、屏蔽和创建个性化定制测试数据。

通过替换数据库等共享依赖项,服务虚拟化消除了托管数据库环境所需的基础架构和复杂性,这意味着隔离的测试套件以及覆盖极端和角落情况的能力。虽然虚拟化依赖关系不是“真实的”,但是有状态的操作(例如对数据库的插入和更新操作)可以在虚拟资产中建模。从概念上看下面这个:

QQ截图20190809143517.png

这种方法的关键优势在于它避免了克隆数据库的复杂性和基础架构成本,允许API级别测试(即集成测试)比其他测试数据方法更早。

这种方法的其他一些好处包括:

  • 因为它不需要底层数据库基础结构,所以它通常可以在开发人员和测试人员工作站上本地运行。

  • 每个测试人员独有的独立测试环境意味着共享测试数据库不存在数据冲突或数据完整性问题。测试变得高度平行,消除了传统方法的等待时间和浪费周期。

  • 测试人员可以轻松地在测试数据库中覆盖可能导致损坏和其他问题的极端情况。由于每个测试环境都是隔离的,因此测试人员可以轻松执行破坏性、性能和安全性测试,而无需考虑共享资源的完整性。

  • 在团队之间共享测试和数据很容易,以避免重复工作,API测试可以定制用于其他目的,如安全性和性能测试。

  • 使用虚拟化服务器消除了底层数据库架构的复杂性。有状态测试可用于提供真实的场景。

  • 通过动态屏蔽仅捕获所需的数据,您不再需要克隆数据库,将集成测试的重点放在API上,而不是维护共享的克隆数据库。

在物理数据库中的测试仍然是必要的,但是只有在整个系统可用时,在软件交付过程的末尾才需要归属。这种测试数据的方法并没有完全消除对实际数据库的测试需求,而是减少了在软件开发过程的早期阶段对数据库的依赖,以加速功能测试。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值