APP下载

基于云计算的测试平台

2011-09-25上海交通大学云之力量团队

中国教育网络 2011年4期
关键词:计算资源测试用例开发者

基于云计算的测试平台

作品介绍

随着软件开发技术的不断成熟,软件的测试变得日益重要。不过,测试是一项具有风险的工作,主要体现在以下方面:首先,测试需要大量的资源,如果放在开发者的机器上进行测试,导致开发者在测试的过程中机器性能降低,从而降低了开发者的开发效率;其次,由于测试失败的可能性较高,因此后果无法预计,轻则输出的结果和预想有偏差,重则导致整个系统崩溃;再次,对于部分测试,需要依赖于不同的硬件,如果团队没有足够的资金去购买相应的硬件,这会使测试变得更加困难。

鉴于以上问题,我们需要设计一套更加良好的测试方案,使得开发者达到以下的目的:首先,提高开发者的测试效率,测试不占用开发者的计算资源,并且尽量能够自动进行;其次,提高测试的安全性,即使测试失败,也不会导致整个系统崩溃;再次,测试能够弹性地改变测试环境,即改变测试的资源配置;最后,测试的过程中系统能够尽量自动收集更多的测试数据,比如CPU占有率、内存占用、IO的情况等,能够在测试结束后返回给用户。

基于这些需求,我们通过比较,认为云计算是一个很好的解决方案。首先,云计算能够把计算资源放在云端,几乎不占用客户端的任何计算资源;其次,利用云端虚拟化的天然隔离性,可以保证在一台虚拟机崩溃后不影响整个云系统,从而使得测试的健壮性得到加强;再次,云计算的虚拟化可以通过改变虚拟机的配置,使动态改变资源配置成为了可能。这些特点,使得这个新测试系统能成为一个典型的云计算系统。

价值主张

场景

这套系统主要是为软件开发人员准备的。开发人员把测试的可执行文件加上测试用例提交给云端,然后进行其他工作,云端得到可执行代码和测试用例以后,开启一台虚拟机运行测试用例,在运行的过程中,云系统可以记录这台虚拟机性能参数的变化。当运行完成以后,虚拟机被回收,测试系统把测试结果报告结合系统的性能记录经过处理后一并返回给用户。用户得到报告,从中分析结果,并进行相应的下一步工作。

以下是部分典型的适用于云计算测试平台的场景:

一个测试Unix系统程序的测试平台,由于考虑到系统编程常常涉及底层的指针操作,所以出现故障的概率极高,如果是大型的系统程序,那么及其容易导致系统崩溃。在这个场景中,使用云测试平台能够很好地做到故障的隔离,使测试更加安全,系统恢复的速度也更快。

一个计算密集型系统的压力测试,由于计算密集型系统需要使用大量的CPU资源,如果放到本地测,会使本地及其的CPU占用率居高不下,导致了测试的时候无法进行其他工作。在这种情况下,把测试放到云测试平台是一个明智的选择。

价值描述

这套云测试系统可以给用户带来如下的价值:

首先,增强了测试的健壮性,这套云测试系统特别适合易于导致系统崩溃的测试。

其次,系统加快了恢复的速度。在系统崩溃后,系统的恢复更加快捷,只需要删除崩溃的虚拟机,重新建立新的虚拟机即可。因此,大大增加了测试的效率。

再次,利用云计算的特点,测试可以动态地改变硬件的配置,而且一个测试云可以为许多不同项目的测试提供服务,从而减少了重复部署,降低了开发者的成本。

架构设计

架构

本系统的架构主要由用户界面层、逻辑层和虚拟机管理层组成。用户界面负责获得用户输入,以及返回测试输出;逻辑层负责包括代码和测试用例在虚拟机上的部署,以及收集虚拟机性能数据,和虚拟机返回结果,最后汇总成报告;虚拟机管理层负责虚拟机的建立、回收,以及监控虚拟机的性能等任务。

用到的技术

首先,用到了Java的Spring技术。其次,利用VMWare的虚拟化产品来建立并管理用于测试的虚拟机。再次,可能会用到Hyper HQ,进行部分性能数据的收集和分析,为测试的结果分析提供帮助。

猜你喜欢

计算资源测试用例开发者
基于模糊规划理论的云计算资源调度研究
回归测试中测试用例优化技术研究与探索
基于SmartUnit的安全通信系统单元测试用例自动生成
改进快速稀疏算法的云计算资源负载均衡
基于Wi-Fi与Web的云计算资源调度算法研究
耦合分布式系统多任务动态调度算法
“85后”高学历男性成为APP开发新生主力军
16%游戏开发者看好VR
基于依赖结构的测试用例优先级技术
软件回归测试用例选取方法研究