论文部分内容阅读
作为保证软件质量的重要手段,软件测试正在发挥日益重要的作用。传统的软件测试采用精简测试用例的方法来提高测试效率,但是测试用例的精简会降低发现缺陷的概率,影响测试质量。并行测试技术被引入到软件测试领域便是为了解决这一问题。但是,并行测试需要构建集群环境,花费巨大,资源利用率不高;且软件测试的结果需要人工统计,耗时巨大。云计算的出现为自动化测试提供了新的支持,资源自动生成、弹性分配的特性将大大降低自动化测试的成本。云计算的弹性服务、资源池化、按需服务、可计费服务和泛在接入等特点,为构建高效低成本的测试环境提供了新的途径,但也提出了新的挑战。在云计算环境中,传统的测试用例需要根据云计算的特点进行并行化处理,同时充分测试的需求也要求大量测试数据的自动化生成。本课题以Web应用系统为对象,针对云测试中并行测试用例的自动生成进行研究,主要包括测试脚本的并行化处理以及测试数据的自动化生成方法。首先,通过对Web应用系统的测试场景、场景流图以及测试路径等内容的定义,确定了软件的可并行测试路径,实现了基于深度优先遍历的并行测试脚本自动生成。之后,通过对脚本中的变量添加约束,为目标路径建立了评价函数,进而提出了基于搜索的测试数据自动生成算法,用于大量测试数据的生成。最后,将并行测试脚本与大量测试数据耦合,便得到了可在云平台上并行执行的测试用例。论文基于开源的Web自动化测试工具Selenium、云计算框架CloudStack和JAVA的Web开发框架SSH搭建了一个自动化云测试原型系统。实现了测试项目的管理、测试脚本的提交、测试数据的生成、测试任务的调度、测试结果的回收等功能。最后,通过对Web应用系统进行测试实验,验证了本文所提出的方法可以高效地为云平台提供测试用例输入,减少测试用例创建时间,这些测试用例的并行执行,加速了测试过程,降低了测试环境成本,提高了测试质量。