(计算机软件与理论专业论文)基于xbfg的组合服务回归测试研究.pdf_第1页
(计算机软件与理论专业论文)基于xbfg的组合服务回归测试研究.pdf_第2页
(计算机软件与理论专业论文)基于xbfg的组合服务回归测试研究.pdf_第3页
(计算机软件与理论专业论文)基于xbfg的组合服务回归测试研究.pdf_第4页
(计算机软件与理论专业论文)基于xbfg的组合服务回归测试研究.pdf_第5页
已阅读5页,还剩44页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

摘要 摘要 面向服务的应用集成是服务计算的主要应用领域,服务组合是应用集成的关键技术之一。服务良好的 复用性、灵活性和松耦合特征使得面向服务的计算成为一种具有里程碑意义的分布式计算技术,也使组合 服务的演化和维护呈现了新的规律。b p e l 组合服务是由b p e l 流程、接口以及与流程交互的成员服务组 成的有机整体,因此b p e l 组合服务的演化也包括流程的变化、接口的变化和绑定的变化三个方面。 如何针对组合服务的特点制定符合其演化规律的回归测试方案,是一项值得深入研究的课题。现有的 组合服务回归测试方法一般只对业务流程加以比较分析;而本文提出的基于x b f g ( e x t e n s i b l eb p e lf l o w g r a p h ) 的组合服务回归测试用例选择与生成方法,能够从服务集成者的角度对包括业务流程在内的b p e l 组合服务进行变更影响分析。本方法可以识别b p e l 组合服务在演化过程中发生的更改,从而找到受流程、 绑定、接口变化影响的测试路径,并使用选择性再测试技术生成回归测试用例集。这一过程是通过构造含 有服务接口、路径条件等信息的扩展控制流图来实现的。 x b f g 对b p e l 流图进行了扩展,在控制流的基础上添加了消息流,可以完整地表达组合服务的行为。 此外,x b f g 模型元素中添加的绑定信息和谓词约束信息,可以用来选择测试路径、生成测试数据。 理论和实验分析表明,通过该方法产生的回归测试用例能够在组合服务流程、绑定以及与流程相关的 接口发生变化的情况下达到较高的变更覆盖率。依据该方法设计的b p e l 回归测试用例选择与生成工具 r t g e n i u s 4 b p e l 实现了基于图形的路径比较和选择算法,提供了从服务建模到回归测试用例选择与生成的 完整解决方案。 关键词:回归测试:组合服务;测试用例;b p e l ;x b f g 东南大学硕士学位论文 a b s t r a c t s e r v i c e - o r i e n t e di n t e g r a t i o ni sam a i na p p l i c a t i o nf i e l do fs e r v i c ec o m p u t i n g ,s e r v i c ec o m p o s i t i o ni sak e y t e c h n o l o g yo fs o c s e r v i c e sa leh i g h l yr e u s a b l e ,f l e x i b l ea n dl o o s e l yc o u p l e d ,w h i c hm a k e ss e r v i c e s - c o m p u t i n ga s i g n i f i c a n tt e c h n o l o g ya m o n gd i s t r i b u t e dc o m p u t i n g h a v i n gt h e s ec h a r a c t e r i s t i c s ,t h ee v o l u t i o n , t o g e t h e rw i t ht h e m a i n t e n a n c eo fc o m p o s i t es e r v i c e st a k eo nan e wl o o k b p e lc o m p o s i t es e r v i c ei si n t e g r i t yo fp r o c e s sa n d c o m p o n e n ts e r v i c e s ,s oi t se v o l u t i o nw i l lc o v e rc h a n g e so fp r o c e s s ,b i n d i n g sa n di n t e r f a c e so fc o m p o s i t es e r v i c e a n dc o m p o n e n ts e r v i c e s a sar e s u l t , i ti st ob es t u d i e df u r t h e ro nh o wt oo p e r a t er e g r e s s i o nt e s t i n go nc o m p o s i t es e r v i c ea c c o r d i n gt o i t sc h a r a c t e r i s t i c s c u r r e n tr e s e a r c h e so n l yf o c u so nt h eb u s i n e s sp r o c e s s ,i g n o r i n go t h e rp a r t so fc o m p o s i t es e r v i c e t h ex b f g - b a s e dt e s tc a s es e l e c t i o na n dg e n e r a t i o na p p r o a c hi sp r o p o s e dt og u a r a n t e et h ef u n c t i o n a la v a i l a b i l i t y d u r i n ge v o l u t i o no fb p e lc o m p o s i t es e r v i c e a sas e l e c t i v er e g r e s s i o nt e s t i n gm e t h o d ,i tg e n e r a t e sr e g r e s s i o n t e s t i n gs u i t et h r o u g hc o n t r o l - f l o wa n a l y s i s i n0 r d e rt oi d e n t i f yt h ec h a n g e so fp r o c e s s ,b i n d i n g sa n di n t e r f a c e s , t h i sa p p r o a c hc o m p a r e st h ep a t h so ft h ep r o g r e s s i v ec o m p o s i t i o ns e r v i c ew i t ht h ep r e v i o u so n eu s i n ge x t e n s i v e b p e lf l o wg r a p h ( a b b r x b f g ) w i t ha d d i t i v ei n f o r m a t i o ni ne a c hk i n do fe l e m e m m e s s a g ef l o wi sa p p e n d e d0 1 1 t h ec o n t r o lf l o ws ot h a tx b f gc a ne x p r e s st h eb e h a v i o ro fc o m p o s t i t es e r v i c ei n t e g r a l l y t h eb i n d i n ga n d p r e d i c a t ec o n s t r a i n ti n f o r m a t i o na d d e di nx b f ge l e m e n t sc a nb eu s e di np a t hs e l e c t i o na n dt e s tc a s eg e n e r a t i o n t h e o r ya n a l y s i sa n dc a s es t u d ys h o w st h a tt h em o d e li sa p p r o p r i a t ef o rb p e lc o m p o s i t es e r v i c ea n dt e s t c a s e ss e l e c t e da n dg e n e r a t e dc o u l dg e tah i g l lc o v e r a g ew h e nt h ec h a n g e so c c u ri np r o c e s s ,b i n d i n g sa n di n t e r f a c e s r e l a t e dt op r o c e s s t h ew h o l em e t h o di si m p l e m e n t e da sat o o ln a m e dr t g e n i u s 4 b p e l , w h i c hp r o v i d e sa s o l u t i o nf r o ms e r v i c em o d e l i n gt ot e s tc a s es e l e c t i o na n dg e n e r a t i o n k e yw o r d s :r e g r e s s i o nt e s t i n g ;c o m p o s i t es e r v i c e ;t e s tc a s e ;b p e l ;x b f g i i 东南大学学位论文独创性声明 本人声明所呈交的学位论文是我个人在导师指导下进行的研究工作及取得的研究成果。 尽我所知,除了文中特i i :i i 以标注和致谢的地方外,论文中不包含其他人已经发表或撰写过 的研究成果,也不包含为获得东南大学或其它教育机构的学位或证书而使用过的材料。与我 一同工作的同志对本研究所做的任何贡献均己在论文中作了明确的说明并表示了谢意。 研究生签名: 东南大学学位论文使用授权声明 东南大学、中国科学技术信息研究所、国家图书馆有权保留本人所送交学位论文的复印 件和电子文档,可以采用影印、缩印或其他复制手段保存论文。本人电子文档的内容和纸质 论文的内容相一致。除在保密期内的保密论文外,允许论文被查阅和借阅,可以公布( 包括 刊登) 论文的全部或部分内容。论文的公布( 包括刊登) 授权东南大学研究生院办理。 研究生签名:至业导师签名:圭竺塑童同期:业巧 第一章绪论 第一章绪论 以服务计算为核心的服务科学是- - i j 融合软件信息技术和商业服务理念的综合性前沿学科,代表了软 件开发领域的最新研究成果和发展方向。服务计算以面向服务的体系结构( s o a ) 为中心,以w e b 服务为 主要实现形式,以服务组合为关键应用模式,其松耦合的本质和高复用性的特征得到了学术界和工业界的 广泛推崇。演化和维护是服务组合过程中的重要阶段,如何保证服务在演化过程中的质量是一项值得深入 研究的课题。 1 1 研究背景 基本服务和组合服务是w e b 服务的两种基本形态,基本服务一般由专业的服务生产商独立开发并在注 册中心发布,而组合服务由若干基本服务或组合服务按照一定的方式组合起来。被组合的服务常常来自于 不同的服务生产商,服务的组合一般由独立于生产商的第三方来完成。 服务组合是使用服务组合语言将若干服务按照一定的应用逻辑组织成为具有特定功能和外部接口的 组合服务的过程和技术,是实现服务计算的关键之一。服务组合将细粒度的服务( 基本服务) 组合为粗粒 度的服务( 组合服务) ,提高了服务的复用性。组合服务是由服务组合语言编写的流程以及与流程交互的 成员服务组成的有机整体,成员服务既可以是基本服务,也可以是组合服务。组合服务以服务之间的交互 为基础,流程规定了服务交互的行为。组合服务提供与基本服务标准相同的外部接口,因此可以被用户调 用,也可作为成员服务被整合进新的组合服务。服务组合语言以编程的方式将服务的逻辑通过文本的形式 规定下来,供相应的引擎解释执行。w s b p e l i l j ( 业务流程执行语言,也称作b p e l 4 w s 、b p e l ,下文均 以b p e l 表示) 是一种供服务生产者或消费者进行流程设计的服务组合语言,b p e l 组合服务是接口、流 程以及与流程交互的成员服务组成的有机整体。服务组合在流程设计和实现层次的演化,包括绑定变化和 流程变更,都可以通过b p e l 体现出来。 为了满足最终用户的不同需求,服务集成者需要适时地更改服务的接口或组合方式,或者用新服务替 换旧服务,这一过程就是组合服务的演化。一般来说,组合服务由组合流程、成员服务以及服务描述文件 ( w s d l l 2 1 ) 组成,因此在演化过程中三者都有发生变化的可能。首先,在组合服务的接1 :3 、逻辑结构、 功能等均不发生变化的情况下,与组合服务交互的外部成员服务发生功能性或非功能性改变后,不再能满 足组合服务的需要,此时服务集成者需要查找另一可以满足相同需求的服务集成到组合服务中替换原来的 服务,这就是服务的绑定变化。第二,出于需求或设计变化的需要,服务集成者可以通过改变组合服务内 部的逻辑结构( 流程) 实现服务系统功能的完善。流程的改变涵盖的范围很广,比如服务的增减、活动的 改变、执行顺序的变化等等。第三,驱动路径执行的路径条件可能发生更改。第四,流程的变化以及设计 的更改都会诱发组合服务的w s d l 文件的变动。如果组合服务在演化过程中发生了这些变化,都需要通过 回归测试确保新的系统可以提供预定的功能。 w e b 服务的回归测试与演化密不可分,原则上说,变更后的w e b 服务只有经过严格的回归测试才能 形成版本交付使用。然而,服务计算采用多方参与、责任分担的模式,服务生产者和提供者无法预测服务 消费者的集成与使用情况,服务消费者也无法及时获知服务生产者对服务所做的更改,因此,w e b 服务的 回归测试也应由双方共同完成。服务生产者适合于测试基本服务内部的代码维护与功能演化,服务消费者 适合于测试服务的绑定与组合服务的流程演化。根据测试目的的不同,可以将w e b 服务的回归测试分为功 能性回归测试和非功能性回归测试,根据测试对象的不同,又可以将其分为基本服务的回归测试和组合服 务的同归测试。文献 3 】对w e b 服务回归测试的一些特点作了比较详尽的介绍。 回归测试属于软件维护的范畴,而回归测试的用例选择又是回归测试在实施过程中的核心问题之一, 能否利用较少的测试用例最大可能地覆盖系统的修改点,又是决定回归测试用例选择效果的关键,本文从 服务集成者的角度探讨b p e l 组合服务回归测试的用例选择与生成问题。 东南大学硕士学位论文 1 2 研究现状 面向服务体系结构的出现和广泛使用使得对b p e l 的测试、w e b 服务的回归测试以及基于b p e l 的组 合服务回归测试的研究成为测试领域的研究热点。 p a u lcj o r g e n s e n 在文献【4 】中总结了传统软件功能性测试、结构性测试、集成和系统测试以及面向对象 的测试层次和测试方法,其中的一些方法也可以应用于新型架构的软件系统。b p e l 组合服务的测试可以 使用不同的测试策略,如单元测试、集成测试和系统测试p j 。b p e l 业务流程的测试可以使用控制流的方 法,生成控制流图,针对每条基本路径产生测试用例 6 - - 9 ,也可以使用有限自动机的方法i l 、模型检查的 方法l l 、p e t r i 网的方法l i 劭,文献【1 3 】用扩展的u m l 活动图表达b p e l 的语法和行为,进而生成测试用例。 由于b p e l 流程需要与成员服务进行消息交互实现系统功能,而这一交互可能需要消耗较多的资源,为了 模拟成员服务的行为,研究人员通过构建桩替代成员服务【7 一引。i b mr e s e a r c hl a b 对b p e l 流程的单元测 试进行了细致的研究,设计了b p e l 单元测试框架“鲥,使用并发路径分析法生成测试用例i s ,实现了单元 测试工具b p e l - u n i t t l 4 l ,构建b f g 进行测试路径的搜索和执行轨迹的分析【l6 1 ,文献【5 】提出的b p e l 单元 测试框架还涉及测试的组织和执行等问题。 w 曲服务的出现对回归测试的概念和技术提出了新的挑战,如何针对w r e b 服务演化规律制定符合其特 点的回归测试方案,是一项值得深入研究的课题。文献f 1 7 】比较了服务开发者、提供者、集成商、第三方 和用户实施w e b 服务回归测试的代价和局限性。文献【1 8 】认为替换是服务演化的主要特点,文献【1 9 】分析 了业务流程层次和代码层次的变更影响分析,在分析调用图( c a l lg r a p h ) 的基础上构造了影响传播图 ( i m p a c tp r o p a g a t i o ng r a p h ) 。文献【2 0 】将w e b 服务抽象为双层模型:组件( 基本服务) 之间的交互模型和 组件内部的行为模型,使用输入完全的时间戳变迁系统( i n p u t - c o m p l e t et l t s ) 表达该双层模型,对w e b 服务系统的修改进行了分类讨论,文章覆盖了w e b 服务修改的主要方面,但是由于该方案直接从t l t s 入 手,并且涉及基本服务内部流程,服务集成者和用户一般无法得到这些信息。在g r e g gr o t h e r m e l 等人提 出的安全有效的回归测试用例选择技术【2 1 的基础上,美国新奥尔良大学的研究小组将每个服务的控制流图 组合为一个全局控制流图,研究w e b 服务回归测试用例选择的算法,开发a x i s 平台中j a v aw e b 服务的回 归测试工具,并重点讨论了并发的修改对测试的影响1 2 2 啪l 。c f g 分析法是回归测试用例选择( r t s ) 的 常用方法,但他们以c f g 为研究的切入点,对于服务的使用者来说,直接获得c f g 图是有一定难度的, 而且该方法的c f g 图无前置条件约束,不利于生成新的测试用例。由于服务的调用需要各种资源的支持, 一些商业w e b 服务并非免费调用,所以服务回归测试的代价是一项值得关注的问题。文献【2 7 】指出,使用 监控的方法收集消息数据,构建桩模拟成员服务消息交互行为可以减少回归测试的代价。 目前b p e l 组合服务的回归测试研究正在逐步走向深入。文献 2 8 】使用k a ( 克林代数) 将b p e l 的控 制流程表达为代数式,并通过比较代数式识别流程的变更,与控制流图模型相比,代数式模型在表达复杂 的控制结构时会显得力不从心。文献 2 9 】对b p e l 的控制结构,特别是并发控制结构进行了变更影响分析 和回归测试路径选择,文献 1 6 1 进一步实现了回归测试用例选择的最小化算法。这种方法对于回归测试的 研究囿于b p e l 业务流程,而且路径中仅仅包含b p e l 活动和 链接,缺少其余的控制转移条件, 不利于新增路径和修改路径的测试数据生成。 1 3 论文主要工作 1 3 1 研究内容 本文围绕b p e l 组合服务的回归测试展开研究,针对组合服务在演化过程中可能发生的各种修改,提 出一种基于扩展b p e l 流图的组合服务回归测试用例选择与生成方法。方法根据b p e l 组合服务的结构, 将可能施加于组合服务的修改进行分类,构造x b f g 的控制流图模型,该模型不但可以表达组合服务的流 程以及流程与成员服务之间的消息交互情况,还可以在图形元素中存储接口、谓词约束等信息,为组合服 2 第一章绪论 务的变更影响分析提供依据。方法首先对修改前后两个版本的组合服务进行建模,分别获得路径集合,并 对各路径的流程、绑定、接口和路径条件进行比较,找到受变更影响的路径,即需要进行回归测试的路径。 这些路径所需的测试用例有的可以从基线版本的测试用例库中获得,有的需要重新生成,而测试用例的输 入变量以及输入变量的取值范围可以根据x b f g 模型元素中的接口、谓词约束等信息分析得到。因此,本 文提出了从流程建模到测试用例选择与生成的整体解决方案。流程建模、变更影响分析以及测试用例的选 择与生成、工具实现是本文的主要研究内容。 ( 1 ) b p e l 组合服务演化特点分析 软件的演化特点直接决定着回归测试策略的选择,与传统的软件系统相比,面向服务的系统有其自身 的演化规律,而在面向服务的系统内部,组合服务与基本服务的演化又有所区别。b p e l 组合服务是b p e l 流程和成员服务组成的有机整体,因此它的演化不仅涉及流程,还涉及与流程进行消息交互的成员服务。 总的来说,对b p e l 流程的修改与b p e l 活动、路径条件和组合服务的接口相关,而成员服务的变更涉及 绑定和成员服务接口的变化。 ( 2 ) 流程建模 为了对b p e l 组合服务进行变更影响分析,本方案将b p e l 组合服务映射为富含信息的扩展b p e l 流 图( x b f g ) ,在表达顺序、选择、并发、循环等多种控制结构以及流程与成员服务消息交互行为的同时, 向元素中添加绑定信息和谓词约束信息,用于控制流分析、变更的识别、路径的比较以及回归测试用例的 选择与生成。 ( 3 ) 变更影响分析及测试用例的选择与生成 变更影响分析以及测试用例的选择与生成是回归测试的关键。变更影响分析和测试用例生成的步骤包 括简单路径的查找、回归测试路径的识别、测试用例的选择与生成等。流程和路径条件的变更影响的测试 路径通过元素比较得出,绑定变更影响的测试路径通过比较b p e l 文档的伙伴链接的赋值情况得到,而接 口改变需通过分析w e b 服务的接口描述文档加以识别。 回归测试的测试用例一方面来源于基线版本的测试用例集,另一方面来源于新增测试用例。测试用例 的输入数据由输入变量和变量的值组成,输入变量由组合服务的外部接口( w s d l ) 确定,而流程的改变 可能导致组合服务的接口改变,如果组合服务的接口发生改变,需要重新设计测试用例;输入变量的取值 范围通过分析路径条件得到。如果流程发生了改变而接口未变,可以通过比较路径以及路径条件,确定是 否可以选择原版本测试用例重新执行。 ( 4 ) 工具实现 b p e l 组合服务的回归测试用例选择与生成工具实现从服务建模到测试用例选择、生成的解决方案。 工具以演化前后两个版本的组合服务为输入,解析b p e l 和w s d l 文档,生成扩展b p e l 流图,选择测试 路径,比较扩展b p e l 流图以及服务的接口文档,最终选择或生成测试用例。工具产生的测试用例可以被 o r a c l eb p e l p ms e r v e r l 引擎解释,测试人员可以在完成组合服务在引擎中的部署之后通过客户端调用组合 服务的方式对其实施回归测试。 1 3 2 研究目的与意义 w e b 服务的高复用性以及用户需求的不稳定性决定了组合服务必然处于频繁的变动和演化之中,因此 设计一个能够适应组合服务特点的回归测试系统十分必要。目前的研究一般局限于流程的回归测试,而组 合服务是内部流程、外部接口与成员服务的统一体,成员服务的替换以及接口的改变也是服务演化的重要 内容。由于成员服务的实现存在差异,服务的替换很可能引起组合服务功能偏离或运行失败,所以绑定变 换后的组合服务也必须进行重新测试。本文涵盖了组合服务的主要演化形式:流程变化、绑定变化和接口 变化,使用统一的模型进行变更影响分析,识别变更影响的测试路径,选择或生成测试用例。本文的研究 领域涉及软件测试、软件维护以及面向服务的体系结构,目标明确,与工程技术联系紧密,在理论研究和 实际应用中都具有一定的意义和价值。 3 东南大学硕士学位论文 1 4 论文章节安排 本文共分七章,各章的内容简述如下: 第一章绪论:介绍本文的研究背景和研究现状,分析现有组合服务回归测试方法存在的局限和问题, 并在此基础上提出本文的研究内容、研究意义以及研究方法。 第二章服务的演化与回归测试:介绍b p e l 组合服务、回归测试等背景知识,讨论服务回归测试应 考虑的问题,分析服务尤其是b p e l 组合服务演化的特点以及这些特点对回归测试的影响。 第三章扩展b p e l 流图:针对b p e l 组合服务的特点提出一种控制流图模型x b f g ,讨论x b f g 的 构造方法以及x b f g 路径的概念与生成方法。 第四章基于x b f g 的回归测试用例选择与生成:具体阐述利用x b f g 进行回归测试用例选择与生成 的方法和步骤,并对算法进行描述。 第五章b p e l 组合服务回归测试用例选择与生成工具的设计与实现:介绍工具的设计思路、主要功能、 工具框架以及开发环境。 第六章案例分析:结合贷款流程说明基于x b f g 的回归测试用例选择与生成方法。 第七章总结与展望:总结本文的主要工作,指出未来研究方向。 4 第二章服务的演化与回归测试 第二章服务的演化与回归测试 w 3 c 将w e b 服务定义为由u r i 标识的软件应用,其接口和绑定可以用x m l 定义和描述并且可以被 发现,与其它软件通过基于i n t e m e t 的协议以x m l 消息交换的方式直接交互。基本服务( b a s i cs e r v i c e ) 和组合服务( c o m p o s i t es e r v i c e ) 是w e b 服务的两种存在形式。基本服务是w e b 服务的最小划分单位,组 合服务( 复合服务) 是通过服务组合产生的逻辑整体,该逻辑整体本身也是一个服务f 3 哪。在众多服务组合 技术和方法中,b p e l 已经成为w e b 服务组合编程语言的业界事实标准。本章将依次介绍b p e l 组合技术、 基本服务与b p e l 组合服务的演化特点以及相应的回归测试技术。 2 1b p e l 组合服务 服务组合技术的出现大大拓展了w e b 服务的应用领域,也使得面向服务的软件系统结构更加复杂,功 能更加丰富,b p e l 组合技术就是其中最具代表性的一种。 b p e l 以流程的形式将现有的服务组合起来,流程的每一步称为一个活动( a c t i v i t y ) ,b p e l 规范将活 动分为基本活动( b a s i ca c t i v i t y ) 和结构化活动( s t r u c t u r e da c t i v i t y ) ,基本活动描述流程行为的基本步骤, 可以独立存在或者寄身于结构化活动中,b p e l 中的基本活动有 、 、 、 、 、 、 、 、 和 。结构 化活动通过定义控制流逻辑规定了活动发生的顺序,一般作为包含其他活动( 基本活动和结构化活动) 的 容器,包括 、 、 、 、 、 、 和 , 可以表达活动之间的顺序、选择、循环、并发和同步关系,其中 可以定义除循环以外的其他结构, 特别是并发。此外, 是源活动和目标活动之间的显式链接,可以表达活动之间的同步依赖关系。 表2 1 对b p e l 2 0 规范定义的各种基本活动和结构化活动作了简要说明。 表2 1b p e l 活动表 类型序号活动名称用途 ( 1 ) 调用由合作伙伴在p o r t t y p e 上提供的单向或请求响应操作 ( 2 ) 等待匹配消息的到达 ( 3 ) 应答通过 接收到的消息 基 ( 4 ) 更新变量或伙伴链接的值 本( 5 ) 抛出流程内部的故障 活 ( 6 ) 等待( 一段时间) 动 ( 7 ) 空操作 ( 8 )自定义活动类型 ( 9 ) 组合服务接口的变化:组合服务通过w s d l 文档声明接口,接口一般对变量、消息、操作、端 口等接口元素进行定义,说明它们的名称、类型和组成。因此组合服务接口的变化包括变量、消息、操作、 端口等接口元素定义的改变,这些改变都可以从w s d l 文档中体现出来。图2 1 中的组合服务s l 向s 3 演化的过程中,一些变量和消息的定义发生了更改,即s 3 相对于s 1 而言发生了组合服务接口的变化,这 一变化在形式上表现为组合服务w s d l 文档由w 1 变为w l 。 ( 3 ) 绑定的变化:在组合服务设计、部署或运行的过程中,需要确定成员服务的端点地址,即流程 与哪个候选成员服务进行交互。因此绑定的交化指的是流程的伙伴链接不发生变化的前提下与该伙伴链接 对应的成员服务端点地址的改变。图2 1 的组合服务s l 中,与活动a 2 交互的成员服务是w s 2 a ,而组合 服务s 4 中,与活动a 2 交互的成员服务变成了端点地址不同的另一候选成员服务w s 2 b ,即s 4 相对于s l 而言发生了绑定变化。 ( 4 ) 成员服务接口的变化:成员服务的提供商可能对成员服务的接口进行修改,而这一修改会对组 合服务产生影响,如果服务集成者在服务组合时继续沿用这一成员服务,就必须根据成员服务接口的变化 确定是否需要修改组合服务的接口和流程。图2 1 的组合服务s l 中,成员服务w s 2 a 的接口文档是w 2 , 而在组合服务s 5 中,w s 2 a 的接口文档变为w 2 ,即s 5 相对于s l 而言发生了成员服务的接口变化。 图2 1b p e l 组合服务的演化类型 2 3 回归测试的概念、过程和技术 回归测试是软件维护的重要内容,由于需求、环境、技术、程序修正等方面的原因,软件需要经历功 能、组件、接口等方面的修改。i e e e 对软件的回归测试作了如下定义:回归测试是对系统或组件实施的 选择性再测试,目的是为了验证系统或组件仍然能够满足约定的需求,没有引起意想不到的问题【3 1 】。回归 7 东南大学硕士学位论文 测试是程序修改之后的再测试,与程序的演化紧密关联。根据软件的规约是否变动这标准,回归测试可 以分为修正式( c o r r e c t i v e ) 和改进式( p r o g r e s s i v e ) 两种,就测试的策略而言,又包括单元测试的回归测 试、集成测试的回归测试和系统测试的回归测试。回归测试的用例可以通过对程序或规约的分析自动或手 动生成,也可以使用捕捉回放机制自动获取。为了避免冗余的测试,测试用例的选择成为回归测试的核心 问题,用例选择技术成为回归测试的关键技术。全部重测和选择性重测技术是回归测试用例选择的两种基 本技术,而选择性重测技术因其可以节省测试的代价而广受关注。如果p 是程序尸和修改版本,r 是尸的 测试用例集,那么从软件维护的角度来看,选择性回归测试的一般步骤是l j 叫: ( 1 )识别尸相对于p 将要作的修改。 ( 2 )修改尸得到p ,涉及的修改还可能包括其他文档,比如需求规约等等。 ( 3 )选择r 的子集r 以对p 钡0 试。 ( 4 ) 使用r 对p ,进行测试,以确保尸关于r 的正确性,或者找出导致软件失效的故障。 ( 5 )如果有必要,那么针对p 中新增的、修改的以及未测试的部分创建新测试用例集r ”。 ( 6 )使用丁对p 进行测试,以确保p 关于丁”的正确性,或者找出导致软件失效的故障。 ( 7 ) 将t = t u z ”作为p 的测试用例集。 在实施上述回归测试的过程中,每一个步骤都会涉及回归测试的一个或多个问题,具体地说,第( 1 ) 个步骤会涉及到影响分析和配置管理等问题,第( 2 ) 个步骤涉及到软件更新和程序理解问题,第( 3 ) 个 步骤涉及回归测试的用例选择问题,第( 4 ) 和第( 6 个步骤涉及测试执行和错误识别等问题,第( 5 ) 个步骤涉及测试用例的覆盖率问题,第( 7 ) 个步骤涉及测试用例的最小化和测试用例集的维护。 对回归测试技术的研究已逐渐趋向成熟。文献【3 3 】通过对切片、增量、防火墙、遗传和模拟退火五种 主要回归测试技术的研究,指出测试技术的选择取决于测试需求。文献 3 4 1 对回归测试用例选择技术中的 最小化技术、数据流技术、安全技术、特殊技术、随机技术和全部重测技术进行了细致的分析比较。文献 【3 5 】将概括性、精确性、高效性和通用性作为回归测试的主要评估标准,概括性指选出的用例可以揭示新 程序错误的能力,精确性用测试用例集合中“修改揭示”的用例所占的比例度量,高效性用方法的时空复 杂度来衡量,通用性用来评价方法的环境适应能力,并对线性方程技术、符号执行技术、路径分析技术、 数据流技术、程序依赖图技术、系统依赖图技术、基于修改的技术、防火墙技术、群集识别技术、切片技 术、图形遍历技术、修改实体技术从这四个方面加以比较。目前,回归测试及其相关技术已经应用到各种 程序结构中,如面向对象程序【3 6 - 3 9 1 、并发程序h 们、分布式软件系统【4 1 】、基于组件的系统【4 2 “3 1 、实时系统【4 4 1 、 w e b 应用系引4 5 4 6 1 、面向方面的软件【4 7 1 、w e b 服务【2 2 2 9 j 等等。 2 4 面向服务的回归测试 作为一种新兴的分布式计算和软件开发模式,w e b 服务在演化和维护的过程中应当怎样进行回归测 试? 本节将从视角、目的、层次、技术等方面对w e b 服务回归测试加以总结。 ( 1 ) 测试的视角 面向服务的计算是一种多方参与的责任分担的编程模式。从服务等级协议( s l a ) 的角度可以将他们 归为两类:服务生产者和服务消费者。服务生产者作为s l a 的一方,负责提供s l a 契约指定的服务,服 务消费者作为s l a 的另一方,按照s l a 契约的约定使用指定的服务。 服务生产者根据用户的需求设计开发具有特定功能的基本服务,并提供服务描述文件( 如w s d l ) 说 明服务的名称、用途、接口等服务的属性。由于服务生产者掌握基本服务的设计和实现细:常,拥有需求规 约、设计规约、源代码,因此可以使用白盒、黑盒技术对基本服务进行功能性和非功能性回归测试,测试 的范围可以涵盖单元测试、集成测试、系统测试等等。服务开发者无法得知服务的使用情况,因此一般不 进行服务组合层次上的回归测试。 包括服务集成商在内的服务消费者可以在基本服务和组合服务的层次上对服务进行回归测试。然而, 除去商业性质的测试,基本服务的设计规约和源代码对于服务消费者来说一般是不透明的,受条件和资源 的制约,服务消费者通常采用黑盒测试技术对基本服务进行功能和非功能回归测试。而在组合服务的层面 8 第二章服务的演化与回归测试 上,服务消费者可以使用黑盒以及灰盒技术对组合服务的功能和非功能属性开展回归测试。 ( 2 ) 测试的目的 根据测试目的的不同,可以将服务的回归测试分为功能性和非功能性两种。功能性回归测试着眼于确 保服务在经历修改和版本更新之后能够实现预定的功能,非功能性回归测试可以保证服务在演化之后仍然 可以满足服务质量、性能等非功能属性。 服务的功能性回归测试是验证服务正确性的基本测试手段。服务的功能由需求决定,当需求没有发生 变化,而开发人员修正了服务在运行时出现的故障,或者对实现做了某些优化之后,服务必须被重新测试 以确保服务能够提供预定的功能,而且没有引入新的错误;当需求发生更改时,服务也须作相应的改动, 这时需要按照新的需求规约修改测试用例,进行回归测试。 与功能属性类似,基本服务的非功能属性一般也以规约的形式存在,通用的非功能属性规约有w s l a l 4 8 1 等。服务开发者可以利用w s l a 的模式定义服务的响应时间、吞吐量、代价等质量属性。实施基本服务的 回归测试时,测试人员首先检测w s l a 规约是否发生了改动,如果没有改动,可以使用原有的测试用例对 服务重新测试;如果发生了改动,应对测试用例做相应的调整。组合服务的非功能属性一般由基本服务的 非功能属性计算而来,组合服务的逻辑结构以及服务运行的外部环境决定了组合服务的质量属性。流程的 变更以及组合服务绑定变更时单个服务质量属性的改变都可能会对组合服务的整体性能产生影响,因此, 组合服务的非功能属性需要及时进行回归测试。 ( 3 ) 测试的层次 服务的回归测试可以分为基本服务和组合服务两个层次。 基本服务层次的回归测试重在保证基本服务演化之后功能和非功能两个方面仍然能够与s l a 相符。基 本服务的s l a 一般规定了这几方面的内容:一是服务应当实现的功能:二是服务的接口信息;三是服务的 质量要求。服务的接口信息可以作为测试用例选择和产生的依据,服务的质量要求可以作为非功能测试的 用例的期望值。服务生产者对基本服务进行回归测试时,可以依赖于代码和规约,借助于图模型进行变更 影响分析,选取需要测试的路径和测试用例。相反,服务消费者一般只能根据接口的改交情况选择或修改 测试用例,依靠服务的调用获取计算结果和性能数据从而完成测试。 组合服务层次的回归测试要确保绑定或者流程发生了变化之后仍然可以完成预定的功能,达到预定的 质量标准。当服务集成者将流程中原先绑定的某一服务替换为另一可以提供相同功能并且接口一致的服务 时,有必要找出调用这一服务的所有路径对应的测试用例重新执行,验证系统可否正常运行,计算结果是 否正确,以及质量属性是否满足要求。当服务集成者为了改进功能属性或其他目的改变了流程的结构时, 应当进行变更影响分析,进而选出必要的用例,或者新增用例扩充用例集,进行回归测试。与基本服务一 样,组合服务对外也有接口,因此组合服务的接口改变也可以触发回归测试的发生。 ( 4 ) 变更检测 除了服务开发商以及服务开发商特邀的专业测试机构,一般的测试人员只能依靠一定的手段探测服务 的演化信息。这样的手段包括静态分析和动态监控两种。静态分析是

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论