云测试是一种利用云优势的测试方法,主要用来降低测试所耗时间或者模拟应用的真实流量。此外,为了满足高流量web应用的扩展需求,测试需要具有扩展性。
Matt Heusser提到,过去非常流行测试实验室,占用了许多空间和各种机器。
实验室面积数百平方英尺,包含5-20台计算机。每一台计算机配置不同组合的系统软件。我们不得不安装、测试,然后可能为了下一次测试而重装机器。
如今情况大有不同。在类似VMware Fusion的工具的帮助下,我们可以在同一台机器上运行不同的软件配置。同样,在同一台物理设备上也可以运行若干服务器的实例。因此,创建测试环境就像输入一行命令那样简单。为了减少测试执行的时间,Matt建议使用分布式计算方法。
想象一下,把测试集合划分成十几个(或者一百个)测试,分配到15台计算机上,每台计算机执行一个测试,反馈结果,然后执行下一个。如果使用虚拟化工具,可以从云托管提供商以极低的价格租用处理器时间和空间。一次测试周期花费的时间只取决于最慢的那个测试。
凭借例如模式驱动自动化测试的方法,我们可以在很短时间内并发执行各种测试场景。
Jim Ensell认为云对敏捷开发产生了积极的影响。据Jim介绍,
开发人员和QA经理会经常希望利用云资源来多平台测试、并发运行单元测试和功能测试、有效地执行负载测试。这些测试特别适合公共云,因为它们会大规模使用云资源,并且随着时间推移有不同的需求变化。而且,云资源的定价模式也非常适合。
Devcentral提到如今Web应用的扩展性需要通过类似扩展的测试环境来测试。感谢云资源,公司可以避免耗费成本来搭建测试基础设施。
自动化的应用互联网扩展也可以采取同样的方式,以较低的成本用于互联网扩展测试解决方案。因此,你所需的只是一个能够部署在云中的负载生成客户端,一些云计算环境,和一种控制这些分布式客户端的方法,通过这种方式可以生成必要的扩展负载让应用和基础设施达到极限。
但是,云测试存在一些潜在问题。
比如,测试人员可能会像开发团队一样提问:“如果云出现故障了怎么办?”其他重要的问题还包括备份策略、修复策略和从测试数据丢失中恢复的机制。
尽管有一些问题,云提供了测试的强大平台。关键元素在于定义需求,并找到办法以较低的成本有效地利用巨大的资源。
转载自: http://www.infoq.com/cn/news/2011/05/testing-in-the-cloud