基于面向服务的测试用例生成研究

2015-12-02 20:28滕士波费琪
现代电子技术 2015年22期

滕士波+费琪

摘 要: 面向服务架构(SOA)已成为Web分布式系统发展的主要趋势,越来越多的Web应用软件通过这种新的软件架构进行开发。Web服务质量的有效性变得日益严峻。WSDL是描述Web服务功能及对外接口的重要文件,给出了依据WSDL生成Web服务的测试方法,首先定义了接口输入数据的标准模型,通过解析 WSDL 文件生成树状结构模型;其次提出了一种依据树状结构模型生成各节点间的依赖关系的算法,并通过对依赖关系进行分析并结合等价类划分及边界值测试方法生成测试数据;最后通过在 WSDL文件中的Operation 字段增加前置操作及后置操作,产生了操作流,结合生成的测试数据,从而产生面向服务的测试用例。

关键词: Web服务描述语言; 树状模型; 节点依赖关系; 操作流

中图分类号: TN710?34; TP301.6 文献标识码: A 文章编号: 1004?373X)2015)22?0037?04

Web 服务以 UDDI,WSDL,SOAP 为核心[1],独立的服务测试从保证各服务节点的质量出发,测试服务的实现在功能、性能等各方面与发布的服务描述的一致性。为了保证 Web 服务的质量,必须进行详细的测试,目前,基于 WSDL 生成 Web 服务的测试用例已取得了一定的进展,文献[2]依据 WSDL 文档产生测试数据,但只能产生 int,float,double 型的测试数据。文献[3?5]基于数据类型的抽象模型产生测试数据,仅考虑了简单类型的测试数据,未考虑复杂类型的测试数据。

该文首先通过对WSDL文件各数据类型进行分析,通过逐步遍历并解析提取关键节点生成T模型;其次依据T模型中的各节点间的关系通过等价类划分、边界值等方式生成根节点的测试数据;最后通过对WSDL文件中服务的操作序列进行排序,从而可通过结合操作序列及测试数据生成测试用例,通过执行各测试用例并查看结果是否满足需求规格说明中规定的功能来验证服务的有效性。

1 WSDL数据类型模型化

WSDL中的Types是一个数据类型定义的容器,包含了所有在消息定义中需要的 XML 元素的类型定义[6]。数据类型包含3种:内置类型、简单类型和复杂类型。内置类型由 XML Schema定义,常用的内置类型包含:字符串型、小数型、整数型、布尔型、日期型及时间型;简单数据类型由用户自定义,在WSDL中通过来标志元素为简单数据类型,简单数据类型可通过在内置数据类型中增加 restriction 或者在其他简单数据类型(list,union)中获取;复杂数据类型通过标志元素为复杂数据类型,通过关键字 sequence,choice及all定义子元素出现的方式。若为 sequence,复杂类型元素的子元素必须按定义的顺序出现;若为choice,复杂类型元素的所有子元素只能出现一个;若为all,复杂类型元素结构中的子元素可以任一顺序出现。

4 测试用例生成

综上所述,已经知道测试数据的生成方法与服务提供操作流方法,下一步只需将测试数据放置到 operation 中即可,再将此用例放置到 soap 消息中,发送至被测软件,便可对服务进行自动化测试。通过人工查看服务对每个测试用例的响应结果是否与软件需求规格说明规定的响应结果一致,若一致,则此用例通过;若不一致,通过对服务进行分析,查找不一致的原因,对待测软件进行修改,并重新执行该用例,保证服务响应结果与软件需求规格说明保持一致。

5 结 语

本论文通过对服务的描述文件 WSDL 进行解析,生成树状结果模型,分析各节点间的依赖关系,生成测试数据,通过对WSDL 文件中的操作流进行分析,产生操作序列,依据操作序列及测试数据生成测试用例,从而更充分地对面向服务架构的软件进行测试。

参考文献

[1] 周彦晖,邹显春,张为群.XML与Web数据集成及技术实现[J]. 西南师范大学学报:自然科学版,2001,26(3):255?259.

[2] 姜瑛,辛国茂,单锦辉,等.一种 Web 服务的测试数据自动生成方法[J].计算机学报,2005,28(4):568?577.

[3] HANNA S, MUNRO M. An approach for specification?based test case generation for web services [C]// 2007 IEEE ACS International Conference on Computer Systems and Applications. Washington: IEEE, 2007: 16?23.

[4] JIANG Y. A method of automated test data generation for web service [J]. Chinese journal of computers, 2005, 4(28): 12?15.

[5] BAI X, DONG W, TSAI W, et al. WSDL?based automatic test case generation for web service testing [C]// Proseedings of the 2005 IEEE International Workshop on Service?Oriented System Engineering. China: IEEE, 2005: 215?220.

[6] W3C Recommendation. Web services description language (WSDL) Version 2.0 Part 0: Primer [EB/OL]. [2007?06?26]. http://www.w3.org/TR/2007/REC?wsdl20?primer?20070626.