论文部分内容阅读
软件测试是保证软件质量的重要手段,会耗费大量的人力物力。自动化测试在近年来有着显著的发展,其在节省测试开支方面有着明显的作用,但仍存在诸多需要人工完成的环节。云计算的出现为自动化测试提供了新的可能,其资源自动生成、弹性分配的特性将大大降低自动化测试的成本。云计算的弹性服务、资源池化、按需服务、可计费服务和泛在接入等特点,使得我们可以构建更加可靠的自动化测试环境,提供更加方便和低成本的软件测试服务。云测试环境的自动化配置和测试任务的调度对云测试的效率有着重要影响。测试项目变动时,测试环境的配置往往会耗费大量人力。而如果没有优秀的测试任务调度方法,将会造成云计算资源的极大浪费,降低自动化测试云的整体效率,提高自动化测试云的运营成本。本课题针对云测试中并行任务的调度进行研究,重点研究了自动化测试中测试环境的自动化配置以及测试任务的调度方法。首先,确定测试环境资源的描述规范,使用本体来描述测试所需环境,并通过本体的匹配来实现测试环境的自动化配置与部署。之后,通过定义测试用例、测试流、可并行测试路径,描述了软件测试中功能点和基础测试单元的关系,发掘出了可并行测试路径,为任务调度提供了基础。测试任务调度属于多目标优化问题,很难在线性时间内求出最优解。针对这一特点,提出了综合了改进蚁群算法和DAG网络的测试任务调度方法。论文基于开源的云计算框架OpenStack、web自动化测试工具selenium、JAVA的Web开发框架Struts以及Web脚本框架JQuery搭建了一个基于云计算的自动化软件测试系统。实现了测试项目的管理、测试任务的提交、测试状态的监控、测试镜像的匹配、测试镜像的自动化配置、测试虚拟机的自动生成、测试任务的分发调度、测试结果的回收功能。最后,通过对系统进行测试实验,验证了本文所提出的方法的有效性,证明了自动化测试云可以提高软件测试效率、节省软件测试成本。