论文部分内容阅读
软件测试是保证软件质量,提供可靠服务的重要技术手段。自动化测试可以提高测试效率,但在测试环境构建方面仍存在很多需人工完成的环节。云计算因其计算成本低、可伸缩性强、资源丰富的特点为自动化测试提供了新的框架,提供了大量测试资源,可快速地构建更加可靠的自动化测试环境,提供更方便和低成本的软件测试服务。目前基于Web Service的分布式软件越来越多,其测试技术手段也越来越受到关注。由于Web Service的分布性和多样性,人工测试方法成本高,测试数据充分度差,数据生成效率低下等诸多问题,需要不断提高Web Service的测试自动化程度。本文分析了Web Service功能测试的资源需求,首次提出了基于云环境的Web Service接口自动化测试的技术框架,分析了框架内原子Web Service测试数据的自动生成和组合Web Service测试数据的筛选的关键技术,以及结合云环境,采用任务集均分的并行化调度。首先,针对原子Web Service测试,提出了基于云环境的自动化测试方法。该方法解析Web Service的WSDL文档,获取函数方法的参数、返回值的类型以及约束,由用户补充约束条件,然后根据等价类边界值方法和测试数据生成算法,生成测试数据并与测试脚本结合生成测试用例集,最后部署到云环境中进行自动化并行测试。其次,针对组合Web Service测试,提出了改进的基于BPEL变异的测试数据选择方法,并结合云环境的弹性部署筛选测试数据以及实现测试。该方法通过解析BPEL文档,根据26种变异算子自动生成相应的变异体,并将变异体部署云环境中,再对测试数据按照筛选算法进行筛选。最后,筛选后的测试数据按照原子Web Service同样的方法在云环境下进行并行测试。论文基于开源的云计算平台CloudStack、Web Service测试工具WebInject、Java的Web开发框架SpringMVC搭建了一个基于云环境的Web Service接口自动化测试的测试原型系统。实现了测试任务的提交、测试数据的自动生成、测试虚拟机自动生成、测试任务的简单调度、测试结果的汇总展示功能。最后,通过对系统进行测试实验,实验结果表明,基于云平台的Web Service自动化测试方法可行且提高了测试效率。