文献综述: |
一、研究背景 随着Web服务技术日益广泛的应用,对Web服务的测试已成为Web服务研究中的热点,尤其是在服务动态发现、选择和使用时,测试是检验第三方提供的Web服务功能是否正确可靠的一个关键技术,是保证对第三方提供的Web服务的使用方式正确性的有力途径,是建立服务消费者和提供者之间信任的客观依据。 当服务在运行时刻动态地发现、选择和使用第三方Web服务时,要求完全自动地完成全部测试过程,这对软件测试技术提出了更高的要求。而另一方面,面向服务架构SOA(Service-Oriented Architecture)的特性使得Web服务测试比传统软件测试更加困难。服务系统的独立性和自主性使得测试者缺乏对第三方服务运行时的控制以及有效的观察手段,对Web服务进行完全自动化地测试更加困难。其中,如何完全自动地对动态发现的Web服务执行测试用例是Web服务软件自动测试技术尚未解决的问题。 形式化规约是实现自动化测试的重要基础,形式化规约不仅可以在软件开发过程中减少错误的引入并消除歧义,而且可以自动生成测试用例并对输出结果进行验证。相比于其他形式化规约,代数规约具有高度抽象、完全独立于软件实现细节、能够在不暴露被测系统实现细节的前提下描述系统的可观察行为和支持自动化测试的特点。这些特点使得Web服务测试在缺乏服务实现细节的情况下可以描述服务可观察行为,在服务动态发现和组合时可以进行自动化在线测试。 测试执行是Web服务测试的重要组成部分,是实现Web服务测试自动化的必备条件。本课题研究基于代数规约的Web服务测试技术,设计基于代数规约的Web服务测试中非单线测试序列转换为单线测试序列的方法,并开发相应的原型工具。 二、相关技术及研究现状 1.Web服务测试 近十年来,Web服务测试是面向服务计算领域一个十分活跃的研究课题,已从单个服务的静态功能测试发展到服务组合的动态运行能力测试。 早期的Web服务测试方法主要使用WSDL 文档中的XML Schema 数据类型信息,然而,WSDL文档只包含输入数据类型等语法信息,缺少描述服务行为的语义信息,影响了该类方法的有效性。 针对上述问题,研究人员提出扩展WSDL 来描述输入输出依赖关系和服务操作调用等语义信息,进而开展基于语义描述的Web 服务测试研究。基于语法描述和语义描述的测试方法主要根据服务提供商发布的WSDL、OWL-S、WSMO、BPEL等服务描述文档进行测试。但是,由于这些服务描述文档缺乏对服务功能的准确规约,服务功能的正确性不能得到充分和有效的测试。一个有效的解决途径是基于形式化规约的测试方法。 应用形式化规约方法描述Web服务能够提供一种可测试和可验证的服务规约。大部分已有研究工作将WSDL、OWL-S、BPEL 或WSMO 等服务描述转换成形式化规约后再进行测试。应用形式化规约方法主要难点在于将服务描述转换成形式化规约中往往需要人工介入或者额外的服务语义描述,难以支持Web 服务的在线自动化测试。 2.基于代数规约的测试 近年来,基于代数规约的测试技术对于基于构件和面向对象的软件测试趋于实用。代数规约可以在较高的抽象层次上定义软件的功能,能够在不依赖软件实现细节的前提下描述系统的可观察行为。代数规约与其他形式化方法相比较而言要更易学易用。因此,代数规约很合适于在缺乏服务实现细节的情况下对Web服务进行抽象描述,不仅能够描述服务功能,而且能够描述服务的动态行为。在大量案例研究的基础上,Liu等完善面向服务软件的代数规约语言,提出了SOFIA语言。 另一方面,基于代数规约的测试支持完全自动化的测试过程,包括生成测试用例、生成测试平台和检验测试结果正确性,这对于Web服务自动化测试来说十分重要。但是,已有基于代数规约的自动化测试技术均依赖于对被测对象进行创建、初始化和复制等操作来设置测试环境,通过保存和比较被测对象的状态等操作来检验测试结果的正确性,而面向服务的体系结构和Web服务并不支持这些操作。针对上述问题,Liu等提出了基于代数规约的Web服务单体测试方法(MonicTesting)和自动化测试框架,并针对亚马逊服务AWS、GoGrid等多个实际工业服务进行了案例研究。 3.代数规约语言SOFIA SOFIA是在上述代数结构定义的基础上用来描述面向服务系统的代数规约语言。代数规范语言SOFIA来描述服务的语义。 它使用代数和协同代数统一软件规范。SOFIA语言旨在以准确和机器理解的方式指定服务的语义。 代数规约语言SOFIA的整体结构是一组规约单元集合,其中每一个规约单元被分为基调单元和公理单元,以及定义辅助功能和概念的单元,共定义四个单元,用巴克斯诺尔范式(BNF)表示如下: lt;Specificationgt; ::=lt;Unitgt;* lt;Unitgt; ::= lt;Spec Unitgt; SOFIA规范的整体结构是规约单元的集合,从概念上反映了软件系统和现实世界的结构。SOFIA规约还支持规范的模块化开发,其通过将每个规范单元分成两个部分单元——基调单元和公理单元——来进一步增强。其中,基调单元用基调定义其语法,而公理单元则用一套必须满足的公理定义实体的语义。用户还可以在定义单元中定义辅助功能和概念,这对于定义许多单元通用的概念和功能特别有用。 4.单线测试序列技术 基于代数规约的传统测试技术主要是多线测试序列技术。多线测试序列技术依赖于执行多个操作序列,即这些技术要么需要生成被测对象的多个实例,要么需要对被测对象进行初始化,从而不适用于Web服务自动化测试。 为解决这一问题,我们提出了单线测试序列这一新技术。单线测试序列技术将由两个等价项组成的测试用例转换成只包含一个被测对象实例、不包含实例初始化、只对被测对象进行状态修改与状态检查的一个线性序列,该线性序列称为单线测试序列。单线测试技术适用于Web服务自动化测试。 单线测试序列生成的主要思想是用测试数据对待测规约公理中所有非状态变量实例化,从而生成一组原始的状态增量测试用例,然后为状态增量测试用例的每个基项构造测试执行图TEG,进而组合所有基项的测试执行图TEGs合并成一个测试执行图TEG,最后判断TEG是否存在单线测试序列,若存在,则依据深度优先遍历算法从TEG中生成单线测试序列。 三.参考文献 [1] Zhu H, Liu D, Bayley I. Reference manual of the SOFIA algebraic specification language[J]. Department of Computing and Communication Technologies, Oxford Brookes University, Technical Report TR-CCT-AFM-01-2013, 2013. [2] Liu D, Zhu H, Bayley I. SOFIA: An Algebraic Specification Language for Developing Services[C]// IEEE, International Symposium on Service Oriented System Engineering. 2014:70-75. [3] Liu D, Liu Y, Zhang X, et al. Automated Testing of Web Services Based on Algebraic Specifications[C]// Service-Oriented System Engineering. IEEE, 2015:143-152. [4] Liu D, Wu X, Zhang X, et al. Monic Testing of Web Services Based on Algebraic Specificatio-ns[C]// 2016 IEEE Symposium on Service-OrientedSystem Engineering. IEEE, 2016:24-33. [5] Kong, L., Zhu, H., and Zhou, B., “Automated testing EJB components based on algebraic specifications,” in Proc. of IEEE COMPSACrsquo;07, vol. 2. Beijing, China, pp. 717–722, 2007. [6] Zhu, H., “A Note on Test Oracles and Semantics of Algebraic Specifications”, in Proc. of QSICrsquo;03, Dallas,USA, pp. 91–99, 2003. [7] Hierons R M, Bogdanov K, Bowen J P, et al., “Using formal specifications to support testing,” ACM Computing Surveys, vol. 41, no. 2, pp. 1–76, 2009. [8] Bertolino, A., Frantzen, L., Polini, A., et al., “Audition of web services for testing conformance to open specified protocols”, Architecting Systems with Trustworthy Components. Springer Berlin Heidelberg, pp. 1–25, 2006. [9] Yu, B., Kong, L., Zhang, Y., and Zhu, H., “Testing java components based on algebraic specifications,” in Proc. of ICST 2008, Lillehammer, Norway, pp. 190–199, 2008. [10] Keum C. S., Kang, S., Ko, I. Y., et al., “Generating test cases for web services using extended finite state machine”, Testing of Communicating Systems, Springer Berlin Heidelberg, pp.103–117, 2006. [11] Web Services Glossary,[Online]http://www.w3.org/TR/ws-gloss/ [12] Bozkurt M, Harman M, Hassoun Y. Testing and verification in service-oriented architecture: a survey[J]. Software Testing Verification amp; Reliability, 2013, 23(23):261–313. [13] Gaudel M C. Software Testing Based on Formal Specification[M]// Testing Techniques in Software Engineering. Springer Berlin Heidelberg, 1991:215-242. [14] Offutt J, Xu W. Generating Test Cases For Web Services Using Data Perturbation[J]. Acm Sigsoft Software Engineering Notes Homepage, 2004, 29(5):1-10. [15] Bai X, Dong W, Tsai W T, et al. WSDL-based automatic test case generation for Web services testing[C]// Service-Oriented System Engineering, 2005. SOSE 2005. IEEE International Workshop. 2005:207-212. |
以上是毕业论文文献综述,课题毕业论文、任务书、外文翻译、程序设计、图纸设计等资料可联系客服协助查找。