




已阅读5页,还剩57页未读, 继续免费阅读
(计算机应用技术专业论文)测试soa系统的方法与模型研究.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
复日大学硕十毕业论文 测试s o a 系统的方法与模型研究 摘要 s o a ( s e r v i c e - o r i e n t e d a r c h i t e c t u r e ) 具有松耦合的特性、良好的封装性和强 大的集成能力,能够适应变化的业务逻辑和环境,因此s o a 已经成为目i j i 流行 的系统架构技术。w e bs e r v i c e s 作为s o a 的主流实现技术得到了业界的普遍认 可,对于s o a w e bs e r v i c e s 系统的研究是当前的研究热点。为了保证服务的质 量和s o a 系统的质量,必须对其进行充分的测试工作,因此对s o a 系统的测试 研究成为了s o a 研究领域的重要课题。 本文将s o a 系统构建及运行中涉及的测试工作分为三类:对简单服务的测 试、组合服务对子服务的评估、以及对s o a 系统的测试。此外,根掘每种测试 的需求,以及对s o a 系统动态绑定等特性进行的分析,本文对s o a 系统中测试 工作的难点问题进行了总结。 此外,针对s o a 系统中测试工作的特点,本文对测试理论和测试技术进行 了总结和创新。从测试的生命周期和测试执行主体两个方面对传统的测试理论进 行了改进。文中将服务模拟技术加以发展,提出质量可调的服务模拟技术以适应 对组合服务和s o a 系统的测试需求;针对s o a 系统的测试充分性问题,本文提 出基于状态的灰盒测试方法,以提高对组合服务和s o a 系统测试的充分性。本 文还介绍了面向规约的测试用例生成技术,并使用玖技术生成测试用例。 根据上述对s o a 系统中测试的分类及针对s o a 系统的测试技术,本文提出 了一种针对s o a 系统的通用测试模型。该模型使用了质量可调的服务模拟技术 和基于w s d l 的测试用例生成技术,可以对组合服务和s o a 系统实施基于状态 的灰盒测试。 最后,本文对该通用测试模型进行了实现。该实现中使用了h t t p 测试工具 h t t p t e s t 的部分模块,并在开源软件a x i s 、w s d l 2 j a v a 的源码的基础上进行二 次丌发。该实现能够完成模型的主要功能。 关键词:s o a ,w e bs e w i c e s ,测试,模型 i v 复日大学硒十毕业论文测试s o a 系统的方法与模型研究 a b s t r a c t s e r v i c e o r i e n t e da r c h i t e c t u r e ( s o a ) a n dw e bs e r v i c e s ( w s ) h a v er e c e i v e d s i g n i f i c a n ta t t e n t i o nr e c e n t l y h o w e v e r , t h et r u s t w o r t h yi s s u e so fw sh a v el i m i t e d t h eg r o w t ho fw s a p p l i c a t i o n s t h u s ,t h er e s e a r c ho nw st e s t i n gi sb e c o m i n go n e o ft h eh o t t e s tt o p i c s i n t h i s p a p e r , t h ea u t h o rd i v i d e st h et e s t i n gj o b si ns o as y s t e m si n t ot h r e e c l a s s e s :t e s t i n gs i m p l es e r v i c e s ,e v a l u a t i n gs u b s e r v i c e sw h e nb u i l d i n gc o m p o s e d s e r v i c e sa n dt e s t i n gs o a s y s t e m s a c c o r d i n gt ot h er e q u i r e m e n t so fe a c ht e s ta n d t h ea n a l y s i so nt h ec h a r a c t e r i s t i c so fs o as u c ha sd y n a m i cb i n d i n g ,t h ea u t h o r s u m m a r i z e st h ed i f f i c u l t i e sa n dp r o b l e m si nt e s t i n go fs o a s y s t e m s t h e n ,t h ep a p e rs u m m a r i z e sa n di n n o v a t e si nt h et e s t i n gt h e o r ya n dt e c h n o l o g i e s , i m p r o v i n gt h et r a d i t i o n a lt e s t i n gt h e o r yf r o mt w oa s p e c t s ,t h a ti s ,t e s t i n gl i f ec y c l e a n de x e c u t i v ep a r t i c i p a n t s i nt h i s p a p e r w ei m p r o v et h es e r v i c es i m u l a t i o n t e c h n o l o g y ,a n dp r o p o s eq u a l i t y a w a r es e r v i c es i m u l a t i o nm e t h o dt os a t i s f yt h e t e s t i n go fc o m p o s e ds e r v i c e sa n ds o as y s t e m s t os o l v et h es u f f i c i e n tp r o b l e mo f t e s t i n g ,w ep r o p o s et h es t a t e b a s e dg r a yb o xt e s tm e t h o d w ea l s oi n t r o d u c et h e s p e c i f i c a t i o n - b a s e dt e s tc a s eg e n e r a t i o nm e t h o d b a s e do nt h ea b o v et e s t i n gc l a s s i f i c a t i o na n d t e s t i n gm e t h o d si ns o as y s t e m ,w e p r e s e n tag e n e r a lt e s t i n gm o d e l f o rs o a t h i sm o d e lu s e st h eq u a l i t y a w a r es e r v i c e s i m u l a t i o nm e t h o da n dw s d l - b a s e dt e s tc a s eg e n e r a t i n gm e t h o d t h em o d e lc a n b ea p p l i e dt ot h es t a t e b a s e dg r a yb o xt e s ti nt h ec o m p o s e ds e r v i c e sa n ds o a s y s t e m s f i n a l l y , w e 西v ea ni m p l e m e n t a t i o no ft h et e s t i n gm o d e l ,u s i n gs o m em o d u l e so f h t t p t e s ta n dm a k i n gs o m ed e v e l o p m e n tu p o nt h ea x i sa n dw s d l 2 j a v a t h e i m p l e m e n t a t i o nc a l lr e a l i z em o s to ft h ef u n c t i o n so ft h ea b o v em o d e l k e yw o r d s :s o a , w e bs e r v i c e s ,t e s t ,m o d e l v 复且大学硕七毕业论文测试s o a 系统的方法上j 模型研究 一、研究的主题 1 问题的引入 第一章引言 现代社会节奏的加快,使得企业的业务逻辑和环境发生频繁的变化,这要求 为之服务的企业信息系统能够对变更进行快速有效的反应。而传统的企业应用系 统复杂度高,变更困难,难以对异构的信息系统进行快速有效的集成。因此,随 着x m l w e bs e r v i c e s 技术的出现和兴起,s o a ( s e r v i c eo r i e n t e da r c h i t e c t u r e , 面向服务的体系结构) j 下成为近束最热门的企业信息系统构架技术之一。 服务提供者将自己的计算资源以具有自描述接口的服务的形式暴露在网络 中并向目录服务器进行注册。服务调用者根据系统需求通过对服务的盎找和调用 来构建系统。s o a 系统具有松耦合、组建快、花费低的优点。企业软件从最初 的面向过程、面向对象,到后来的面向组件、面向集成,现在进入了面向服务的 时代。 同所有软件系统一样,应用s o a 的系统也需要一定的测试工作来保证系统 的质量。但是在s o a 系统中,需要对传统的测试理论和方法进行发展。这是因 为: s o a 与普通软件具有不同的接口( 服务) ,因此需要新工具的支持。 s o a 系统具有动态组合的特点,系统中的服务在运行时通过服务发现机 制进入系统,因而难以在系统测试阶段进行评估。 系统中的服务可能不为系统所有者拥有,因此系统所有者无法对系统整 体进行全面的评估。 测试行为的执行主体从开发者向系统用户和服务中介转移,等等。 目前,对s o a 及其相关测试工作与方法的研究已经成为国内外学者研究的 热门课题之一。 2 研究现状分析 对s o a 系统的测试的研究是近期的一个热门话题,由于业界公认w e b s e r v i c e s 是s o a 的主流实现方式,因此当前对s o a 系统测试的研究着重于对 w e bs e r v i c e s 测试的研究。目前研究主要集中在以下几个方面: 复日- 大学硕士毕业论文测试s o a 系统的方法与模型研究 ( 1 ) 针对w e bs e r v i c e s 的测试用例生成技术 w u z h ix u 3 8 】【1 1 1 提出一种x m l 混乱( p e r t u r b a t i o n ) 的测试方法,该方法的 核心思想是捕捉服务之间传递的x m l 消息然后进行混乱操作,形成正确的和错 误的各种x m l 消息作为测试用例,以此对服务进行测试。 r h e c k e l 1 4 】使用w s d l 文档和g t 规则来生成服务的测试用例。 x i a o y i n gb a i 2 0 l 提出一种基于w s d l 的测试用例生成方法,该方法根据 w s d l 文件分析服务的输入并根据操作日j 的依赖关系建立操作流。 ( 2 ) 对服务的测试方法研究 n i kl o o k e r1 1 1 1 5 1 使用错误注射( f a u i ti n j e c t i o n ) 的测试方法对w e bs e r v i c e s 进行测试,并提出在网络层注射错误的方法,并与在代码中注射错误的方法进行 了比较。 变异( m e t a m o r p h i c ) 方法【1 5 】也被用在对w e bs e r v i c e s 的测试中,在该方法 采用一个变异服务来包装被测服务和变异关系的实现。 y i n gy u 【1 8 懈s o a p 消息捕获后存放于一个o n t o l o g y 库中并进行规则分析以 发现交互中的错误。 ( 3 ) 为保证服务组合质量而进行的测试方面的研究 m a d e ls e r h a n i1 3 l 提出在服务中介处建立一个q o s ( q u a l i t yo fs e r v i c e ) 代理, 由q o s 代理受理服务请求者关于q o s 的请求,并对候选服务进行q o s 测试,帮 助服务请求者决定服务绑定。 g u i j u nw a n g i8 】中提出用q o sm a n a g e r 来对服务的注册进行准入测试。 g r o u pt e s t i n g 4 1 1 6 i 【8 l 【1 _ 7 l 是一种在服务中介方工作的测试方法,g r o u pt e s t i n g 通过自动生成测试预言,对测试用例的测试能力进行排序来快速地对大量的具有 相同接口的服务进行测试,从中选择具有最高质量的服务。 w t s a ie ta l 1 3 l 建议在w s d l 中加入测试用例,由服务发布者提交给服务中 介者,由服务中介运行测试用例对服务的功能进行验证。 ( 4 ) 对测试理论的研究 g e r a r d oc a n f o r a 【1 6 懈测试分为开发者测试和用户方测试两种类别,提出用户 方测试的概念。 y i n g y u d s l 提出测试的c v & v 模型,建议测试工作应由开发方,用户和服务 中介以及第三方测试机构协同完成。 2 复日大学硕七毕业论文测试s o a 系统的方法与模型研究 本文的研究意义与创靳点 1 研究的意义 在自口人对s o a 中测试理论研究的基础上,本文在测试的生命周期和执行主 体角度对测试理论进行了发展。本文指出在s o a 系统中,测试的生命周期扩展 到系统运行时,测试的执行主体从软件开发方的测试团队单方向用户、服务中介 和第三方测试机构等多方进行扩散。这些新情况的发现对于指导对s o a 系统的 测试具有一定的理论意义。 在测试技术与实践方面,当前对s o a 系统的测试研究主要集中于对单个服 务的测试以及为保证组合服务质量而进行的测试。随着s o a w e bs e r v i c e s 技术 的发展,越来越多的企业级系统转向于s o a 架构,此时s o a 系统的所有者又提 出了对s o a 系统进行测试的需求。针对s o a 系统中测试的分类和特点,本文提 出的质量可调的服务模拟技术和基于状态的次盒测试技术来提高对组合服务和 s o a 系统测试的充分性。综合运用多种测试技术和方法,本文还提出和实现了 一种针对s o a 系统的通用测试模型。在测试技术方面和测试模型方面的研究工 作以及对模型的实现工作对于开益增加的s o a 系统的测试需求具有重要的实践 指导意义。 2 本文的创新点 本文的创新主要体现在以下几个方面: ( 1 ) 提出了s o a 系统的状态导致的测试充分性问题。 ( 2 ) 在前人对s o a 中测试理论研究的基础上,从测试生命周期、测试执行 主体角度对测试理论进行了发展。 ( 3 ) 提出质量可调的服务模拟技术和基于状态的灰盒测试技术。 ( 4 ) 根据s o a 系统的测试要求和特点,提出并实现了一种针对s o a 系统 的通用测试模型。这种模型集成了面向规约的测试用例生成方法和质量可调的服 务模拟技术,实现了基于状态的灰盒测试技术,能够适应包括对简单服务、组合 服务和s o a 系统进行的测试工作。 三、本文内容及组织结构 本文着重研究了s o a 技术的引进对测试理论和测试技术的影响和推动,并 3 复日大学硕十毕业论文 测试s o a 系统的方法与模型研究 根据研究结果设计和实现了一个针对s o a 的通用测试模型。本文共分为五章, 组织结构如下: 第一章主要是本文论题的引入,包括论题的研究现状、本文的研究意义和主 要创新点、以及本文的主要研究内容与组织结构。 第二章是对s o a 系统和传统测试理论的综述。首先,介绍了s o a 的内涵、 s o a 的关键概念以及s o a 的一种实现方式一w e bs e r v i c e s ,包括w e bs e r v i c e s 的关键技术和协议栈,并对s o a 和w e bs e r v i c e s 的关系进行了说明。其次,对 测试理论进行了综述:介绍了软件质量保证( s q a ) 中的v & v 活动,分析了测 试方法、种类以及充分性等问题,并对自动化测试工具进行了总结。 第三章研究了s o a 挑战下的测试理论与测试方法。首先从两个方面比较了 传统测试与s o a 系统中测试的差异。主要包括:( 1 ) 测试种类的差异;( 2 ) s o a 系统在复杂性、外部服务、动态绑定和测试充分性方面对测试提出薪的要求。接 下束论证了s o a 系统在测试生命周期和执行主体方面对测试理论的推动,论述 了三种针对s o a 系统的测试技术与方法。本章对s o a 测试方法的研究为下一章 构建通用测试模型做了必要的准备。 第四章提出了一个针对s o a 系统的通用测试模型。模型包括测试用例生成 器、仿真客户端、服务模拟器和状态控制器等四个主要模块和一个集成了测试数 掘收集、同志记录、结果分析功能的模块。通过对模块的不同组合和使用,该模 型可以适应s o a 系统中的测试工作。最后本章用j a v a 、a x i s 等对该模型进行 了实现。 第五章对本文的研究进行了总结并展望了未来的工作方向。 4 复且大学硕士毕业论文 测试s o a 系统的方法与模型研究 第二章s o a 与测试的理论综述 一、s o a 的定义及相关概念 1 s o a 的定义 s o a ( s e r v i c e o r i e n t e d a r c h i t e c t u r e ) 面向服务的体系架构是一种构建大 型企业信息系统的结构模型。它可以根据需要通过网络对松散耦合的粗粒度应用 组件进行分布式部署、组合和使用。服务是s o a 中的关键概念,s o a 中的粗粒 度应用组件以服务的形式存在。 s e r v i c e a r c h i t e c t u r e t o m 将s o a 定义为:“本质上是服务的集合。服务间彼 此通信,这种通信可能是简单的数据传送,也可能是两个或更多服务协调进行某 些活动。服务问需要某些方法进行连接。所谓服务是精确定义、封装完善、独立 于其它服务所处环境和状态的函数。” l o o s e l y c o u p l e d t o m 将s o a 定义为:“按需连接资源的系统。在s o a 中, 资源被作为可通过标准方式访问的独立服务,提供给网络中的其他成员。与传统 的系统结构相比,s o a 规定了资源问更为灵活的松散耦合关系” 从以上定义中,我们可以看到s o a 的两个关键特性: 第一,s o a 是一种粗粒度、松散耦合的服务结构。粗粒度与松散耦合的特 性使得发布于网络中的服务能够容易地被复用,服务使用者能更方便地将服务集 成到企业信息系统中,同时也使得系统的构建更快速并能快速地根据需要对系统 进行变更。 第二,在s o a 系统中,服务之间通过简单、精确定义的接口进行通讯。简 单、精确定义的服务接口独立于平台与实现语言,因此更能适应复杂的系统环境, 也更适应企业信息系统的集成。 2 s o a 中的关键概念 1 )服务 服务是s o a 中的关键概念,服务是构成s o a 系统( 本文将采用s o a 系统 结构的系统简称为s o a 系统) 的核心部分。w 3 c 将服务定义为:“服务提供者 5 复日| 大学硕t 毕业论文测试s o a 系统的方法b 模型研究 完成一组工作,为服务使用者交付所需的最终结果。最终结果通常会使使用者的 状态发生变化,但也可能使提供者的状态改变,或者双方都产生变化。” s e r v i c e a r c h i t e c t u r e t o m 将服务定义为:“一个定义好的自包含的,不依赖于其他 外部服务而独立提供功能的模块。” 一般认为,服务具有以下几个性质: 自包含。服务是自包含的,也就是不依赖于其他服务所处环境和状态而 独立提供功能的模块。 标准接口。服务应该具有预先定义的标准的接口,接口独立于实现的平 台和语言。这种特性方便异构服务的组合,服务调用者可以跨平台跨语 言通过标准接口对服务进行调用。 自我描述。服务通过标准的描述语言来描述自身的功能和调用方法等信 息。服务调用者可以通过服务的自我描述来实现服务的查找和绑定。这 种自我描述又称为契约( c o n t r a c t ) 。 无状态。无状态是指服务不依赖于任何事先设定的条件,是状态无关的。 在s o a 中,一个服务不依赖于其他服务的状态。因为服务是无状态的, 一组服务可以被编排( o r c h e s t r a t e d ) 和序列化( s e q u e n c e d ) 成多个序 列来执行一套商业逻辑。因为服务是无状念的,可以将服务进行组合构 成新的服务而不必考虑复杂的状态依赖。 如前所述,服务具有标准的接口和描述语言,因此服务可以在多语言多平台 上实现。比如可以将e j b ( e n t e r p r i s ej a v a b e a n ) 暴露为一个服务,也可以将某 些软件包装为服务。我们还可以将一些服务组合在一起包装为一个更大的服务, 这一点与面向对象设计模式中的f a q a d e 模式有些类似。 2 )动态绑定 在s o a 系统中,一个知道所需服务详细信息( 包括u r l 等) 的服务调用者 可以直接对服务发起调用。这种在系统运行时静态地确定对服务的调用称为静态 绑定。静态绑定要求服务调用者在系统运行之前了解服务的具体信息,并将系统 所需的服务硬编码到系统模块内。然而在网络中可能有很多暴露的服务具有相同 的接口和类似的功能,具体调用哪个服务可能难以预先确定,因此这种静态绑定 的机制限制了s o a 系统的灵活性和适用范围。因此在s o a 中引入了“动态绑定” 这个重要概念。s o a 系统一般是通过服务的发布、发现和动态绑定机制建立的。 6 复县大学硕十毕业论文测试s o a 系统的方法与模型研究 图2 1 :服务的动态绑定 如图2 - 1 所示,在s o a 系统中有三种主体:服务提供者( s e r v i c ep r o v i d e r ) , 服务消费者( s e r v i c ec o n s u m e r ) 和服务代理者( s e r v i c eb r o k e r ) 。服务提供者足 提供服务的主体,它提供服务契约( s e r v i c ec o n t r a c t ) 等自我描述信息并发布到 服务代理者。服务消费者也叫服务调用者,它通过服务代理者发现服务并调用代 理者回馈的服务。服务代理者可以被看作一种目录服务,它接收服务提供者的服 务注册,并根据注册回应服务消费者的查找请求。 服务提供者提供给服务中介者的信息应包含三部分内容。首先应包括提供者 的语义特征。服务中介者根据服务提供者的语义特征将所注册的服务进行分类, 并根据语义特征来匹配满足要求的服务提供者。其次应包括服务的调用方法和接 口,以便服务调用者对其进行调用。最后还包括非功能特征,包括安全要求、事 务要求和使用费用等。这些非功能特征也可以作为服务查找的依据。 服务消费者通过服务中介者来取得服务的过程称为绑定。由于这种绑定是在 运行时完成的,因此称为动态绑定。所谓动念绑定,是指服务消费者在运行过程 中将其他服务集成进入系统,在系统运行前,服务消费者并不知道服务提供者的 位置等具体信息。 从图2 1 可见动态绑定分为三个步骤: 第一,服务消费者在服务中介者处提供契约并进行注册,这一过程称为服务 的发布( p u b l i s h ) 。 第二,服务消费者向服务中介发出请求,请求具有特定功能和接口的服务信 息,这一过程称为服务的查找( f i n d ) 。 第三,服务中介者根据服务消费者的请求和已有服务的注册信息返回一个具 体服务给服务消费者,然后服务消费者根据服务中介者的返回对该服务进行调 用。这一过程称为服务的绑定( b i n d i n g ) 。 7 复日+ 大学硕七毕业论文 测试s o a 系统的方法与模型研究 3 )简单服务和组合服务 服务是s o a 系统必不可少的组成元素。在对s o a 系统的测试工作中,对服 务的测试是非常重要的组成部分,而不同的服务类型将导致测试方法和技术的差 异,因此有必要对服务的类型进行分析。 在本文中,我们从服务开发与构成方法的不同将服务分为简单服务和组合服 务两种类型。 简单服务是一种最基本的服务,它通常由软件模块直接包装构成服务并对外 发布。e j b 容器将e j b 以w e bs e r v i c e s 的方式暴露而形成的服务就属于简单服务 类型。 组合服务是指由多个子服务通过一定的调用关系组合构成的服务。组合服务 通过调用多个服务束构成一定的业务流程,然后自身再以一个服务的形式对外发 布。我们把构成组合服务的服务称为子服务。值得注意的是,一个组合服务的子 服务可以是简单服务,也可以是另一个组合服务。如图2 2 中的组合服务包括了 顺序执行的两个简单服务和一个内部的子组合服务。图中的每个多边形代表一个 不同的服务。 图2 2 :一个组合服务示例 一个组合服务的例子是一个旅行社可能直接调用一个气象信息查询服务、一 个向机场订票的服务和一个预定酒店的服务来组合成一个为旅游者提供入团服 务的组合服务。旅游者可以调用旅行社提供的该组合服务一次性完成加入旅行团 的操作,该组合服务的予服务对游客是透明的。 在开发流程方面,简单服务与组合服务也有所不同,而开发流程的变化使得 伴随开发的测试工作有所差异,因此我们对简单服务和组合服务的开发流程进行 分析。 简单服务的开发过程和传统软件开发过程类似,都是经历需求分析,形成规 格说明,进行一系列的设计和编码工作,完成后投入运行并进行维护工作,其中 测试工作贯穿在软件开发过程中。 8 复黾大学硕十毕业论文测试s o a 系统的方法与模型研究 组合服务的开发过程与简单服务和普通软件的开发过程不同。这是因为组合 服务是通过将多个简单服务和子组合服务进行组合,构成一个完整的组合服务。 w e i t e k t a s i1 1 0 】提出的w e bs e r v i c e s 的开发过程,实际上就是一种组合服务的歼 发过程,如图2 - 3 。 图2 - 3 组合服务的开发流程【1 0 1 从图中可见组合服务的开发流程仍然以需求分析开始,然而不同的是接下来 的不是设计编码,而是定义和划分子服务,然后在已有的服务中进行查找,如果 找到可用的子服务就将其动态绑定到组合服务中。在查找不到的情况下才将该子 服务作为一个简单服务,启动一个简单服务的开发流程。从上图可知,我们不仅 要对组合服务进行测试,还需要对子服务进行测试。 由此可见,组合服务的开发实际上是服务的动态绑定和简单服务开发的结合 体。对于某一子服务,选择动态绑定来实现还是将其作为简单服务来开发通常由 开发者决定。 组合服务的开发过程与模块化的软件开发不同:一方面组合服务寻找具有公 共接e l 的子服务,子服务是具有独立功能,独立运行的单位;另一方面子服务的 寻找和绑定是在运行时完成的,这是s o a 系统的重要特征。 9 复且大学硕十毕业论文 测试s o a 系统的方法弓模型研究 3 w e bs e r v i c e s 1 )w e b s e r v i c e s 与s o a s o a 是一种系统架构方式,最早在1 9 9 6 年就由g a r t n e r 公司提出了s o a 的 概念,但是它的广为传播却是由于w e bs e r v i c e s 技术近年的兴起和普及。s o a 本质上是一种理念和体系架构,它仅仅定义了服务如何相互理解及交互,而服务 的定义和具体如何交互都没有规定,而w e bs e r v i c e s 则为s o a 提供了可操作的 实现手段。因此本质上,w e bs e r v i c e s 是s o a 的一项技术实现,w e bs e r v i c e s 架 构是s o a 的一项实例。 尽管w e bs e r v i c e s 不必以s o a 方式实现,s o a 也不一定要基于w e b s e r v i c e s ,但是w e bs e r v i c e s 提供的一系列技术如s o a p l z 3 l ( s i m p l eo b j e c t a c c e s s p r o t o c 0 1 ) ,w s d l t ”j ( w e bs e r v i c e sd e s c r i p t i o nl a n g u a g e ) ,u d d l 2 4 1 ( u n i v e r s a l d e s c r i p t i o n ,d i s c o v e r y , a n di n t e g r a t i o n ) 等天然地实现了s o a 的系统架构。因此 目i j 业界普遍承认w e bs e r v i c e s 是实现s o a 的理想方式。因此除非特别说明, 本文中提到的s o a 系统均由w e bs e r v i c e s 实现。 在有些文献中,d c o m 或者基于c o r b a 的o b j e c tr e q u e s tb r o k e r s ( o r b s ) 架构也被称作s o a 。在本文中我们所讨论的s o a 指用w e bs e r v i c e s 实现的s o a 架构。这是因为“传统的分柿式系统通常假定系统资源是已知的,服务的实现是 稳定和可用的”【9 l ;而w e bs e r v i c e s 则通过服务发布、发现和绑定的动态机制来 实现s o a 。而本文认为这种动态机制正是s o a 系统的重要特征,也是本文研究 的主要课题,因此本文中不对上述其它技术进行讨论。 2 )w e bs e r v i c e s 协议栈 w e bs e r v i c e s 架构使用开放的行业标准构成其协议栈。如图2 4 所示: 1 0 复旦大学硕士毕业论文测试s 0 系统的方法模型研究 服务流控制层 w s f l 服务发布与发现层 u d d l 服务描述层 w s d l 消息发送层 s o a _ p x m l 传输协议层、互联网协议 ( h 丌甲,i l o p ,t c p ) 图2 - 4w e bs e r v i c e s 的协议栈 w e bs e r v i c e s 协议栈的最顶层是服务流控制层,w s f l l 3 9 1 ( w e bs e r v i c e sf l o w l a n g u a g e ) 可以对一系列服务构成的服务流进行描述。服务发布与发现层通过 u d d i 束实现w e bs e r v i c e s 的发布与发现,u d d i 服务器担当了s o a 中服务中介 者的角色。服务的契约采用w s d l 语言进行描述。消息发送层采用了基于x m l 的s o a p 协议发送消息。最底层的传输协议可以使用常见的互联网协议,包括 h t y p ,i i o p 和t c p 等。 图2 - 5 1 4 1 】描述了w e bs e r v i c e s 中各个协议的使用和各个组成部分的交互过 程。 复日j 大学硕士毕业论文 测试s o a 系统的方法勺模型研究 图2 - 5w e bs e r v i c e s 的组件与协议交互1 4 1 图2 5 所示的w e bs e r v i c e s 的组件与协议交互演示了w e bs e r v i c e s 中的动态 绑定过程,动态绑定是s o a 的重要特征。 w e bs e r v i c e s 中的动态绑定过程描述如下: 1 ) 服务提供者将服务的描述发布到目录服务器u d d i ,u d d i 根据服务 的描述将服务分类,以备查找。服务描述中包含了服务的w s d l 文件。 2 )服务消费者向u d d i 请求特定的服务。 3 )u d d i 根据已注册服务的信息和服务消费者的请求挑选合适的服务 并将所挑选服务的w s d l 文档传输给服务消费者。 4 )服务消费者根据u d d i 反馈的w s d l 文档对服务进行调用。 5 )服务提供者对调用做出回应。 在上述的所有消息传递中,消息都是用s o a p 协议进行封装和传输。s o a p 的底层传输协议可能是h r r p ,s m t p 等,其中h t t p 最为普遍。 复且大学硕士毕业论文测试s o a 系统的方法j 模型研究 二、传统测试理论 1 验证与确认( v v ) 1 2 6 1 为了保证软件和系统的质量,需要进行大量的测试工作。从概念上讲,可以 将这些测试工作分为两个部分:验证( v e r i f i c a t i o n ) 和确认( v a l i d a t i o n ) ,简称 v & v 。验证与确认是贯穿软件生命周期的规范化评估方法。 验证工作的目的是证明软件或系统以及它们的中间产品是否能够满足客户 需求,包括逻辑、完备性和正确性的需求。确认工作的目的是保证软件和系统符 合它们的需求说明,它包括需求规格说明的确认和程序及系统的确认。确认过程 可能是静态的也可能是动态的。静态确认是通过人工分析或者证明的方法来确认 规格说明、程序或系统的正确性。动态确认是通过动态分析程序和系统的运行, 检查中间的执行状态来查找缺陷。 可见,我们通常所晚的狭义的测试工作是指确认工作。但是验证和确认是相 辅相成的,它们的目标都是发现缺陷,都是软件质量保证( s q a ) 工作的组成部 分。 2 测试方法 软件测试的方法可以从不同的角度加以分类。从是否需要执行被测软件和系 统的角度可以将测试方法分为静态测试方法和动态测试方法;从测试是否针对系 统的内部结构和实现算法的角度,可以将测试方法分为白盒测试方法和黑盒测试 方法。图2 - 6 2 8 】对测试方法进行了总结。 复日大学硕十毕业论文 测试s o a 系统的方法与模型研究 软件测试技术 静态测试技术动态测试技术 广_ r _ _ r _ 1 广 1 弋 集静技 白盒测 程序与规约榭结熙鑫测 码粥蝤杰术 试技术会帕测试技术斌技术 轰4 t 粪纂篓譬点磊再上溺善i 丁i _ 茁丽 制测譬序异据价果定僚变态务 流试执插渊流类图袭分实测流 测行装试溯划移亍骏试测 试试分 设 试 广下- - r 广 ; 语分条列作路 伞令仑用 旬支件定覆径 定 喀i 定覆 覆覆覆三盏稷 俯 用馋盖 蔽蕊盏祭旅 覆覆l j i 图2 - 6 软件测试方法分类f 2 8 1 1 )静态测试与动态测试 静态测试是指被测的程序不在机器上运行,而是采用人工监测和计算机辅助 静态分析的手段进行检测,主要方法包括人工测试和计算机辅助静态分析。人工 测试主要是指代码审查、走查、评审等;静态分析是指利用静态分析工具对被测 试程序进行特性分析,与标准规则相比对,查找缺陷。 动态测试是指通过在抽样测试数据上运行程序来检验程序的动态行为和运 行结果以发现缺陷。一般所说的测试主要是指动态测试。动态测试包括生成测试 用例、运行程序和验证运行结果三部分。根据测试用例的生成不同,可以将动态 测试分为黑盒测试、白盒测试和灰盒测试。 2 )黑盒、白盒与灰盒测试 动态测试可以采用黑盒、白盒或者灰盒方法生成测试用例。 黑盒测试又称为基于规约的测试或数据驱动的测试,测试人员无须了解程序 1 4 复巨大学硕十毕业论文测试s o a 系统的方法模型研究 的内部结构,直接根据输入与输出的关系或需求说明来确定测试数据,推断测试 结果的正确性。黑盒测试包括:等价类划分、因果图、判定表、边界值分析、状 态测试等。 白盒测试是指测试人员根掘程序的内部结构特性和与程序路径相关的数据 特性设计测试数据。它包括控制流测试和数据流测试两类主要技术以及变异测试 等其他技术。 灰盒测试是指在生成测试用例时综合考虑软件的规约和内部结构来生成测 试用例。灰盒测试不仅关注输出对于输入的正确性,同时也关注程序的内部表现 是否正确。灰盒测试综合了黑盒与白盒两类测试技术,期望得到更有效的测试用 例。 3 )测试的充分性i 冽 测试充分性是在研究测试能否保证正确性问题时提出的概念p 7 1 。测试的充 分性是指根据被测软件或系统在有限多个测试数据上的行为判断在所有测试数 据上的行为的逻辑基础。 测试覆盖准则是用束度量测试充分性的常见标准。目6 口有很多针对程序内部 结构的测试覆盖准则,主要包括控制流测试覆盖准则和数掘流测试覆盖准则。控 制流测试覆盖准则包括语句覆盖、分支覆盖、条件覆盖和路径覆盖等。数掘流覆 盖包括定值覆盖、引用覆盖、定值一引用覆盖等。这些准则可以定量地规定测试 需求,直到测试数据的选择,还能度量测试用例集的测试能力,对测试结果和软 件可靠性评估具有重要影响。 3 测试种类 根据软件系统所处的开发阶段,可将测试分为单元测试、集成测试、确认测 试、系统测试等几个阶段。单元测试是指对构成软件的各个单元模块进行的测试。 集成测试是指将各个模块组装起来进行整体上的测试。确认测试是当软件已完全 组装以后对软件进行的确认测试,确认测试的目的是验证系统是否满足规格说明 的需求。系统测试是指将软件与其它硬件和设备放在一起进行的对系统的整体评 估。单元测试与集成测试可采用黑盒、白盒与灰盒测试技术,确认测试一般采用 黑盒测试技术。 根据测试指标的不同,还可以将系统测试分为恢复测试、安全测试、强度测 试和性能测试等。 复巨大学硕卜毕业论文 测试s o a 系统的方法与模型研究 4 自动化测试 由于测试的工作量一般很大,因此出现了自动化测试工具来帮助提高测试效 率。自动化测试工具一般可分为以下几类: 1 )静态测试工具 静态分析器。扫描源代码,找出可能导致错误的异常情况,如变量 无初值,有不可达代码等。 代码审查器。检查代码是否满足代码标准。 断言处理器。包括前置处理器和后置处理器,用来检查程序员关于 程序行为的断言在运行过程中是否成立。 2 ) 动态测试工具 测试用例生成器。能够辅助测试人员产生一些特殊的测试用例,提 高测试充分性。 客户端模拟工具。用于模拟多个用户进行系统测试。 输出比较器。通过几组输出比较出他们之间的差别。 在实际测试工作中,这些工具通常相互配合,共同协助测试人员完成测试任 务。 1 6 复旦大学硕士毕业论文 测试s o a 系统的方法与模型研究 第三章s o a 挑战下的测试理论与方法 一、对s o a 系统的测试与传统测试的差异 1 测试种类的差异 一般来说,测试活动是伴随开发活动进行的。随着开发阶段的不同,我们把 对应的测试分为单元测试、集成测试、确认测试和系统测试。s o a 系统的开发 涉及到简单服务的开发、组合服务的开发和对服务进行调用的用户端的服务调用 者的开发以及三者的集成。对于不同类型服务的开发,伴随其中的测试种类也有 所不同,尤其是组合服务开发过程中的测试种类与传统的测试分类概念有所不 同。 1 )简单服务的测试种类 如f j i 所述,简单服务的丌发流程与传统软件的丌发流程类似,因此与之相对 应的测试种类也相同。 单元测试是对各个编码的模块的测试;集成测试是对模块进行组装后的测 试;确认测试是测试所开发的简单服务是否符合设计说明;系统测试是指将简单 服务部署到一定的计算机系统后对整体进行的测试。 2 )组合服务的测试种类 组合服务与简单服务的开发流程不同,组合服务的开发是简单服务开发流程 与动态绑定的结合过程。为了便于区分,我们把组合服务中简单服务的开发流程 所对应的测试种类归于简单服务的测试种类中。因此组合服务中的测试是指在服 务的组合( 动态绑定) 过程中为了保证组合质量进行的测试。 当组合服务的所有者进行服务组合时,必须有相应的措施来保证服务的质 量。传统的测试种类在组合服务的开发流程中变得不适应,主要因为: 第一,传统的单元测试是指对代码模块的测试,但是组合服务是将现有服务 进行绑定。被绑定服务的代码对于服务组合者来说不可见。服务组合者仅了解服 务的功能和接口。 1 7 复日- 大学硕t 毕业论文 测试s o a 系统的方法与模型研究 第二,集成测试、确认测试和系统测试困难。服务的动态组合是在运行时完 成的,服务组合完毕后可能立刻投入运行,这不允许测试人员占用系统资源对组 合服务进行大量的集成、确认和系统测试工作。另一方面,对于服务提供者来说, 对其所拥有服务的动态组合请求可能在同一时刻有多个同时进行,在服务组合进 入某系统的过程中,服务可能正被另外的系统使用。此时,服务提供者也不允许 某- - n 务使用者对服务进行大量调用以完成集成、确认和系统测试。 为了保证组合服务的质量,在目前的研究中采取增强服务中介( u d d i ) 功 能的方式,由u d d i 服务器对在其中进行注册的服务进行测试1 1 3 l 。有的研究人 员建议扩充服务提供者的w s d l 说明,将针对本服务的测试用例加入w s d l 中, 并一同提交给u d d i ,u d d
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 四川省雅安市2024-2025学年高一下学期期末教学质量检测英语试卷(含答案)
- 2025年事业单位工勤技能-湖南-湖南城管监察员五级(初级工)历年参考题库含答案解析
- 2025年事业单位工勤技能-湖北-湖北电工二级(技师)历年参考题库典型考点含答案解析
- 2025年金融反欺诈技术升级路径解析:大数据应用实战案例分享与启示
- 2025年事业单位工勤技能-湖北-湖北兽医防治员四级(中级工)历年参考题库含答案解析
- 生态补偿机制在生态补偿与生态环境保护生态补偿科技创新体系中的应用报告2025
- 2025年事业单位工勤技能-海南-海南客房服务员四级(中级工)历年参考题库含答案解析
- 2025年能源行业智能电网在数字化转型中的电力系统优化报告
- 2025年消费金融公司奢侈品分期用户画像分析与精准营销方案
- 2025年事业单位工勤技能-河南-河南地质勘查员五级(初级工)历年参考题库典型考点含答案解析
- 贵州成人学士学位英语考试真题及答案
- GB/T 42043-2022航空航天电线的铝合金和铜包铝导体通用性能要求
- GB/T 9867-2008硫化橡胶或热塑性橡胶耐磨性能的测定(旋转辊筒式磨耗机法)
- GB/T 35690-2017弱磁材料相对磁导率的测量方法
- GB/T 1527-2006铜及铜合金拉制管
- JB∕T 13977-2020 液化天然气(LNG)低温潜液泵
- 年度设备维护保养计划表
- 110kV企业变电站短路电流计算及继电保护整定计算
- 口咽通气道的使用方法
- 2022年晋能控股煤业集团有限公司招聘笔试题库及答案解析
- 福建师范大学各学生组织部门简介
评论
0/150
提交评论