论文部分内容阅读
现有的服务组合建模语言中,业务流程执行语言BPEL已成为业界标准。越来越多的工作流通过BPEL进行建模,需要相应的测试技术来保证服务组合能够正确有效地运行。
目前一些研究者试图通过模型检查技术来提高服务组合的可靠性,将WSFL、BPEL或OWL-S转化成相应的模型,并利用已有的模型检查工具验证服务组合是否满足所需要的属性或者是否存在例如死锁等有害属性。由于Petri网善于描述并发行为和分析动态变化系统,因此被广泛地用于Web服务组合的建模。然而与CFG相比,Petri-Net的程序表示过于复杂,并且难以对服务组合流程进行精确的数据流分析。
在测试用例生成方面,通过基于白盒的路径覆盖策略生成测试用例是比较常见的方法,但现有的研究方法大都忽略了对服务组合中数据依赖的分析,并且缺少成熟的用于服务组合的测试工具。为此,本文以传统软件的数据流测试思想为基础,试图创建一个面向Web服务组合的、较为系统的数据流自动测试工具,可以自动地检测程序中有害的数据流异常并根据各种数据流覆盖策略生成测试路径。
论文的工作主要包括以下几个方面:(1)结合WSDL分析了BPEL的数据依赖性,并对现有的BPEL的模型表示方法进行了改进,从而可以精确地收集每条测试路径的变量约束以帮助测试用例的生成。文中提出了死路径消除的表示方法,很好地解决了数据流分析中的困难。(2)给出了一个为服务组合流程创建所需要的标注了定义-使用信息的控制流图,并在此基础上给出了一组算法,可以自动生成流程中有效的定义-使用对以及一系列数据流覆盖策略对应的测试路径,并对程序进行静态数据流分析,自动检测程序中可能引起错误的数据流异常。(3)开发了基于数据流的Web服务组合自动测试工具DFTT4WSC,可自动完成BPEL文档的解析并提供流程的图形化显示,对服务组合中~u、d~、dd等数据流异常进行检测和定位,根据all-defs、all-uses、all-p-uses、all-c-uses、all-du-paths等各种数据流覆盖策略选取测试路径并提供完整的变量约束信息以及覆盖率统计信息,最后通过一个旅行代理服务的测试对工具进行了评测。