论文部分内容阅读
随着信息技术的日益发展,软件业竞争的日趋激烈,人们对软件产品的质量意识逐渐加强。仅仅依靠以劳动密集型为特征的传统手工测试,已经不能满足人们对快节奏的软件开发和测试的需求。自动化测试技术为此提供了有效的解决方案,它能够帮助企业降低人力成本,缩短测试周期。然而,软件测试所需的资源不是现成的,所以每次测试都需花“巨资”建立和拆除测试环境,这给测试人员带来了很大的不便。云计算是一种新的计算模式,是分布式计算、并行计算和网格计算的发展。云计算的超大规模、虚拟化、高可用性、通用性、可扩展性和按需服务的特点,为构建虚拟、可靠的软件测试环境,方便低成本的软件测试服务提供了更多的可能性。用户不再需要准备自己的测试环境,可以按需获得测试服务,本文为此建立一套基于云计算环境下的测试系统。本文以上海市教育委员会科研项目“基于云计算的分布式系统并行测试”为背景构建云测试的实验系统框架。通过分析云计算技术及自动化测试技术,采用Eucalyptus作为构建基于云计算的软件测试服务系统的底层架构,采用Autotest作为自动化测试框架。利用Eucalyptus可以灵活的管理虚拟机,如动态的分配、删除虚拟机。Autotest架构可以灵活的添加客户端,其只需通过命令cli add就可以将虚拟机添加至客户端列表。在云测试实验系统框架的基础上本文设计了三个系统模块:镜像匹配模块、控制管理模块、用户管理模块。镜像匹配模块主要负责帮助云端选择具体某个镜像创建虚拟机并搭建测试环境,根据被测系统所需环境及虚拟机镜像的多样性,定义基于xml的镜像及被测软件环境需求的描述规范进行镜像匹配。控制管理管理模块基于Pxssh协议实现数据传输。用户管理模块利用Django框架实现云测试系统客户端。本文根据测试任务所涉及的子任务的拓扑序列及各类测试资源的使用状况提出了以测试用例级为粒度,在原有的表调度算法的基础上加以改进的调度方法。对测试任务,采用表调度算法,对于子任务,则采用优先级、任务依赖关系等任务调度原则进行虚拟机的动态生成与分配。实践证明,本云测试系统在使用过程中,能自动选择镜像进行创建虚拟机,任务调度也大大提高了软件测试效率,并且该系统具有良好的易用性,达到了最初的设计目标,具有重要的理论意义和实用价值。