软件测试人员要开始重视分布式数据库了

日期: 2015-08-17 作者:Wayne Kernochan翻译:陈德文 来源:TechTarget中国 英文

分布在多个IT基础设施上的数据让软件测试变的困难。虚拟化新技术提供了一些环节问题的方案。

软件开发测试阶段变得越来越困难。沙盒、容器和数据虚拟化将是软件测试问题的解药。

应用程序不仅是物理和地理位置上相互关联,同时还必须处理一些跨越组织边界的场景,如公有和私有云软件。涉及到数据访问的应用场景时尤其如此:从社交媒体和公有云获得的数据必须成为传统数据仓库和商业智能应用的一部分。

最好的测试环境,是将正式环境做一个完全镜像。要如何才能通过一个远程服务或者一部分软件设计就能抽象出物理硬件的所有细节?

试试采用分布式数据库、沙盒、容器和数据虚拟化来解决这些问题,能够更好的提供更接近服务实际情况的测试环境。

沙盒测试

进行软件测试时,把该服务器从运行环境中隔离出来,在以前是件难事。在同一台硬件上运行企业级应用程序测试,会大大增加生产环境停机的可能性。

现在虚拟化技术已经可以实现硬件与软件的隔离。测试人员在一个看起来像正式运行环境的沙箱中操作——事实上这就是运行环境的一部分,而企业应用程序则安全运行,犹如沙盒不存在一样。

随着分布式数据库的使用,应用程序、数据库和数据库的数据存储分区都运行在不同的硬件上;实际的测试架构则更为复杂。尽管如此,方法是想通的:在每台服务器上创建包含测试应用程序的沙盒、数据库和数据存储,然后假设沙盒控制着整台机器那样运行测试。

软件测试沙盒技术可能是目前可以得到的最接近真实运行环境的方案。沙盒只使用每台服务器的一部分资源;但应用程序的实际运行常常只用到类似的部分。

容器与应用程序性能

虚拟机有很多有点,但它被设计为运行在一个OS内核上,无法运行在同一台服务器上或者被OS优化。这样会导致性能、费用的显著增加,使得其难以在运行测试期间更精确的模拟运行性能。

容器的作用就像虚拟机,但可以使用相同操作系统的内核,并且在较低的级别访问内核。因此,考虑到在z/OS内核上运行Linux系统的代价,容器可以实现接近原生性能的在虚拟化Linux操作系统上运行Linux应用。这个软件测试技术能够提供更好的模拟运行时性能。

大多数分布式数据库都作为应用程序运行在相同的操作系统上。重新设计应用程序,使其容器化,接着就可以在沙盒中测试他们,同时还能获得和运行环境一样的性能优势,并更准确的反映出来。

数据虚拟化

数据虚拟化是个特例,但逻辑在于测试需要考虑一些特殊情况,如某些数据库或数据库/数据拷贝不可用——例如镜像存储的两个镜像之一不可用。

数据虚拟化软件可以让其变得姜丹:软件测试人员可以关闭一些数据库拷贝来模拟硬件故障,并要求应用程序对余下的数据库进行分析,重新定义数据虚拟化软件的其余数据库。在数据虚拟化中,应用程序并不关心数据实际驻留在哪个硬件上。 

完整的分布式数据库测试

将这种软件测试架构整合起来的一种方法是编写一个服务,可以远程调用测试指令,抽象并实现软件具体位置和架构的用户填充。每个物理位置都有一个代理可以同时模拟应用程序用户输入流,采用沙盒中的容器来完成软件的实际测试。在适当的情况下,采用数据虚拟化软件模拟特定的IT基础设施故障。

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

电子邮件地址不会被公开。 必填项已用*标注

敬请读者发表评论,本站保留删除与本文无关和不雅评论的权力。

作者

Wayne Kernochan
Wayne Kernochan

Infostructure Associates主席

翻译

陈德文
陈德文

TechTarget中国特约编辑

相关推荐