论文摘要
业务流程执行语言(Business Process Execution Language, BPEL)是一种Web服务(Web Service, WS)组合语言。随着BPEL流程变得越来越复杂,通过测试来保证流程的可服务性和可靠性也变得越来越重要。在传统的软件开发过程中,面向缺陷模式的静态测试是一种有效的质量控制手段,这种方法在BPEL中也非常有效。本文提出了一种面向缺陷模式的BPEL缺陷测试系统(BPEL Defect Testing System, BPELDTS),通过解析BPEL和网络服务描述语言(Web Services Description Language, WSDL)源代码文件以生成多种辅助数据结构,并结合改进的有限自动机理论,实现了对BPEL流程的自动化静态测试。系统包括界面模块、输入模块和分析模块,其中分析模块是核心。包括BPEL分析子模块、WSDL分析子模块、缺陷模式状态机描述文件分析子模块和缺陷模块分析子模块。BPEL分析子模块用来验证BPEL文件的词法和语法、生成包括EMF活动对象树、符号表、控制流图和定义使用链在内的辅助数据结构。同时,该模块还可以单独作为BPEL解释器使用。WSDL分析子模块用来验证WSDL文件的词法语法和绑定JXPath生成WSDL模型,方便BPELDTS访问WSDL的抽象语法信息。缺陷模式状态机描述文件分析子模块用来验证描述文件的词法语法和生成状态机模板。缺陷模块分析子模块用来创建和运行状态机实例,查找并报告缺陷。此外,本文重新整理定义了规范中的静态分析要求,使之符合BPELDTS的要求。结合实际项目经验,本文还总结了8种自定义的缺陷模式,给出了详细的缺陷描述。最后,本研究实现了BPELDTS原型系统,并通过实例验证了系统的可行性。