论文部分内容阅读
随着时代和技术的发展,SOA以其松散耦合性、高度可集成性、数据信息规范性和数据可复用性等特点备受人们的青睐。Web服务(Web Service)是实现SOA的方式之一,它以XML、WSDL、SOAP和UDDI为核心,引入了一种Web应用的开发、部署和集成新模式。为了确保Web服务的质量,必须对其进行有效的测试,而测试的关键在于测试数据的生成上,快速而简便的生成测试数据成为保证Web服务质量的关键要素之一。本文在对Web服务、软件测试技术、测试用例自动生成技术的深入研究基础上,针对目前Web服务测试用例自动生成研究中存在的测试用例产生的数据类型单一、生成测试用例集不充分、测试用例数目庞大、测试用例带有主观人为因素等问题和Web服务对服务调用者透明性的特点,提出了一种基于扩展WSDL的Web服务测试数据自动生成的新方法,该方法能够有效生成测试数据。本文主要工作如下:1.研究了SOA及Web服务测试的相关概念和技术,并分析了相关技术的不足。2.研究WSDL并扩展了WSDL的类型定义。通过在types元素中添加dataDescription元素来扩展WSDL,用来描述数据类型的基类、显式刻面约束和隐式刻面约束。3.简单测试数据的生成。通过数据类型的基类及相关约束就可以根据相关黑盒测试方法(等价类划分法、边界值分析法、随机法等)有效的生成简单测试数据,同时规定简单测试数据的有效性。4.复杂测试数据的生成。复杂测试数据的生成包括3种:choice型、a11型和sequence型。本文着重讲解了运用最多的sequence型复杂测试数据生成方法,并将IPO算法运用到了Web服务测试数据生成上来;针对Web服务测试数据的有效性,运用了相关的约束策略;最后通过对参数排序的方法,在IPO算法基础之上提出了Extended IPO算法,以此来生成复杂测试数据。5.为了验证本文所提出的基于扩展WSDL的Web服务测试数据自动生成方法的可行性和有效性,本文开发出了一个Web服务测试数据生成工具WSTDGT(Web Service Test Data Generation Tool)并进行相应的仿真及对比实验。实验表明:针对Web服务对服务调用者的透明性,本文提出的基于扩展WSDL的测试数据自动生成方法能够快速而有效的生成Web服务的简单测试数据和复杂测试数据,并能够有效避免人为主观因素带来的加权问题和参数组合爆炸问题。