没有合适的资源?快使用搜索试试~ 我知道了~
Web服务测试与验证的博士论文的总结和致谢
大学BORDEAUX 1数学与计算机科学博士点THESISWeb服务的测试与验证提出天勇 曹接受计算机科学博士学位2010年4月主管委员会:CHARLES CONSEL教授-波尔多理工学院院长ANA CAVALLI教授-Telecom SudParis评论员MANUELNÚE z Professor-Universidad Complutense de MadridRICHARD CASTANET教授-波尔多理工学院考官PATRICK FÉLIX助理教授-波尔多南巴黎大学助理教授Xi考官教授:RICHARD CASTANET教授-PATRICK FÉLIXThesisno:.. . . . . . . .致谢首先,我要感谢我的导师:波尔多理工学院教授Richard Cas- tanet先生和波尔多第一大学助理教授Patrick Félix先生,感谢他们在我的研究生学习期间给予我的耐心、支持和鼓励如果没有他们的宝贵意见和指导,本论文就不可能完成我还想感谢:Ana Cavalli女士,巴黎南部电信教授,Manuel Nunez先生,马德里大学教授(西班牙),他们接受我的论文的评审。波尔多理工学院教授查尔斯·康塞尔先生和夫人南巴黎大学Xi助理教授扎伊迪,为他们接受为负责委员会成员。我很高兴能与我的合作伙伴和朋友在WebMov项目中工作我要感谢Nguyen Thi KimDung ( PUF-HCM ) 、 Julien Borderie 、 Zouhair El Hilali 、 Guillaume Elderde 和Guillaume Lameyre(波尔多大学1),他们在开发原型工具期间帮助了我。我不会忘记感谢我在LaBRI的朋友,我在波尔多的越南朋友,感谢他们在我住在波尔多期间给予我的帮助我想向我的父母表达我最深切的感谢,感谢他们多年来的辛勤工作和奉献。最后,但最重要的是,没有任何语言可以表达我对我妻子的感激之情,感谢她不懈的支持,理解和爱。最后的话留给我的儿子。摘要在这篇论文中,我们提出了Web服务组合的测试方法我们关注的是Web服务编排的单元集成测试以及运行时验证方面。我们定义了一个单元测试框架的编排,这是由一个测试架构,一致性关系和两个建议的测试方法的基础上,时间扩展有限状态机(TEFSM)模型:离线的测试活动,定时测试用例生成,测试执行和判决分配的顺序应用,和在线的测试活动并行应用。对于编排的集成测试,我们结合了两种方法:主动和被动。首先,使用主动方法通过发送SOAP请求来启动编排的然后通过被动的方法收集和分析服务之间的在运行时验证方面,我们感兴趣的是带有一组定义的约束(称为规则)的执行跟踪的正确性。我们建议扩展Nomad语言,通过定义每个原子操作(固定条件)上的约束和操作之间的一组数据相关性来定义Web服务的规则。这种语言允许我们用未来和过去的时间来定义规则,并使用操作:NOT,AND,OR来将一些条件组合到规则的上下文中。之后,我们提出了一个算法来检查的消息序列的正确性并行跟踪收集引擎。具体地说,该算法不存储消息,而是逐个消息地进行验证。关键词:Web服务编排,时间扩展有限状态机,在线/离线测试,主动/被动测试,可扩展性验证,测试用例生成。简历我们在此提出了测试Web服务组成的方法。Nous nous intéressons aux test unitaire et我们定义了一个统一的测试平台,用于编制Web服务,它包括一个测试架构、一个一致性关系和两种基于机器模型的测试方法,用于临时测试:离线测试活动的应用类似于临时测试案例的生成,测试的执行和判决的分配不适用于为了测试一个配器的整合,在首次亮相时,此外,所有的消息对于执行验证方面,我们对验证一个符合所有约束条件的痕迹进行了研究,注意规则,或者不我们建议将Nomad语言扩展到原子能行动的约束,并在网络服务的规则制定行动中建立一个整体的相关性。Ce langage nous permet de definir des règles avec le temps futuret passé,et接着,我们提出了一种算法,用于验证与跟踪Mots-clés:内容图表列表。. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .表的列表。. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .算法列表. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .ixXixii1介绍11.1背景。 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .11.2Web服务。. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .21.2.1 Web服务的组合。. . . . . . . . . . . . . . . . . . . . . . . .31.2.2 Web服务示例。. . . . . . . . . . . . . . . . . . . . . . . . .41.3动机. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .61.3.1 Web服务开发。. . . . . . . . . . . . . . . . . . . . . . . .61.3.2试验阶段的必要性。. . . . . . . . . . . . . . . . . . . . . .61.4捐款。. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .81.5概述。. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .101.6论文发表。. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .102预赛132.1 Web服务标准。. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .142.1.1 WSDL。. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .142.1.2 SOAP。. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .142.1.3.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .152.2英里. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .162.2.1导言。. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .162.2.2基础活动。. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .182.2.3结构性活动。. . . . . . . . . . . . . . . . . . . . . . . . . . .182.2.4范围. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .192.2.5事件处理程序。. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .192.2.6故障处理程序。. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .192.3软件测试. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .192.3.1接触试验。. . . . . . . . . . . . . . . . . . . . . . . . . . .212.3.2测试生成。. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .222.3.3被动测试。. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .242.3.4测试工具。. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .262.4 Web服务的建模编排。. . . . . . . . . . . . . . . . . . . . .282.4.1自动机。. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .282.4.2 Petri网。. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .292.4.3其他形式。. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .30v2.4.4讨论2.5Web服务测试302.5.1基于WSDL的测试2.5.2测试根据质量标准322.5.3被动测试342.5.4其他作品352.6结论353Web服务的测试方法3.1一.导言. 373.2正式模型383.2.1定时扩展有限状态机393.3单元测试433.3.1测试架构433.3.2联系443.3.3离线方法463.3.4在线方法583.4综合测试623.4.1A.方法. 623.4.2检查算法633.5结论664验证674.1一、导言. 674.2A.方法. 694.2.1测试架构694.2.2规则704.2.3检查算法714.3结论765执行情况775.1案例研究:ProductRetriever 775.2WSOTF工具805.2.1一、导言. 805.2.2实验与结果835.3RV4WS工具855.3.1一、导言. 855.3.2实验和结果885.4结论. 916结论和展望936.1综合和结果936.2前景95Bibliography参考书目97A工具教程107A.1 WSOTF 107A.1.1TEFSMdesigner 107A.2 RV4WS 110A.2.1图形界面110A.2.2代理113A.3 TGSE 113A.4 BPEL单元115B xLoan Web服务规范118B.1WSDL文件118B.2密码119索引123图目录1.1 Web服务标准栈。. . . . . . . . . . . . . . . . . . . . . . . . . .21.2Web服务的一般架构。 . . . . . . . . . . . . . . . . . . . . . .31.3 xLoan-用例。. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .41.4 xLoan-BPMN规范. . . . . . . . . . . . . . . . . . . . . . . . . . .51.5 WS开发过程和测试阶段。. . . . . . . . . . . . . . . . . .72.1WSDL文档结构152.2SOAP消息结构162.3xLoan示例17的一个XML结构2.4测试类型分类2.5测试案例233.1TEFSM 42示例3.2SUT的抽象模型及其测试架构443.3D-TEFSM的xtioco关系示例3.4Web服务的离线测试方法3.5测试目的示例(t是时钟)473.6抽象定时测试用例示例483.7伸出时间间隔523.8同步产品和抽象测试用例选择533.9CSUT55型3.10 数据生成示例563.11 测试执行场景示例583.12 在线测试方法说明603.13 综合测试方法概述4.1 Web服务的跟踪收集体系结构5.1ProductRetriever -BPMN规范795.2WSOTF引擎80的架构5.3WSOTF 82的输入格式5.4ProductRetriever 84的TEFSM5.5RV4WS工具的架构5.6RV4WS 86的ParseData接口5.7规则格式示例875.8RV4WS工具88的校核分析5.9试验台架构895.10 产品回收器90的检验分析IX5.11 产品检索器的跟踪收集。. . . . . . . . . . . . . . . . . . . . . .916.1一个舞蹈编排的例子和被测试的部分 . . . . . . . . . . . . . . . .96A.1 TEFSM Designer的主GUI。. . . . . . . . . . . . . . . . . . . . . . .108A.2 测试结果的可视化树。. . . . . . . . . . . . . . . .109A.3 测试结果的图形可视化。. . . . . . . . . . . . . . . . . .109A.4 RV4WS的主要GUI。. . . . . . . . . . . . . . . . . . . . . . . . . . . .111A.5 对话框定义规则。. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .112A.6 对话框定义属性(数据相关性)。. . . . . . . . . . . . . . .112A.7 BPELUnit测试活动的图示. . . . . . . . . . . . . . . . . . . .115A.8 BPELUnit的主要GUI。. . . . . . . . . . . . . . . . . . . . . . . . . .116A.9 BPELUnit的同步发送/接收版本。. . . . . . . . . . . . . .117A.10 BPELUnit的测试用例执行。. . . . . . . . . . . . . . . . . . . . . . . .117表的列表4.1运行时验证的一个例子5.1 WSOTF工具对ProductRetriever的测试结果Xi算法列表1从TEFSM 50生成覆盖树2测试执行573在线测试算法614从当前状态获取传出转换625TEFSM 65中的检查算法6验证算法747verify_future(rule,msg,t,result)758verify_past(rule,msg,t,result)75XII第1介绍内容1.1背景。. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .11.2 Web服务。. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .21.2.1Web服务的组合1.2.2Web服务示例1.3动机. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .61.3.1Web服务开发61.3.2测试阶段的必要性1.4捐款。. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .81.5轮廓101.6发表论文101.1上下文本论文是在法国国家研究院软件技术部分的WebMov1项目中完成的该项目由两个工业合作伙伴(Softeam2和Montimage3)和四个学术合作伙伴(LaBRI,LRI-Orsay4,GET-INT5,Unicamp6 Brazil)组成WebMov的主要目标是通过一个高层次的抽象视图和一个基于逻辑架构愿景的面向服务的架构(即,UML概要文件),从中生成服务组合的XML编排接下来,该编排规范由基于时间扩展有限状态机的变体的形式模型建模[94]。在此基础上,提出了多种Web服务组合的测试方法关于在LaBRI的这个项目的测试和验证研究部分,我们的工作是在Langage Systeme et Réseaux(英语:Language,System1Web服务建模和验证http://webmov.lri.fr2http://www.softeam.fr/3http://www.montimage.com/4http://www.lri.fr/5http://www.it-sudparis.eu/6http://www.unicamp.br/12第1章介绍网络)团队。这是一个在测试领域拥有丰富经验的团队,在波尔多支持了20篇论文。1.2Web服务Web服务[5]旨在克服自动化业务流程交互的挑战以下是W3C 7的定义,特别是Web服务活动中涉及的组:Web服务是:“由URI标识的软件应用程序(即,统一资源标识符),其接口和绑定能够被定义、描述和发现为XML(即,可扩展标记语言)工件。Web服务支持使用通过基于Internet的协议交换的基于XML的消息与其他软件代理进行直接交互。Web服务使用XML格式来包装数据传输。这种格式允许在不同平台上实现的服务,例如:Microsoft .NET,Sun J2EE,在Windows或Linux上运行,可以使用通用格式(即,XML格式)。XML Schema为XML文档提供了类型系统,作为定义数据结构的方法,而SOAP [146](即,简单对象访问协议)是进一步标准化XML消息的结构化类型声明一种互联网协议,如HTTP(即,超文本传输协议)通常用于在另一个服务之间交换这些基于XML的消息。Web服务本身是使用公共标准描述的。每个Web服务都必须发布其调用接口,例如,网络地址、端口、提供的函数,以及使用WSDL调用服务所需的XML消息格式[143](即,Web服务描述语言)标准。为了描述行为,它意味着控制流,数据操作语义和服务质量,我们可以使用诸如XSLT [132],WS-CDL [144],OWL-S [145]等Web服务使用的标准化协议栈如图1.1所示图1.1:Web服务标准栈在提供服务之后,它的规范和功能描述(在WSDL文件中)被注册到一个Web服务注册表中,这允许其他服务发现每个Web服务。如果客户端或服务消费者想要使用这个服务,它将在WSDL [118]注册表中找到文件WSDL,并可以分析它以获得有关服务的信息后7万维网联盟http://www.w3c.org1.2. Web服务3它将生成一个SOAP请求消息,并将其发送到WSDL文件指示的端口。SOAP响应消息将在同一端口上返回或不返回,这取决于服务提供者的支持是同步还是异步。同步服务的特点是客户端调用服务,然后在同一端口上等待对请求的响应否则,对于异步服务,客户端调用服务但不(或不能)等待响应。通常,对于这些服务,客户端不希望等待响应,因为服务处理请求可能会花费大量时间。客户端可以继续进行其他处理,而不是等待响应。稍后,当它确实收到响应时,它将恢复发起服务请求的任何处理我们在这里介绍两种通常用于解决异步服务问题的模式单向和通知操作(或回调):请求和响应是在单独的操作中定义的两个消息。请求被建模为入站单向操作,响应被建模为出站通知操作。每个消息都作为单独的传输层传输发送;请求/应答操作:在此模式中,请求和响应是在单个请求/应答操作中定义的两个消息,并作为两个独立且不相关的传输层传输发送;Web服务的总体架构如图1.2所示图1.2:Web服务的一般架构1.2.1Web服务Web服务是基于SOA应用程序的元素。Web服务可以是SOA应用程序。我们可以重用、集成其他Web服务来拥有一个新的服务。后者通过与其他服务(称为合作伙伴服务)交互来执行,以完成其工作流。我们称这种服务是Web服务的组合,如果我们知道组合的服务之间的我们需要区分Web服务组合的两个问题··4第1章介绍描述:是允许我们在消息级别描述新Web服务的方式,包括消息执行顺序和逻辑行为。业务流程通过指定特定组件的控制流结构和数据流依赖关系来公开单个组件的内部逻辑在编排中,只有一个主流程(名为orchestrator),它使用中央架构控制其合作伙伴服务。可执行流程[132]是定义编排规范的标准语言。我们也可以使用这种语言作为一个业务流程的执行代码Choreography:描述组合中服务的协作,以完成一个或多个对象。编排的目的是暴露合成中涉及的所有各方在这种情况下,没有一个主要的过程作为编排,所有参与者都知道他们正在参与组成的事实,因此,他们应该相互交互的方式WS-CDL [144]和WS-Abstract Process [132]是描述Web服务组合编排的语言。1.2.2Web服务我们在这里展示一个正在运行的Web服务示例:xLoan。它是对贷款审批标准[132]中提出的贷款审批示例该服务是通过使用两个Web服务合作伙伴:评估服务和银行服务。它接收来自客户端的请求消息,其中包含:标识、姓名、按月收入、金额、按月付款和付款月份号。使用这些信息,Loan服务执行一个简单的流程,结果是“loan accept”或“loan reject”。如果申请的金额大于10000美元,风险评估服务用于获得与客户相关的风险的快速评估。如果这个风险是“高”,“贷款拒绝”将返回给客户。如果申请的金额小于或等于10000美元,或风险评估较低,则使用银行服务来批准客户的请求之后,贷款评估将发送给客户。最后,如果贷款评估为“接受”,则此过程将等待一分钟以接收来自客户端的确认消息,并将此消息转发给银行服务。如果没有,一个取消消息将被发送到银行服务作为通知。图1.3和1.4显示了用例和BPMN语言的流程规范其WSDL规范在附录B.1中描述。图1.3:xLoan -用例··1.2. Web服务5图1.4:xLoan - BPMN规范6第1章介绍1.3动机面向服务的体系结构(SOA)是近年来得到广泛关注的一种体系结构范式SOA的主要思想是:重用和集成松耦合的、大部分分布的服务。服务的接口是用抽象接口语言描述的,可以在不知道底层实现的情况下调用。可以动态地发现和使用服务如今,SOA是构建、集成和维护复杂企业软件系统的最新方法。Web服务是基于应用程序来构建这些SOA应用程序的。通过重用和集成其他Web服务,可以将Web服务构建为SOA应用程序服务质量(QoS)影响着应用的质量,测试是一种评估QoS的方法。我们在1.3.1节介绍了基于SOA的Web服务开发过程,在1.3.21.3.1Web服务开发基于SOA的Web服务(WS)开发过程和应用于开发每个阶段的测试技术如图1.5所示。首先,WS规范是用WS规范语言编写的,如WSDL。在第一步中需要做出决策,将WS分解为多个服务8。如果不需要分解,WS将仅由一个服务组成,否则,它将由多个服务组成对于每个服务,将执行WS搜索(步骤2),如果允许测试,则将测试找到的WS。然而,有一些正在运行的服务不允许我们直接测试(主动测试),因为测试可能会影响其数据库,因此一些定位的WS可能会采用被动测试技术,合成复合材料后进行测试在这个阶段,单元测试应用于基于WS的或WS的组合取决于其规范中的如果不存在满足我们标准的现有WS,则将开发新服务(步骤3)。当然,在组合到新的组合之前,会对该服务进行测试在所有合作伙伴服务都准备好之后,我们将它们组合成一个新的服务(步骤4)并发布它(步骤5)。如前所述,如果这些合作伙伴允许我们进行测试,则在发布之前应用集成测试技术最后,对正在运行的服务进行被动测试1.3.2测试阶段在图1.5中,我们提出了测试Web服务的四个阶段:单元测试应用于每个合作伙伴服务和一个新的组合,集成测试是一个选项阶段,用于测试真实环境中服务之间的交互,最后,被动测试用于监控。单元测试:在Web服务的组合中,如果一个服务的质量不好,可能会影响其他合作伙伴和组合。例如,如果某个合作伙伴在其他合作伙伴被更新时出现错误,则组合与某些合作伙伴如果不支持回滚,则会跟踪合作伙伴的错误。另一方面,如果组合不符合其规范,则其所有伙伴服务可能8在xLoan的例子中(1.2.2节),这个Web服务被分解成两个服务:assessment和bank
下载后可阅读完整内容,剩余1页未读,立即下载
cpongm
- 粉丝: 5
- 资源: 2万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- C++标准程序库:权威指南
- Java解惑:奇数判断误区与改进方法
- C++编程必读:20种设计模式详解与实战
- LM3S8962微控制器数据手册
- 51单片机C语言实战教程:从入门到精通
- Spring3.0权威指南:JavaEE6实战
- Win32多线程程序设计详解
- Lucene2.9.1开发全攻略:从环境配置到索引创建
- 内存虚拟硬盘技术:提升电脑速度的秘密武器
- Java操作数据库:保存与显示图片到数据库及页面
- ISO14001:2004环境管理体系要求详解
- ShopExV4.8二次开发详解
- 企业形象与产品推广一站式网站建设技术方案揭秘
- Shopex二次开发:触发器与控制器重定向技术详解
- FPGA开发实战指南:创新设计与进阶技巧
- ShopExV4.8二次开发入门:解决升级问题与功能扩展
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功