首页 理论教育云测试研究进展及应用实践

云测试研究进展及应用实践

【摘要】:云测试是在云计算研究中迅速崛起的一个领域,近年来已经获得了相当高的重视[9]。CloudTest通过EC2的云端基础设施服务模拟成千上万个使用者,对网站或Web应用程序发出请求,以测试网站或Web应用程序的性能。CloudTest能及时将测试结果如响应时间、模拟的使用者量等数据以可视化的图表形式展现给测试者。此时,为了获得强大的运算能力只需要租用云测试服务进行测试即可。目前,尽管在云测试的理论和T具开发方面已经取得一定成果。

云测试是在云计算研究中迅速崛起的一个领域,近年来已经获得了相当高的重视[9]

著名的软件测试国际会议ICST(International Conference on Software Testing)将云计算的测试列为焦点问题,并在2009年和2010年举办两次针对云测试的专题讨论会STITC( Software Testing in the Cloud),专门探讨和研究云计算测试相关的问题。

自此,许多企业组织、研究团体及标准化组织都启动了相关研究,很多软件商也纷纷推出各类云计算的测试产品。学术界也提出各自的理论方法和技术成果。

对不同类型的计算机系统和软件应用所需要的测试方法和技术不尽相同,云测试也是如此。到目前为止,在云测试的不同领域都已有研究成果,包括安全测试[10]、自主自我测试[11]、存在服务测试[12]、云计算基础架构互操作测试[13]、云存储系统测试[14]和面向移动应用的云测试[15]等。

市场上,各类云计算的测试工具或产品已经很多,如关于网站应用程序性能测试,目前主流的工具如下:

1)SOASTA 是一个总部位于加州的专门从事云测试的科技公司。CloudTest是SOASTA所提供的云端测试服务工具。CloudTest通过EC2的云端基础设施服务模拟成千上万个使用者,对网站或Web应用程序发出请求,以测试网站或Web应用程序的性能。CloudTest能及时将测试结果如响应时间、模拟的使用者量等数据以可视化的图表形式展现给测试者。通过CloudTest,用户可以在任何时问、任何地点,通过计算机的浏览器和互联网开展测试工作,这为中小型IT企业提供了很大的便利。由于中小型企业在软件测试过程中可能需要模拟出上百万个虚拟用户来进行性能和压力测试,然而他们的硬件难以提供如此大规模的计算能力。此时,为了获得强大的运算能力只需要租用云测试服务进行测试即可。(www.chuimin.cn)

2)LoadStorm是一套云端负载测试T具,LoadStorm所使用的云端基础设施服务为EC2,用户提供网站或网络应用程序的URL给LoadStorm,LoadStorm即会仿真用户对测试象进行开启页面或单击连接操作。在LoadStorm的官方文件提到主要的测试报表内容有平均响应时间、错误率、每秒请求数、每秒吞吐量、峰值响应时间和同时发出请求的使用者数量。

3) Load Impact是一家位于瑞典的Gatorhole AB公司所开发的一个使用EC2服务的云端网站压力测试服务,通过模拟不同的在线人数所得到的网站响应时间,来计算出网站的最大负载。Load Impact类似于 LoadStorm,测试者提供网站应用程序的URL给Load Impact,Load Impact即对测试对象发出HTTP请求并测量响应时间。测试者还可以通过Load Impact提供的API编写测试脚本,并设定模拟的使用者数量、测试运行时间、该测试案例所占的比例以及发出HTTP请求的主机所在地,用来模拟同一时间点、不同地点与不同使用者的行为。目前免费版本仅提供模拟最多50个同时在线的使用者。

在学术界,各种技术和解决方案也不断涌现。比如参考文献[7]提出一种TaaS的模型,此模型主要关注云测试所需资源的分配和调度算法,作者还评估了该云服务测试模型的有效性。参考文献[16]利用云计算服务资源构建网络管理系统的测试环境,有效地解决大规模测试环境构建困难的问题,准确地测试了大规模网络管理系统的性能。参考文献[17]提出一个基于云的并行符号测试引擎Cloud9,利用云计算的资源解决了以往符号测试中内存和CPU资源不足、无法应用于大型软件系统测试的缺陷。Cloud9可以运行于EC2环境。参考文献[18]提出一个称为D-Cloud的云计算测试环境。D-Cloud使用多个虚拟机节点,QEMU作为虚拟化软件,以及将Eucalyptus作为云管理软件。D-Cloud使用云计算资源来运行一个分布式软件,虚拟机允许进行各种配置。为了测试系统的容错功能,D-Cloud采用故障注入方法作为测试场景的一部分。

目前,尽管在云测试的理论和T具开发方面已经取得一定成果。但是,还有很多问题没有解决,在未来几年内,这个有前途的领域将会越来越受到关注。