




已阅读5页,还剩46页未读, 继续免费阅读
(计算机软件与理论专业论文)基于扩展wsdl的测试用例自动生成.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
西南大学硕士学位论文摘要 基于扩展w s d l 的测试用例自动生成 计算机软件与理论专业硕士研究生袁雪莉 指导教师丁晓明副教授 捅要 w e b 服务以x m l 、w s d l 、s o a p 和u d d i 为核心,采用s o a 体系架构,引入了一种新 的w e b 应用的开发、部署和集成的模式。它以其松散耦合性、高度可集成性和规范性等特点 得到了广泛的应用。为了保证w e b 服务的质量,必须对其进行详尽的测试,而测试自动化对 于提高测试的质量和效率非常重要,提高测试的自动化程度关键又在于测试用例生成的自动 化。 本文在对w e b 服务及测试用例自动生成技术深入研究的基础上,分析了目前w e b 服务测 试用例自动生成研究中存在的不足,并提出了一种基于扩展w s d l 的测试用例自动生成方法, 生成的测试用例主要包括测试数据和操作序列两部分。 本文首先通过在t y p e s 元素中添加s i m p l e t y p e 元素来扩展w s d l 的类型定义,用来描述 数据类型的基类和刻面约束,通过扩展后的类型定义就可以有效地生成测试数据。同时,基 于前人提出的数据类型的抽象模型,本文增加了对复杂数据类型结构的描述,提出了一种更 具有可视化和可理解性的抽象模型,该模型有利于测试用例产生过程的形式化描述。根据扩 展后w s d l 文档生成的测试数据主要包括简单数据类型的测试数据和复杂数据类型的测试数 据:简单数据类型的测试数据是通过w s d l 文档中定义的数据类型及刻面约束,根据相应的 测试数据生成策略而产生;复杂数据类型的测试数据是将简单数据类型的测试数据根据子元 素的权重进行选择之后,通过不同的规则组合而生成,从而在保证有效性的同时减少了测试 数据的数量。另外,本文在o p e r a t i o n 元素中添加p r e o p 子元素,用来表示o p e r a t i o n 的前置操 作,分析扩展后w s d l 文档中的操作依赖关系生成操作序列,结合测试数据,就可以有效地 测试复杂的操作流程。根据测试用例的生成,本文还引入了四种测试覆盖准则并分析了他们 之间的相互关系。 最后,本文设计并实现了一个基于扩展w s d l 的测试用例自动生成原型系统- t c g t b e w , 并进行了实验验证。实验表明:该方法能够有效地生成w e b 服务的测试用例,从而提高了w e b 服务测试的质量和效率。 关键词:w e b 服务w s d l 测试数据操作序列测试覆盖准则 西南大学硕士学位论文a b s t r a c t a u t o m a t i ct e s tc a s e sg e n e r a t i o nba s e do n e x t e n d e dw s d l m a jo r :c o m p u t e rs o f t w a r ea n dt h e o r y s u p e r v i s o r :a s s o c i a t ep r o f e s s o rd i n gx i a o m i n g a u t h o r :y u a nx u e l i a bs t r a c t w e bs e r v i c ea d o p t ss e r v i c e o r i e n t e da r c h i t e c t u r ea n di n t r o d u c e san e wk i n do fd e v e l o p m e n t , d e p l o y m e n ta n di n t e g r a t i o nm o d eo fw e ba p p l i c a t i o n s t a n d a r d sb a s e do nx m la r ei t sc o r e ,e g 。 w s d l ,s o a pa n du d d i b e c a u s eo fl o o s ec o u p l i n g ,e a s yi n t e g r a t i o na n dc r i t e r i o n ,w e bs e r v i c e b e c o m e sm o r ea n dm o r ei m p o r t a n t t og u a r a n t e es e r v i c eq u a l i t y , w e bs e r v i c em u s tb et e s t e d t e s t a u t o m a t i o ni st h ek e yt oi m p r o v eq u a l i t ya n de f f i c i e n c yo ft e s t ,a n dt e s ta u t o m a t i o n sk e yl i e so nt h e a u t o m a t i o no ft e s tc a s e sg e n e r a t i o n t h i sp a p e ri n t r o d u c e ss o a , w e bs e r v i c ea n dt h e i rc o r r e l a t i o n f i r s t l y , t h e ni n t r o d u c e st h e c o n c e p to fs o f t w a r et e s ta n ds u m m a r i z e sa u t o m a t i ct e s tc a s eg e n e r a t i o nt e c h n o l o g i e s b a s e do nt h e s e r e s e a r c h e s ,t h i sp a p e rp u r p o s e sa u t o m a t i ct e s tc a s e sg e n e r a t i o nb a s e do ne x t e n d e dw s d l t h e g e n e r a t e dt e s tc a s e si n c l u d et e s td a t aa n do p e r a t i o ns e q u e n c e s t h i sp a p e re x t e n d s t y p e s ”e l e m e n tb ya d d i n g s i m p l e t y p e ”e l e m e n tt od e s c r i b eb a s i ct y p ea n d f a c e tr e s t r i c t i o n s ,w h i c ha d o p t sd e s c r i p t i o ni nx m ls c h e m a a n dt h e nt h et e s td a t ac a nb eg e n e r a t e d b yt h e s ee l e m e n t se f f e c t i v e l y a tt h es a m et i m e ,t h i sp a p e rp r o p o s e sam o r ec o m p r e h e n d i b l ea b s t r a c t m o d eb ya d d i n gs t r u c t u r ed e s c r i p t i o nb a s e do nt h ep r e v e n i e n tm o d e s g e n e r a t e dt e s td a t ab a s e do n e x t e n d e dw s d li n c l u d et e s td a t af o rs i m p l et y p e sa n dc o m p l e xt y p e s t e s td a t af o rs i m p l et y p e sa r e g e n e r a t e db yd a t at y p ea n df a c e tr e s t r i c t i o n t e s td a t af o rc o m p l e xt y p e sa r eg e n e r a t e db ya d j u s t i n g g e n e r a t i o ns t r a t e g yb yw e i g h to fc o m p l e xd a t at y p e s s u b e l e m e n t sa n dr e l e v a n tc o m b i n a t i o nr u l e s , s ov a l i d i t yo ft e s td a t ai s g u a r a n t e e da n da m o u n ti sr e d u c e d m o r e o v e r , t h i sp a p e re x t e n d sw s d l d o c u m e n t s “o p e r a t i o n e l e m e n tb ya d d i n g p r e o p ”e l e m e n tt od e s c r i b ep r e - p o s i t i v eo p e r a t i o n o p e r a t i o ns e q u e n c e sa r eg e n e r a t e db ya n a l y z i n go p e r a t i o nd e p e n d e n c yo fe x t e n d e dw s d l ,c a r lb e u s e dt ot e s tc o m p l e xo p e r a t i o nf l o w s o t h e r w i s e ,t h i sp a p e ri n t r o d u c e sf o u rk i n d so ft e s tc o v e r a g e c r i t e r i o n sa n da n a l y z e sc o r r e l a t i o no ft h e s ec r i t e r i o n s l a s t l y , t h i sp a p e rd e s i g n sa n dd e v e l o p sat e s tc a s e sg e n e r a t i o nt o o lb a s e do ne x t e n d e d w s d l - t c g t b e w t h ee x p e r i m e n t ss h o wt h a tt h i sm e t h o dc a ng e n e r a t et e s tc a s e sb a s e do n e x t e n d e dw s d le f f i c i e n t l y , w h i c hc a ni m p r o v et h eq u a l i t ya n de f f i c i e n c yo fw e bs e r v i c et e s t k e yw o r d s :w e bs e r v i c ew s d lt e s td a t a o p e r a t i o ns e q u e n c e t e s t c o v e r a g ec r i t e r i o n 独创性声明 本人提交的学位论文是在导师指导下进行的研究工作及取得的研究成 果。论文中引用他人已经发表或出版过的研究成果,文中已加了特别标注。 对本研究及学位论文撰写曾做出贡献的老师、朋友、同仁在文中作了明确 说明并表示衷心感谢。 学位论文作者:吝雪蒡签字日期:加7 年r 月多日 i 学位论文版权使用授权书 本学位论文作者完全了解西南大学有关保留、使用学位论文的规定, 有权保留并向国家有关部门或机构送交论文的复印件和磁盘,允许论文被 查阅和借阅。本人授权西南大学研究生院( 筹) 可以将学位论文的全部或 部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手 段保存、汇编学位论文。 ( 保密的学位论文在解密后适用本授权书,本论文:曰不保 密,口保密期限至年月止) 。 学位论文作者签名:裁琴萄 签字日期:加彳年岁月z 2 日 导师签名:歹谴胗 签字日期:加吵年厂月日 西南大学硕士学位论文第一章引言 1 1 研究背景及意义 第一章引言弟一早ji 苗 随着网络技术的应用与产业的快速发展,客观上要求企业之间甚至大型企业内部软件应 用之间能够进行复杂的交互。这样就必然要求在i n t e r n e t 上实现企业应用方案应当是一个基于 分布式计算的体系架构,多个计算实体之间通过基于标准的数据描述方式,基于标准的调用 方法进行交互,需要摆脱目前独立解决方案的实现模式,需要舍弃复杂系统连接的实现方法。 一个有效的企业应用绝对不应该是仅仅基于程序员及复杂的代码。对于企业应用而言,传统 的点对点的软件体系结构应当被以服务为导向的,分布式计算的体系结构所取代。冗长的串 行的开发循环应当被即时的、快速的应用装配所取代,同时这样的应用应当具有高可定制性。 在这样的现实背景下,面向服务的体系架构( s o a ,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 已成为基于w e b 的分布式系统( 如电子商务、电子政务等) 的主要发展趋势。 s o a 提出了一种松散耦合的、基于标准的、面向服务的体系架构,以有效解决分布式、异构 环境下,应用系统的集成问题。w e b 服务( w e bs e r v i c e ) 是实现s o a 的方式之一,它采用s o a 体系架构,引入了一种新的w e b 应用的开发、部署和集成的模式,是一组部署在应用服务器 上的软件构件,其服务接口及绑定形式可以通过w 3 c 等国际标准组织制定的基于x m l 的标 准( 如w s d l 、s o a p 、u d d i 等) 定义、描述、检索和调用。通过采用w e b 服务,部署和集 成的费用大大降低,流程的更改也无需更改大量代码,甚至通过工具的支持,根本无需更改 程序代码。同时随着新的w e b 服务技术的大量使用,w e b 服务在运行时态进行动态装配将成 为现实,同时每个用户甚至可以应用户的需要而实时装配。w e b 服务的松散耦合性、简单性、 高度可集成性、规范性、开放性和行业支持是其几大特点和优势。 w e b 服务的可信性是服务选择、应用和集成的关键依据之一【2 1 。w 曲服务分布应用、具有 各种运行时行为、涉及多种标准协议,可能在硬件、软件、通信、对象管理等各个环节出现 各种缺陷,其体系结构和应用的复杂性,以及技术和规范不断地发生变化,都对测试研究提 出了新的挑战。w e b 服务的测试主要特点与难点主要体现在以下几个方面【2 16 】: ( 1 ) w e b 服务的开发环境与其应用环境有很大的不同。在发布之前,很难对其实际的运 行场景进行预测,如访问的用户类型、并发用户数量、w e b 服务调用的装载模式和访问方式 等,这些差异和应用的不确定性都增加了w e b 服务测试的困难。 ( 2 ) w e b 服务测试主要基于服务接口进行设计和实现,因此必须采用自动化测试方法, 与传统的需要大量人工干预的测试方法截然不同。 ( 3 )由于w e b 服务的分布特征,会出现大量用户通过不同的环境访问一个服务的情形, 因此,性能和可扩展性是w e b 服务测试的重要方面。 ( 4 ) w e b 服务及服务集成的发布、发现和绑定都是动态完成的,其过程的不确定性和不 可见性增加了测试难度。 ( 5 ) w e b 服务访问接口和访问方法发布后增加了w e b 服务的安全隐患,提高了被系统攻 西南大学硕士学位论文第一章引言 击的机会。此外,对于所调用的分散、异构的外部w e b 服务的安全性的管理更为困难。如何 提高w e b 服务的安全性也是测试者要考虑的重要问题。 ( 6 ) w e b 服务的应用通常涉及到服务提供者、发布者和使用者三种角色,都需要参与到 测试的不同阶段。其分布式合作的特征使得测试的组织、缺陷管理、结果评估等活动都更加 困难。 据统计,在所有的软件测试的开销中,约4 0 花费在测试用例的设计上,约5 0 花费在 编写和编译测试脚本上,另外约1 0 花费在测试脚本的执行上和配置管理上。当前,w e b 服 务的测试主要依靠测试人员手工设计测试数据,这种方法费时费力,且带有一定的盲目性和 倾向性。提高测试用例生成的自动化程度可以有效地减轻测试人员的劳动强度,提高软件测 试的质量,此外,测试数据的有效性将直接影响w e b 服务的测试效率和测试成本,如何为w e b 服务自动生成有效的测试用例成为急需解决的问题【m 。基于此,本文以测试用例的自动生成为 重点来研究w e b 服务的测试。 1 2 国内外研究现状 1 2 1 w e b 服务测试的研究现状 目前,根据w e b 服务架构和业务模型,w e b 服务测试可分为三个层次2 】:基础设施测试、 独立的w e b 服务测试以及w e b 服务集成测试,如图1 1 所示。同时,测试组织和管理是w e b 服务测试的三个层次中都需要解决的问题,对测试的系统性、有效性至关重要。 i - 一一一一一一 图1 1w e b 服务测试的三个层次 ( 1 )w e b 服务基础设施验证与扩展 虽然标准化和开放性是w e b 服务的主要宗旨,但与传统的应用系统相比,w e b 服务中间 件的稳定性和可靠性相对薄弱。一方面,是由于w e b 服务的整个技术架构还尚未成为成熟的 产业标准。在w 3 c 联盟以及相关研究机构的大力支持下,标准规范体系还处于不断发展和完 善的过程中,不同的标准之间的概念模型和表示体系可能互不兼容,并进一步导致相关应用 程序的不兼容。另一方面,w e b 服务规范体系采用x m l 作为基本的编码语言。由于x m l 技 术的简单、灵活、可伸缩、易定制,基于x m l 数据描述和x m ls c h e m a 数据建模定义的w e b 服务的协议栈具有标准化和开放性的特点。但是同时,x m l 为描述性语言,其通用性和灵活 性为协议的可证明性提出了挑战。当w e b 服务用于高可信性或实时要求较高的应用中,需要 更严格的验证方法。 n i kl o o k e r 和j i ex u 采用错误植入的技术来测试s o a p 协议的可信性,并采用一种基于 度量的评估技术分析监测结剁4 1 。对于w s d l ,w t t s a i 及其研究人员指出,应进一步扩展 2 西南大学硕十学位论文第一章引言 w s d l 的定义,增强其描述能力。以支持对特定服务的测试【5 1 。他们提出了四方面的扩展机 制:对输入输出依赖性的描述,对服务间调用序列的描述,对并发序列的描述以及对功能层 次关系的描述,这些扩展元素有利于w e b 服务的测试研究。另外,w 3 c 成员提议对w s d l 进行语义扩展,提出了w s d l s 语言1 6 。 ( 2 )独立的w e b 服务测试 w e b 服务首先作为独立的功能节点发布,再通过工作流定义和解析动态集成为完整的业 务流程。独立的w e b 服务测试就是从以下三个方面保证各服务节点的质量: 服务的实现应在功能、性能等各方面与发布的服务描述相一致,为验证一致性,除 服务提供者外,服务中介及用户都应能在一定的安全约束下,远程测试该服务。 由于服务发布的开放性,对于每一个服务请求,可能存在多个满足需求的服务描述。 服务中介应能根据一定的度量和评价标准,对多个服务进行测试、比较和评估,并 依照需求的满足程度排序。 在服务实现的演化过程中,应建立一定的机制来支持对不同版本的跟踪及回归测试。 目前,独立w e b 服务的功能测试主要是基于w s d l 文档的自动化测试。w s d l t e s t 7 工具 通过对w s d l 描述的s c h e m a 进行静态分析,产生s o a p 请求和测试脚本,测试脚本允许用 户操作w e b 服务请求中的变量,同时允许用户对响应结果的验证,另外,测试驱动负责读取 和分派w 曲服务请求,并接受和写w e b 服务响应。e v a nm a r t i n 等人在文献【8 】中首先基于w s d l 产生j a v a 代码,然后产生一个包含随机值和极端值的测试集并运行,最后分析运行结果。r e d a s i b l i n i 和w u z h ix u 等人尝试通过对w s d l 文档进行变异从而实现对w e b 服务的测试【9 l 叭。另 外,梅宏等人工作的提出了从w e b 服务的实际运行过程中提取测试信息,但没有描述具体的 产生过程。 。 ( 3 )集成的w e b 服务测试 通过对服务流描述的解析,w e b 服务可以动态地集成。w e b 服务集成的描述、解析和执 行将是w e b 服务区别于其它分布式计算技术的一个主要特征。目前已经提出了多种w e b 服务 描述语言,如m m 的w s f l 、微软的x i a n g 、i b m 的b p e i a w s l 。集成的w e b 服务测试就 是在服务流描述执行前,通过静态验证以及动态模拟的方法,确认服务描述能够正确地描述 业务需求,能够由服务中介正确地解析,并能由所有服务节点正确地执行。 c h u no u y a n g 和w h l id o n g 等人通过p e t r i 网对组合的w e b 服务进行测试 1 2 , 1 3 10 g i u s yd i l o r e n z o 等人提出了一种自动验证器【1 4 1 ,去执行b p e i a w s 过程定义中所使用的流结构语义分 析。h a ih u a n g 等人通过模型检验o w l - s 的过程模型,并通过模型检验过程自动产生的测试 用例去进行有效性验证,他扩充了处理控制流模型的模型检验器b l a s t ,去处理o w l - s 中 的并发操作,同时还计划增强o w l - s 和u d d i 使得自动产生测试用例更简单【l5 1 。 似)w e b 服务测试组织和管理 传统的应用系统开发中,测试过程和测试资产通常为集中管理和监控的模式。在传统的 测试流程中,测试架构人员根据系统特征点,设计测试用例和测试场景。测试工程师执行测 试,捕捉测试结果,报告缺陷,并跟踪缺陷的修复过程。对于修复的系统,还要通过回归测 试来确认缺陷已经被正确地更改,并且系统没有引入新的缺陷。w e b 服务的分布式特征使这 一过程变得更加复杂。服务提供者、中介和使用者三方需要在一个分布合作的环境下,共同 3 西南大学硕士学位论文第一章引言 建立和维护测试方案、测试结果、和缺陷数据库,并跟踪缺陷修复过程。测试及回归测试都 必须通过自动化的测试引擎,通过互联网远程调度、执行。为模拟用户的实际应用环境和场 景,亦需在一个分布式的环境下,统一调度多个测试引擎。不同测试方案、测试引擎和测试 运行的测试结果需要能够进行综合和分析,并最终给出评价结果。 1 2 2w 曲服务测试用例自动生成的研究现状 为了保证w e b 服务的质量,必须对其进行详尽的测试,而w e b 服务主要是基于服务接口 进行设计和实现的,因此必须采用自动化测试方法 2 , t e l ,这对于提高测试的质量和效率非常重 要。提高测试的自动化程度关键又在于测试用例生成的自动化。 w e b 服务主要分为单独的w e b 服务与集成的w e b 服务,单独w e b 服务的质量保证是集成 w e b 服务及相关应用的基础和关键,所以单独w e b 服务的测试是w e b 服务测试领域及w e b 服务应用的基础性环节,而w s d l 文档正好描述了单独w e b 服务的相关属性,可以用来产生 测试用例,于是国内外的研究者们都开展了基于w s d l 的w e b 服务测试用例自动生成的研究, 并取得了相应的进展。 国内,北京大学的姜瑛等人根据w s d l 文档采用随机法生成初始的测试数据,然后通过 合约变异技术并结合贪心算法进行测试数据的选择,从而生成能够达到一定合约变异充分度 的有效测试数据,提高了w e b 服务的测试质量和效率。但是变异测试需要大量的计算机资源, 而且该方法只能产生h a t 、f l o a t 和d o u b l e 三种类型变量的测试数据 3 】。在姜瑛等人工作的基础 上,梅宏提出从w e b 服务的实际运行过程中提取测试信息【1 1 】,但没有描述具体的产生过程, 而且在实际运行过程中提取测试信息会延迟测试时间,不利于w e b 服务的早期测试。文献 1 7 】 通过解析w s d l 文档将其转换成结构化的d o m 树,然后从测试数据和操作流两个方面产生 测试用例,其中操作流是通过分析数据的输入输出依赖而产生的。 国外,h a r r ym s n e e d 等人在文献 7 冲通过遍历w s d l 树,结合节点类型和刻面约束生成 测试数据,同时生成测试脚本,然后通过修改脚本即前置条件声明来生成不同的测试用例。 文献【8 】从w s d l 产生j a v a 客户端代码,然后把代码中的封装类送到j a v a 单元测试产生工具 中去,最后产生能够执行服务的测试用例集。文献【1 8 提出首先建立数据类型的抽象模型,然 后利用边界值分析方法和随机法,分别为简单数据类型和复杂数据类型产生测试数据。但是 该方法没有考虑复杂数据类型的类型结构,不能将复杂数据类型中子元素的测试数据进行有 效地组合。文献 1 0 】尝试通过对w e b 服务的x m ls c h e m a 文档进行变异来生成测试用例:首 先建立一个x m l 数据模型,然后通过插入和删除结点修改x m ls c h e m a 产生测试用例,并通 过w e b 服务的响应来分析测试结果。 他们的研究是对w e b 服务自动化测试特别是对测试用例自动生成做出的探索,同时也为 进一步的研究奠定了良好的基础。 1 - 3 本文主要工作 本文在对w e b 服务及测试用例自动生成技术深入研究的基础上,针对目前w e b 服务测试 用例自动生成研究中存在的不能有效地生成测试用例、测试用例数量过大、不能测试复杂的 4 两南大学硕士学位论文第一章引言 操作流程等问题,提出了一种基于扩展w s d l 的测试用例自动生成方法,生成的测试用例主 要包括测试数据和操作序列两部分。论文主要工作如下: ( 1 ) 数据类型的抽象模型研究:本文通过在t y p e s 元素中添加s i m p l e t y p e 元素来扩展 w s d l ,从而描述输入数据类型的基类和刻面约束,添加的s i m p l e t y p e 元素采用x m ls c h e m a 中的类型描述,通过扩展后的类型定义就可以有效地生成w e b 服务的测试数据。同时,基于 w u z h ix u 和s a m e rh a n n a 提出的模型,本文增加了对复杂数据类型结构的描述,提出了一种 更具有可视化和可理解性的抽象模型,有利于测试用例产生过程的形式化描述。 ( 2 ) 测试数据的生成:测试数据包括简单数据类型测试数据的生成和复杂数据类型测试 数据的生成。简单数据类型的测试数据是通过w s d l 文档中定义的数据类型及刻面约束,根 据相应的测试数据生成策略而产生;复杂数据类型的测试数据是根据子元素的权重,通过不 同的规则将子元素的测试数据组合而生成,从而在保证有效性的同时减少了测试数据的数量。 ( 3 ) 操作序列的生成:首先通过在o p e r a t i o n 元素中添加p r e o p 予元素,表示执行o p e r a t i o n 之前必须执行的前置操作。操作序列是通过分析扩展后的w s d l 文档中的操作依赖关系而产 生,结合产生的测试数据,就可以有效地测试复杂的操作流程。 ( 4 ) 测试覆盖准则:本文引入了四种测试覆盖准则,即p a r t 覆盖、m e s s a g e 覆盖、o p e r a t i o n 覆盖和操作流覆盖,并分析了这四种测试覆盖准则之间的相互关系。 ( 5 ) 最后,本文基于以上工作,设计并实现了一个基于扩展w s d l 的测试用例自动生成 工具- t c g t b e w ,并进行了实验验证。实验表明:本文提出的基于扩展w s d l 的测试用例自 动生成方法能够有效地自动地生成w e b 服务的测试用例,从而提高了w e b 服务测试的质量和 效率,同时以x m l 文档形式进行存储的测试用例也有利于测试人员对其进行维护和复用。 1 4 论文结构 第一章是引言,介绍了本文的研究背景及意义、w e b 服务测试与w e b 服务测试用例自动 生成的国内外研究现状及本文主要工作; 第二章主要介绍了s o a 的基本概念及特征,w e b 服务的相关技术与体系结构; 第三章系统阐述了软件测试的相关概念及测试用例的自动生成技术; 第四章介绍了本文的主要研究内容,包括w s d l 的扩展、数据类型的抽象模型研究、简 单数据类型测试数据的生成、复杂数据类型测试数据的生成、操作序列的生成及测试数据和 操作序列的x m l 描述,同时还引入了四种测试覆盖准则; 第五章介绍了基于扩展w s d l 的w e b 服务测试用例自动生成原型系统( t c g t b e w ) 的 设计与实现,并通过实验验证了方法的有效性; 第六章对本文工作进行了总结,并对下一步工作进行了展望; 最后是参考文献、致谢、攻读硕士学位期间发表的论文和参加的课题。 5 西南大学硕士学位论文第二章s o a 与w e b 服务 2 1s o a 第二章s o a 与w e b 服务 2 1 1s o a 的基本概念 迄今为止,对于s o a 还没有一个公认的定义。许多组织从不同角度和不同侧面对s o a 以进行了描述,较为典型的定义 1 9 , 3 7 有: w 3 c 将s o a 定义为:“一种应用程序体系结构,在这种体系结构中,所有功能都定义为 独立的服务,这些服务带有定义明确的可调用接口,可以以定义好的顺序调用这些服务来形 成业务流程”。s o a 的关键是“服务”的概念,w 3 c 将服务定义为:“服务提供者完成一组工 作,为服务使用者交付所需的最终结果”。 s e r v i c e - a r c h i t c t u r e c o n l 将s o a 定义为:“本质上是服务的集合。服务问彼此通信,这种通 信可能是简单的数据传送,也可能是两个或更多的服务协调进行某些活动。服务间需要某些 方法进行连接。所谓服务就是精确定义、封装完善、独立于其他服务所处环境和状态的功能 函数。” s o a 不仅是一种现成的技术,而且是一种架构和组织1 1 r 基础结构及业务功能的方法,是 一种在计算环境中设计、开发、部署和管理离散逻辑单元( 服务) 模型的方法。同时,它还 具有组织上的优点。s o a 通过直接组织开发人员所构建的服务而形成自己的应用,这远胜于 以往组织单个应用的方式。通过分析服务间的交互,s o a 可以帮助企业了解何时以及为什么 业务逻辑被切实执行了,这使管理员或分析师能够有针对性地优化业务流程。 综上所述,s o a 通过高复用可以降低开发成本;通过粗粒度、松耦合可以屏蔽复杂业务 逻辑,从而降低复杂度;通过组织专业分工,可以使得软件开发大规模化成为可能。因此, s o a 架构作为软件危机和软件大规模流水线生产的解决方案,有着很大的优势。 2 1 2s o a 的特征 通常,s o a 具有如下特征2 0 】: ( 1 ) 良好定义的接口和规则 良好定义的联络接口( c o n t r a c t ) 是s o a 的一个关键概念。所有的服务都要发布一个联络 接口。这个联络接口封装了服务客户端和服务双方都同意遵守的、彼此相互理解的通信规则。 当服务消费者查找服务时,它想要得到的也就是服务的接口。接口包含使用服务的所有必要 信息。使用接口所包含的信息去访问和利用服务,我们称为绑定( b i n d i n g ) 。 ( 2 ) 服务代表业务域 一个服务既可代表业务域,也可以代表技术域。技术功能就是最常见的一种服务。注册、 安全验证和日志记录都是应用中起着重要作用的服务。但s o a 真正强大的地方在于它对业务 域的建模能力。对企业内部和外部而言,完成能代表业务域的服务比完成代表技术域的服务 困难更大,同时,价值也更大。 ( 3 )服务使用模块化设计的思想 6 西南大学硕士学位论文第二章s o a 与w e b 服务 模块化设计的思想对s o a 来说很重要。一个模块可以想象软件子单元或者子系统。一个 模块应该彻底地执行一个功能,用来执行特定功能韵所有子单元。 ( 4 ) 服务之间的松耦合 服务消费者和服务提供者之间的关系应该是松耦合,也就是这两者之间不存在静态的编 译时依赖。服务向外部隐藏其功能实现,也是松耦合的一种表现。让服务的使用者知道服务 的实现细节只会产生不必要的依赖性。 ( 5 )服务是可查找的 s o a 的弹性和可重用性的另一方面体现在支持服务的动态发现和绑定。编译客户端模块 时,不需要与服务保持静态连接。同样,编译服务端的模块时,也不需要与任何客户端处于 静态连接状态。 ( 6 ) 服务传输机制的独立性 服务消费者使用网络连接来访问和使用服务,s o a 架构要求使用服务时,无需关注网络 连接的类型,也不用关心服务数据的传输机制。 ( 7 ) 服务地址的透明性 企业在进行架构重构时,可以选择第三方提供的服务。用户在使用某个服务时,甚至不 知道这个服务的操作可能分散在许多不同的服务点。 ( 8 )服务的平台无关性 理想情况下,服务的平台无关性是指服务运行平台的无关性,与机器型号无关,与操作 系统无关。也就是说,服务运行在哪个平台不影响在某个特定平台上的用户的访问和使用。 如:运行在w i n d o w s 平台上的通过n e t 创建的服务,允许运行在任何平台上的用户通过w e b 服务访问。他们之间的通信使用的是s o a p 协议。 2 2 w r e b 服务 2 2 1w e b 服务的基本概念 w e b 服务是就现在而言最适合实现s o a 的一些技术的集合,s o a 之所以能发展的如此迅 速,在很大程度上归功于w e b 服务标准的成熟和应用的普及。w e b 服务是一种通过发布实现 接口,以暴露服务器端功能的机制。尽管实现w e b 服务需要广泛的技术支持,但一点很重要: 只要通过一种标准协议,就可以在任何地方访问服务提供者提供的服务。 w e b 服务体系工作组对w e b 服务有如下解释2 0 】: “w e bs e r v i c e sp r o v i d eas t a n d a r dm e a n so fi n t e r o p e m t i n gb e t w e e nd i f f e r e n ts o f t w a r e a p p l i c a t i o n s ,r u n n i n go n av a r i e t yo fp l a t f o r m sa n d o rf r a m e w o r k s 所以,w e b 服务在不同的软件应用之间的提供了标准的交互方式,而不用考虑这些应用 的技术实现及运行平台。 w e b 是为了程序到用户的交互,而w e b 服务是为程序到程序的交互做准备。w e b 服务使 公司可以降低进行电子商务的成本、更快的部署解决方案以及开拓新机遇。达到这个新天地 的关键在于通用的程序到程序通信模型,该模型应建立在现有的和薪兴的标准之上,例如, h t l 甲、可扩展标记语言( e x t e n s i b l em a r k u pl a n g u a g e ,x m l ) 、简单对象访问协议( s i m p l eo b j e c t 7 西南大学硕十学何论文第二章s o a 与w e b 服务 a c c e s sp r o t o c o l ,s o a p ) 、w 曲服务描述语言( w e bs e r v i c ed e s c r i p t i o nl a n g u a g e ,w s d l ) 以 及通用描述、发现和集成( u n i v e r s a ld e s c r i p t i o nd i s c o v e r ya n di n t e g r a t i o n ,u d d i ) 。 2 2 2 w e b 服务相关技术 ( 1 ) x m l 可扩展标识语言( e x t e n s i b l em a r k u pl a n g u a g e ,x m l ) 是由互连网联合组织( w o r l dw i d e w e bc o n s o r t i u m ) g l j 建的一组规范,其目的不仅在于满足不断增长的网络需求,而且是为了确 保在网络信息交换时,具有良好的可靠性和互操作性。x m l 是标准通用标记语言( s t a n d a r d g e n e r a lm a r k u pl a n g u a g e ,s g m l ) 的一个优化子集,它继承s g m l 具有的可扩展性、结构性和 有效性等特点,避免了h t m l 的局限性,成为网络环境下结构化信息描述和管理的有效工具 【2 。x m l 作为一种标记语言有以下特点 2 6 , 3 6 : 简单性:x m l 文档只是纯文本,纯文本对人类来说是最简单的格式; 自我描述性:x m l 可以明确地表示数据模型中各个部分的意义,这就是自我描述性。 只要查看x m l 文档中某个数据项旁的标记,就可以确定该数据的意义: 互操作性:x m l 文档是纯文本的,很容易在系统间传递它们。这不仅仅是因为这些 元素“简单”,而且因为x m l 更容易在应用程序间迁移。不同的环境或操作系统可 以互相通信,这对于混合了新旧系统的业务来说特别有用; 结构:x m l 可以描述简单数据的结构,也可以描述像数组或集合这样非常复杂的数 据结构,x m l 文档用一组创建它们的规则来发送,这些规则一般采用模式的形式, 为接收应用程序提供它需要知道的任何内容,以验证文档; 内容与表示的分离性:x m l 文档只是对内容的描述,它的外观则需要通过x s l ( x m l s c h e m a 语言) 来描述。 可扩展性:x m l 允许个人、组织根据自己的需要建立适合自己的标记集合,从而创 建在用户领域内信息共享和交换的基础。 d o m 的全称是d o c u m e n to b j e c tm o d e l ( 文档对象模型) ,它是来自w 3 c 的官方标准,它 允许按照w 3 c 标准w 3 cd o ml e v e l l 和w 3 cd o ml e v e l 2 的规范所定义的规则,通过编程 来读取、搜索、修改、添加和删除x m l 元素。d o m 的工作方式是:首先将x m l 文档一次 性的装入内存,然后根据文档中定义的元素和属性在内存中创建一个“树型结构”,也就是一 个文档对象模型,这里的含义其实是把文档对象化,文档中每个节点对应着模型中一个对象, 而我们都知道对象提供编程接口,所以在应用中我们正是使用这组对象来访问x m l 文档进而 操作x m l 文档。 标准w 3 c 中d o m 模型有几种类型的结点:d o c u m e n t 、r o o t 、t e x t 、e l e m e n t 以及a t t r i b u t e 。 当使用d o m 对x m l 文本文件进行操作时,它首先解析文件,将文档中的元素、属性、注释、 处理指令都看作节点( n o d e ) ,然后在内存中以节点树的形式创建x m l 的文件表示。d o m 树, 除了r o o t 或d o c u m e n t 结点以外的每个结点都有一个父结点。a t t r i b u t e 结点总是和一个e l e m e n t 结点相关联,而用来封装元素的起始标记和结束标记中的文本是映射到一个t e x t 结点的:t e x t 结点是e l e m e n t 结点的一个子节点;t e x t 结点表示在x m l 文件中的一段文本;e l e m e n t 结点 表示x m l 文件;而a t t r i b u t e 结点表示一个元素内部的属性名和值。 8 西南大学硕士学位论文第二章s o a 与w e b 服务 本文所研究的w e b 服务测试用例生成就是基于d o m 技术。w s d l 文档基于x m l 语言标 准,利用d o m 技术也能对经过处理过后的w s d l 文档进行遍历访问和元素的提取。 ( 2 )w s d l w e b 服务描述语言( w 曲s e r v i c ed e s c r i p t i o nl a n g u a g e ,w s d l ) ( 2 2 是用x m l 文档来描述 w e b 服务的标准,是w e b 服务的接口定义语言,它用一种和具体语言无关的抽象方式定义了 给定w e b 服务收发的有关操作和消息,与x m l 一样,具有可扩展性。通过w s d l ,可以描 述w 曲服务的以下三个基本属性:服务做些什么:服务所提供的操作( 方法) ;如何访问服务: 和服务交互的数据格式以及必要协议:服务位于何处:协议相关的地址,如u r l 。 w s d l 文档以端口集合的形式描述w e b 服务,服务描述包含对一组操作和消息的一
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- IL4I1-IN-1-生命科学试剂-MCE
- 安全培训效果评审办法课件
- Hsp90-IN-41-生命科学试剂-MCE
- Herniarin-Standard-Methylumbelliferone-Standard-生命科学试剂-MCE
- HBeAg-ligand-1-生命科学试剂-MCE
- 小学医疗安全知识培训课件
- Glycocholic-acid-13C2-d4-生命科学试剂-MCE
- 2025年HED-系列厚膜阴极电泳涂料项目建议书
- 2025年宁波市鄞州区面向社会公开招聘社区专职工作者55人考前自测高频考点模拟试题及答案详解(网校专用)
- 快乐野营周记作文(14篇)
- 血液透析患者自我管理与健康教育
- 医疗决策遗嘱书写范文
- 建筑工程施工管理培训课件
- DB14-T 1737-2024 医疗护理员培训机构服务规范
- 物业经理聘用合同
- 理想二语自我对交际意愿的影响:二语坚毅和自信的链式中介作用
- 绳锯切割施工方案
- 职工基本医疗保险参保登记表
- 2024年社会工作者之初级社会综合能力考试题库含答案
- 学校品牌塑造校园文化的关键因素报告
- 污水厂职业病培训
评论
0/150
提交评论