(计算机应用技术专业论文)基于uml20动态视图的web服务模型测试方法及其应用.pdf_第1页
(计算机应用技术专业论文)基于uml20动态视图的web服务模型测试方法及其应用.pdf_第2页
(计算机应用技术专业论文)基于uml20动态视图的web服务模型测试方法及其应用.pdf_第3页
(计算机应用技术专业论文)基于uml20动态视图的web服务模型测试方法及其应用.pdf_第4页
(计算机应用技术专业论文)基于uml20动态视图的web服务模型测试方法及其应用.pdf_第5页
已阅读5页,还剩58页未读 继续免费阅读

(计算机应用技术专业论文)基于uml20动态视图的web服务模型测试方法及其应用.pdf.pdf 免费下载

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

文档简介

基于u m l 2 0 动态视图的w e b 服务模型测试方法及其应用中文摘要 中文摘要 如何保证并不断提高软件质量是软件工程研究的一个核心问题。软件测试能够有 效地发现软件中隐藏的缺陷,是保证软件质量的重要方法。w e b 服务是分布式计算领 域的新兴技术,具有良好的开放性、高度可集成性等优点;u m l 2 0 已经成为事实上 的建模语言标准,基于u m l 2 0 构建软件测试模型,能够清楚并完整地描述被测试系 统的真实信息,便于测试人员的理解和测试工作的尽早展开。 为了提高w e b 服务的可靠性,本文提出了基于u m l 2 0 活动图和通信图构建w e b 服务测试模型,在得到的测试模型基础上进行w e b 服务测试的方法。本文的主要思 想是将w e b 服务业务流程以及w e b 服务对象交互转化为可视化的动态测试模型。该 方法扩展了u m l 2 0 活动图,使其能够描述b p e l 的语法元素和行为特性;同时,给 出u m l 2 0 活动图形式化定义及其测试覆盖准则,对测试用例生成的深度优先搜索算 法加以约束,合理地减少了测试用例的数量,提高了测试的效率和精确性;利用 u m l 2 0 通信图的优点描述w e b 服务对象的交互过程,通过将u m l 2 0 通信图转化为 通信树,对通信树中的断言进行选择转换,结合所定义的u m l 2 0 通信图测试覆盖准 则,使用求解函数最小值的方法生成测试用例。本文通过一个基于w e b 服务技术的 订票售票系统实例来说明本文研究内容的可行性。 本文的研究是将基于模型的软件测试技术应用到提高w e b 服务可靠性的一个尝 试。通过基于u m l 2 0 动态视图构建w e b 服务测试模型,并结合形式化方法和测试 覆盖准则,本文的研究可以降低w e b 服务测试成本,提高w e b 服务测试效率和自动 化程度,对u m l 2 0 在w e b 服务测试中的应用起到一定的推动作用。 关键词;软件测试,w e b 服务,b p e l ,测试模型,u m l 2 0 活动图,u m l 2 0 通信图 作者:张峻 指导教师:张广泉 戴晔 a b s t r a c t t h ea s s u r a n c ea n di m p r o v e m e n to fs o t t w a r eq u a l i t yi sak e yq u e s t i o no f t h es o f t w a r e e n g i n e e r i n g a sa l li m p o r t a n tw a yo fs o t t w a r eq u a l i t ya s s u r a n c e ,s o f t w a r et e s t i n gc a l l f i n do u th i d d e nb u g si nt h es o t t w a r es y s t e me f f e c t i v e l y w e bs e r v i c e si san e wt e e l m o l o g y o fd i s t r i b u t e dc o m p u t i n ga r e a , w h i c hi se x c e l l e n to p e n n e s sa n dh i e , hd e g r e eo f i n t e g r a t i o n u m l 2 0i st h ed ef a c t om o d e l i n gl a n g u a g es t a n d a r d t h et e s t i n gm o d e lb a s e do i lu m l 2 0 c a l lr e f l e c tt h et r u ei n f o r m a t i o no ft h et e s t e ds y s t e md i s t i n c t l ya n de n t i r e l y , w h i c hc a l lb e c o m p r e h e n d e de a s i l yb yt h es o f t w a r er o s t e r a tt h es a m et i m e t h et e s tw o r kc a ns t a r ta s e a r l y 嬲p o s s i b l e i no r d e rt oi m p r o v et h er e l i a b i l i t yo fw e bs e r v i c e s ,aw e bs e r v i c e st e s t i n gm o d e la n d t e s t i n ga p p r o a c hb a s e d o nu m l 2 0a c t i v i t yd i a g r a ma n di j m l 2 0c o m m u n i c a t i o nd i a g r a m i sp r e s e n t e d t h ek e yi d e ao ft h ea p p r o a c hi st ot r a n s f o r mt h ew e bs e r v i c e sb u s i n e s s p r o c e s sa n do b j e c t si n t e r a c t i o nt ov i s u a l 【l y m m i et e s t i n gm o d e l t h ea p p r o a c he x t e n d s u m l 2 0a c t i v i t yd i a g r a mt od e s c r i b et h es y n t a xa n db e h a v i o r so fb p e l t h ef o r m a l s p e c i f i c a t i o na n dt h ed e f i n i t i o no ft e s tc o v e r a g ec r i t e r i ao fu m l 2 0a c t i v i t yd i a g r a ma i e p r o p o s e d i to n t r i c e st h er e s t r i c t i o no ft e s tc a s e sg e n e r a t i o nm e t h o da n dp r o m o t e st h e e f f i c i e n c ya n da c c u r a c yo ft e s t i n gb yr e d u c i n gt h ea m o u n to ft e s tc a s e sr e a s o n a b l y t h e a p p r o a c hd e s c r i b e st h eo b j e c t s i n t e r a c t i o np r o c e s so fw e bs e r v i c e sw i t hu m l 2 0 c o m m u n i c a t i o nd i a g r a m b yc o n s t r u c t i n gac o m m u n i c a t i o nt r e ea c c o r d i n gt ot h eu m l 2 0 c o m m u n i c a t i o nd i a g r a m ,t h ea p p r o a c hs e l e c t sa n dw a n s f o r m st h ep r e d i c a t e s w i t ht h e d e f i n i t i o no fu m l 2 0c o m m u n i c a t i o nd i a g r a mt e s tc o v e r a g ec r i t e r i a , t h et e s tc a s e sc a nb e g e n e r a t e du s i n gf u n c t i o nm i n i m i z a l i o nm e t h o d t oi l l u s t r a t et h i sm o l et h o r o u g h l y , t h i s p a p e rd i s c u s s e st h ef e a s i b i l i t yo ft h er e s e a r c hw i t h 趾e x a m p l eo fab o o j 商gs y s t e mb a s e d o n w e bs e r v i c e st e c h n o l o g y t h er e s e a r c ho f t h i sp a p e ra t t e m p t st oi m p r o v et h er e l i a b i l i t yo f w e bs e r v i c e sw i t ht h e m o d e l - b a s e dt e s t i n gt e c h n o l o g y w i t hw e bs e r v i c e st e s t i n gm o d e lb a s e d0 1 1u m l 2 0 a y n a m i ev i e w , t h er e s e a r c ho ft h i sp a p e rc a l l ln o to n l yr e d u c et h et e s t i n gc o s t , b u ta l s o i m p r o v et h ee f f i c i e n c ya n da u t o m a t i o no f t e s t i n gu s i n gf o r m a lm e t h o da n d t e s tc o v e r a g e n c r i t e r i a t h i sp r o m o t e st ou s eu m l 2 0f o rw e bs e r v i c e st e 她 k e yw o r d s :s o f t w a r et e s t i n g , w e bs e r v i c e s ,b p e l ,t e s t i n gm o d e l ,u m l 2 0a c t i v i t y d i a g r a m ,u m l 2 0c o m m u n i c a t i o nd i a g r a m m w r i t t e nb yz h a n gj u n s u p e r v i s e db yz h a n gg u a n g q u a n & d a iy e 苏州大学学位论文独创性声明及使用授权的声明 学位论文独创性声明 本人郑重声明:所提交的学位论文是本人在导师的指导下,独立进 行研究工作所取得的成果。除文中已经注明引用的内容外,本论文不含 其他个人或集体已经发表或撰写过的研究成果,也不含为获得苏州大学 或其它教育机构的学位证书而使用过的材料。对本文的研究作出重要贡 献的个人和集体,均已在文中以明确方式标明。本人承担本声明的法律 责任。 研究生始城莎叁日期:研究生签名:至垫兰! 忽日期: 学位论文使用授权声明 2 胡6 1 2 苏州大学、中国科学技术信息研究所、国家图书馆、清华大学论文 合作部、中国社科院文献信息情报中心有权保留本人所送交学位论文的 复印件和电子文档,可以采用影印、缩印或其他复制手段保存论文。本 人电子文档的内容和纸质论文的内容相一致。除在保密期内的保密论文 外,允许论文被查阅和借阅,可以公布( 包括刊登) 论文的全部或部分 内容。论文的公布( 包括刊登) 授权苏州大学学位办办理。 研究生签名: 导师签名: 日期:劲。1 ( 7 1 2 日期:0 16 n 基于u m l 2 0 动态视图的w e b 服务模型测试方法及其应用中文摘要 第一章绪论 随着软件规模的不断增大和开发复杂性的不断提高,如何提高软件质量已经成为 软件工程致力解决的关键性问题之一。软件测试是提高软件可靠性的最基本和最重要 的手段之一,也是当前工业界使用的主流技术。 1 1 研究背景与意义 随着软件系统的应用深入到各个行业领域,对软件质量的要求也在不断提高。但 因为软件开发过程中不可避免的人为错误,且前软件系统的质量和可靠性不尽如人 意。与此同时,随着软件规模的不断增大和软件复杂性的不断提高,软件中错误的影 响就更大,可能造成巨大经济损失,甚至危及人的生命安全。软件测试是保证软件的 质量和可靠性的一种重要方法,也是软件工程中的一个重要研究分支【l 】。, 软件测试的研究随着软件开发方法的变化而发展。传统的软件测试技术通常分为 静态测试和动态测试两类。静态测试是非执行的测试,主要通过人工进行的软件需求 分析评审、设计评审、代码审查、代码走查等手段,查找程序代码中可能存在的词题 或评估程序代码的质量等。静态测试能够发现软件中的错误,但也同时存在过于依赖 人的主观判断,测试充分性有限等缺点。动态测试是执行的测试,可以划分为基于规 约的测试( 又称黑盒测试或功能测试) 、基于程序的测试( 又称白盒测试或结构测试) 以及基于程序和规约相结合的测试。基于规约的测试从用户的视角进行测试,比较容 易理解和接受,但其测试用例不容易设计,测试的覆盖率也不是很理想;基于程序的 测试对程序代码的钡9 试比较彻底,但其代价昂贵,同时也不能验证软件规约的正确性; 基于程序和规约相结合的测试集成了两种澳 试方法的优点,但也存在测试周期长,代 价昂贵等缺点。 目前,随着u m l ( u n i f i e dm o d e l i n gl a n g u a g e 统一建模语言) 在软件开发过程 中的广泛应用,基于u m l 模型的软件测试已经成为软件测试研究领域的一个热点。 其原因在于u m l 已经成为事实上的建模语言标准,基于u m l 的测试模型能够丰富 地反映被测试系统的真实信息,容易被开发和测试人员理解,它的使用降低了软件测 试成本,提高了软件测试效率和自动化程度,改进了传统测试方法技术中的很多不足。 第一章绪论基于u m l 2 0 动态视图的w e b 服务模型测试方法及其应用 u m l 最新的规范版本是u m l 2 0 ,同以前的版本相比,u m l 2 0 做了很大的改进。 随着软件工程和网络技术发展,面向服务的体系结构( s o a ) 已成为基于w e b 的分布式系统的主要发展趋势。w e b 服务采用s o a 体系结构,继承了面向对象技术 的优点,引入了新的w e b 应用开发、部署和集成的模式。同时,w e b 服务建立在以 x m l 为主的、开放的w e b 规范技术基础上,因此具有比任何现有的面向对象技术更 好的开放性,是建立在可互操作的分布式应用程序的新平台。w e b 服务具有良好的开 放性、封装性、规范性和高度可集成性等几大优势。随着w e b 服务技术的广泛应用, 对基于w e b 服务技术的软件系统的质量也提出了更高的要求,w e b 服务测试技术的 研究目前也刚刚开始起步。 基于以上的分析,本文提出一种将基于u m l 2 0 模型的软件测试思想应用到w 曲 服务测试的方法,该方法能通过眦2 0 构建w e b 服务的业务流程测试模型和对象 交互澳4 试模型,在测试模型的基础上生成需要的测试用例。本文的研究在一定程度上 解决了构建一个容易被理解的w e b 服务测试模型问题,同时本文也研究了如何在测 试模型基础上能合理地减少测试用例的数量,更好的提高测试效率。 1 2 国内外研究现状 随着软件开发技术的发展和软件测试日益被重视,国内外很多专家和学者在软件 测试领域取得了很多研究成果。目前对软件测试的研究主要集中在如下几个方面: ( 1 ) w e b 应用测试。随着网络计算环境和相关技术的迅猛发展,i n t e r n e t 环境下的 w 曲应用软件得射了越来越多的关注。但因为w e b 应用具有分布式、动态性、多平台 等不同于传统软件的特性,针对w e b 系统的测试研究目前还处于起步阶段。当前w e b 应用测试的研究内容主要包括w e b 应用测试模型的研究,w e b 应用测试用例生成方法 的研究、w e b 应用的回归测试和基- 于a g e n t 的w e b 应用测试研究等。l i u 、k u n g 和h s i a 的研究提出一种w e b 应用测试模型,该模型包含对象模型和结构模型两部分,通过模 型中的测试路径进行数据流的测试。该研究是较早的w e b 应用测试模型的研究,借用 了很多传统软件测试技术的思想,但该研究对于软件测试充分性等问题没有很好解 决,并且澳4 试过程也较为繁琐阿。r i c c a 和t o n e l l a 的研究提出一种表示w e b 页面链接的 w e b 页面导航模型,以及一种表示w e b 页面控制执行结构的w j b 控制流模型。通过路 径覆盖准则和分支覆盖准则得到w 曲页面的测试用例,但该测试模型存在测试路径的 2 基于u m l 2 0 动态视图的w e b 服务模型测试方法及其应用 第一章绪论 不确定性和测试复杂性较高等缺点峨7 】。a n d r e w s 、o f f u t t 和a l e x a n d e r 的研究提出利用 有限状态机构建w e b 应用的测试模型,从有限状态机表示的w e b 页面的状态转换中得 到测试用例。但该方法构建的测试模型较为复杂,对于规模较大的w e b 应用系统并不 适用嘲。d il u c c a 、f a s o l i n o 和t r a m o n t a n a 的研究利用u m l 类图构建w e b 应用的测试模 型,将w e b j 直用中各种组成元素用i m 类图表示,但该测试模型只能表现w i b 应用的 静态方面,还不能很好的表示w b b 应用的总体测试信息【9 】。许蕾和徐宝文的研究对现 有的w e b 应用测试模型进行了改进,提出了一种新的w e b 应用测试模型。该模型包括 对象内部模型、交互关系模型和体系结构模型3 个层次,分别对应于测试内容的不同 范围和阶段,即单元测试、交互测试和集成测试【1 0 1 。路晓丽、葛玮和郝克刚的研究提 出了一种基于非确定p e t r i 网的w 曲应用测试模型,对w e b 应用软件中的链接进行形式 化描述,该测试模型主要应用于w e b 应用的链接测试和导航测试【1 1 l 。姜瑛、辛国茂和 单锦辉的研究基于随机法和合约变异相结合的技术,提出了一种测试数据自动生成方 法,但在测试数据选择的有效性上仍然有待改进【1 2 】。李诺、吴际和金茂忠等的研究提 出了一种w 曲应用测试模型w a n m 。该模型扩展了u m l ,定义了w e b 应用的导航测试 模型,该测试模型能清晰地描述测试执行轨迹并支持测试用例的半自动化生成1 1 3 j 。 ( 2 ) 软件构件的测试。软件构件和构件化软件是目前软件工程的热点研究领域。 软件构件具有良好的互操作性、可扩展性和重用性等优点,这同时也给软件构件测试 提出了很多新的问题。当前软件构件测试的研究内容主要包括基于扩展传统方法技术 的构件测试研究、基于构件接口信息的构件测试研究、构件内建式测试的研究和构件 的集成测试研究等。w u 、c h e n 和o f f u t t 的研究提出用构件交互图描述构件间的交互场 景,定义了从接口到数据依赖关系的五个层次的测试覆盖准则,但在处理大型复杂系 统时,会出现构件交互图规模过大的问慰1 4 1 。l i u 和d a s i e w i c z 的研究提出对u l 进行 形式化的扩展,将构件间交互用标记的转换系统表示的测试方法。该方法在事件流覆 盖准则的指导下,运用模型检测技术生成测试用例,简化了复杂事件序列的测试,同 时能处理同步问题,但仍然存在状态组合爆炸问题【1 5 1 。z h a n g 的研究提出一种基于移 动代理的w e b 服务构件测试方法。该方法的移动代理对象以操作剖面为参照,生成的 测试用例可以用于对远程w e b 服务站点进行测试,减少了调用远程服务的代价,增加 了测试的并行性【1 嗣。h u 、w o n g 和j i a n g 的研究提出一种软件构件自适应测试的的方法, 该方法基于最小二乘算法进行参数估计,能有效地提高软件构件的测试效犁”j 。 ( 3 ) 形式化方法在软件测试中的应用。形式化方法以逻辑,自动机和代数等数学 第一章绪论 基于u m l 2 0 动态视图的w e b 服务模型测试方法及其应用 理论为基础,能够精确地、无二义性地描述软件系统的行为性质,为软件测试的测试 用例自动化生成等过程提供了有效的理论基础。但形式化方法被应用到软件测试时, 要求测试人员有很好的形式化理论基础,这也增加了软件测试过程的复杂程度,目前 还需要进一步的研究工作来解决这个问题。赖祥伟、张为群和邱玉辉的研究提出一种 基于u m l 的软件测试模型,使用形式化描述语言r s l 来描述u m l 的语义并生成测试 用例。该模型一定程度上提高了测试的自动化程度,减少了测试成本,但仍然存在测 试过程较为复杂等问题【l 叼。兰毓华、毛法尧和曹化工等的研究提出一种通过z 语言表 示规约生成测试用例的方法,通过分析处理规约中的输入、输出变量的约束关系来生 成测试用例,测试用例的生成过程自动化程度较高,减少了测试人员的干预过程,该 方法的应用范围也较为广泛,可以应用到大型复杂软件系统的测试【1 9 1 。虞凡、覃征和 贾晓琳等的研究提出一种通过时序逻辑语言x 忱兜表示规约生成测试用例的方法。该 方法结合了时序逻辑语言x 独的优点,通过p r o l o g 进行推导求值得到测试用例的期 望输出刚。 ( 4 ) 测试甩例的约简。随着软件的复杂程度越来越高以及软件规模的不断增大, 在软件测试过程中生成的测试用例数量也急剧增大。为了提高软件测试的效率,需要 研究有效的测试用例生成算法和测试用例的优化组合算法,在保证软件测试充分性的 同时,合理地生成规模较小,满足测试需求的测试用例集。聂长海和徐宝文的研究分 析了已有的测试用例集约简方法的缺点和不足,提出了一种新的测试用例集约简方 法。该方法分析了测试目标中各个测试需求之间的相互关系,将满足测试需求的所有 可用测试用例进行划分,利用贪心算法等方法生成约简后的测试用例集,对比已有算 法有了较大的改进【2 l l 。史亮、聂长海和徐宝文的研究提出了基于解空间树模型的两两 组合测试用例集生成算法。该算法综合了代数方法和启发式算法的优点,有效地提高 测试的覆盖率并减少测试数据的数量阎。 1 3 本文主要研究内容 本文的研究是将基于u m l 2 0 模型的软件测试技术应用到w e b 服务测试技术的 一个尝试。主要研究内容是:研究如何构建一个基于u m l 2 0 动态视图的w e b 服务 测试模型,以满足w e b 服务软件系统测试工作的需要。该测试模型主要包括两个部 分,一个是基于u m l 2 0 活动图的w e b 服务业务流程模型,另一个是基于u m l 2 0 4 基于u m l 2 0 动态视图的w e b 服务模型测试方法及其应用 第一章绪论 通信图的w e b 服务对象交互模型。在实际的测试过程中,通过结合形式化方法和定 义基于u m l 2 0 活动图和通信图的测试覆盖准则来合理减少测试用例数量,提高w e b 服务测试效率。 本文主要工作包括以下几个方面: 、 1 ) 总结了w e b 服务测试和基于模型的软件测试的研究现状以及目前存在的问题, 分析了将基于模型的软件测试技术应用到w e b 服务测试的可行性和必要性。 2 ) 展开了应用u m l 2 0 进行w e b 服务测试的研究,根据u m l 2 。0 动态视图可以 很好描述w e b 服务软件系统的逻辑和动态行为的特征,提出了基于切讧l 2 0 动 态视图的w e b 服务测试模型;并且在分析了u m l 2 o 活动图和通信图优点的基 础上,确定在测试模型中使用u m l 2 0 活动图和通信图作为测试资源。 3 ) 研究如何利用u m l 2 0 活动图来构建w e b 服务业务流程的测试模型。提出 u m l 2 0 活动图与业务流程执行语言b p e l 的映射关系,并利用该映射关系构建 w e b 服务业务流程的测试模型。通过结合形式化方法和定义u m l 2 0 活动图测试 覆盖准则,利甩深度优先搜索算法遍历u m l 2 0 活动图,在保证测试覆盖率和测 试效率的前提下,有效地生成测试用例。 4 ) 研究如何利用u m l 2 0 通信图来构建w e b 服务对象交互的测试模型。提出 u m l 2 0 通信图转化成通信树来实现测试的方法。通过后序遍历通信树对断言进 行选择,对断言进行转换,结合所定义的u m l 2 0 通信图测试覆盖准则,利用求 解函数最小值的方法得到澳0 试用例。 1 4 本文组织结构 本文以下各章内容组织如下: 第二章介绍w e b 服务测试的发展及相应的测试层次,基于模型测试的测试过程、 典型的测试模型并分析基于模型的w e b 服务测试方法的可行性和必要性。 第三章首先介绍通过扩展u m l 2 0 活动图,建立u m l 2 0 活动图与w e b 服务业 务流程执行语言b p e l 的映射关系,构建w e b 服务业务流程测试模型的方法;然后 介绍了通过u h l 2 0 通信图构建w e b 服务对象交互测试模型的方法。 第四章首先介绍通过定义u m l 2 0 活动图的形式化语义和u m l 2 0 活动图测试覆 盖准则,利用深度优先搜索算法遍历基于u m l 2 0 活动图的w e b 服务业务流程测试 5 第一章绪论基于u m l 2 0 动态视图的w e b 服务模型测试方法及其应用 模型,得到测试用例的方法;然后介绍了通过将基于u m l 2 0 通信图的w e b 服务对 象交互测试模型转化成为通信树,后序遍历通信树对断言进行选择和转换,结合所定 义u m l 2 0 通信图测试覆盖准则,利用求解函数最小值的方法生成测试用例。 第五章结合实例具体说明本文所研究的方法的实际可行性。 第六章对比国内外目前在w e b 服务测试领域与本文相关的研究工作。 第七章总结全文,并展望下一步的研究工作。 6 基于u m l 2 0 动态视图的w e b 服务模型测试方法及其应用 第二章基于模型的w e b 服务测试方法 第二章基于模型的w e b 服务测试方法 2 1w e b 服务测试概述 w e b 服务作为一种新的w e b 应用模式,是一种新的分布式计算模型。w e b 服务 具有面向对象技术的优点,同时它还建立在以x m l 为主的、开放的w e b 规范技术上。 因此具有比任何现有的面向对象技术更好的开放性。w e b 服务规范定义了应用程序如 何在w e b 上实现互操作性,这使得用户可以用任何语言,在任何平台上编写所需要 的w e b 服务。w 曲服务具有以下特征: ( 1 ) 良好的封装性。w e b 服务具有面向对象的良好封装性的优点,对于使用者 而言,仅能看到该对象提供的功能列表。 ( 2 ) 松散耦合。当一个w e b 服务的内部实现发生变更的时候,调用者是不会感 觉到的。对于调用者来说,只要w e b 服务的调用接口不变,w e b 服务实现的任何变 更对他们来说都是透明的。 ( 3 ) 标准协议规范。w e b 服务的规范完全使用开放的标准协议进行描述。 ( 4 ) 高度可集成性。由于w e b 服务采取简单的、易理解的标准协议作为组件界 面描述,所以完全屏蔽了不i 鼋改件平台的差异,无论是c o r b a 、d c o m 还是e j b 都可以通过这种标准协议进行互操作,实现了在当前环境下高度的可集成性 2 3 1 。 w e b 服务自身的特点也对传统的软件测试方法理论和技术提出了新的挑战。在 w e b 服务的模式下,用户可以任意的提交、注册或请求w e b 服务,与之相适应,w e b 服务的测试也需要由集中式变为分布式,并能动态的适应各种环境,对w e b 服务构 件进行测试和回归测试。 2 1 1w e b 服务测试的发展 w e b 服务测试技术的发展可分为以下三个阶段 2 4 1 : ( 1 ) 关注内部测试的阶段。该阶段的测试内容主要集中在企业使用w e b 服务通 过防火墙和外部可靠伙伴间的通信上,包括s o a p 消息的测试、w s d l 文件的测试 等。该阶段主要通过使用s o a p 消息和w s d l 文件产生测试计划,模拟w e b 服务提 7 第二章基于模型的w e b 服务测试方法 基于u m l 2 0 动态视图的w e b 服务模型测试方法及其应用 供者和使用者进行测试。 ( 2 ) 测试面向服务的体系结构的阶段。该阶段主要测试s o a 的发布、绑定和查 找三个重要角色的功能,以及w e b 服务间的异步通信能力和服务质量问题。 ( 3 ) 测试动态运行时间能力。重点关注w e b 服务集成的总体测试和w e b 服务的 版本测试。 w e b 服务测试技术的研究目前主要集中在第三个阶段,研究内容主要包括: ( 1 ) 因为w e b 服务技术具有分布式的特点,需要研究如何构建w e b 服务测试过 程模型,以便在分布式的环境下,有效地、系统地组织各个相对独立的测试环节。 ( 2 ) 因为w e b 服务技术的开放性是建立在一系列协议的基础上,需要研究如何 验证协议及各层x m l 描述的正确性、完整性和一致性。 ( 3 ) 因为w e b 服务的用户数量大,需要研究如何对w e b 服务用户使用模式进行 捕捉、分析和预测,这是w e b 服务测试模拟的基础。特别是对于性能测试,需要模 拟典型的用户行为,高峰期的用户数、数据量和并发链接数。 ( 4 ) 因为w e b 服务的测试需要较强的及时性,需要研究如何利用测试自动化技 术对w e b 服务进行测试,进一步研究w e b 服务测试用例自动生成技术、远程测试的 执行、分布式环境下测试的调度和规划、测试结果的及时分析和度量。同时也需要研 究相关c a s e 工具的研发,以便更好的支持w e b 服务测试的管理、自动化、调度和 监控,从而提高测试的效率。 2 1 2w e b 服务测试的层次 根据w e b 服务的架构,w e b 服务测试可以分为三个层次:基础设施测试、独立 的w e b 服务测试以及w e b 服务集成测试。同时,测试的组织和管理是w e b 服务测试 的三个层次都需要解决的问题,对测试的系统性、有效性至关重要。 ( 1 ) w 曲服务基础设施测试 虽然高度可集成性和开放性是w e b 服务的主要宗旨,但与传统的应用系统相比 较,w e b 服务系统的稳定性和可靠性相对较差。一方面,是由于w e b 服务的整个技 术架构还尚未成为成熟的产业标准,标准规范还处于不断的发展和完善中,不同的标 准之间的概念模型和体系可能互不兼容,并进一步导致相关应用程序不兼容。另一方 面,w e b 服务规范体系采用x m l 作为基本的描述语言,由于x m l 语言简单、灵活、 可伸缩、易定制,基于x m l 数据描述和x m ls c h e m a 数据建模定义的w e b 服务的 s 基于u m l 2 0 动态视图的w e b 服务模型测试方法及其应用 第二章基于模型的w e b 服务测试方法 协议具有标准化和开放性的特点。但因为x m l 通用性和灵活性较好,也给协议的可 证明性提出了新的挑战。当w e b 服务应用于高可信性或实时要求较高的应用中时, 需要更严格的验证和测试方法。例如,s o a pr p c 是w e b 服务的基础和核心协议, 由于编码格式的不同,s o a pr p c 与传统的d c er p c 和o n cr p c 采用了完全不同 的消息处理机制。s o a p 还处于完善过程中,对于s o a p 协议本身的验证还有待于进 一步加强。 ( 2 ) 独立的w e b 服务测试 w e b 服务首先作为独立的功能结点发布,再通过工作流定义和解析动态集成为完 整的业务流程。独立的w e b 服务测试是从以下三个方面保证各服务结点的质量: 1 ) 服务的实现应该在功能、性能等各个方面与发布的服务描述相一致。为验证 服务描述与发布的一致性,除服务发布者外,服务中介及用户都应能在一定的安 全约束下,远程测试该服务。 2 ) 由于服务的开放性,对于每个服务请求,可能存在多个满足需求的服务描述。 服务中介应能根据一定的度量和评价标准,对多个服务进行测试、比较和评估, 并依照需求的满足程度进行排序。 3 ) 在服务实现的演化过程中,还应该采用合理的方法对服务的不同版本进行跟 踪并进行相应的回归测试。 ( 3 ) 集成的w e b 服务测试 通过对w e b 服务流的解析,w e b 服务可以动态地集成。w e b 服务集成的描述、 解释和执行将是w e b 服务区别于其他分布式计算的一个主要特征。w e b 服务业务流 程执行语言( b u s i n e s sp r o c e s se x e c u t i o nl a n g u a g ef o rw e bs e r v i c e s ,简称b p e l ) 是 目前最为重要的w e b 服务流语言之一,它的作用是将一组现有的服务整合起来,从 而定义一个新的w e b 服务。集成的w e b 服务测试就是在服务流描述执行前,通过服 务流的验证或澳4 试,确认w e b 服务描述能够正确的描述业务流程需求,能够由服务 中介正确地进行解析,并能由所有的服务结点正确的执行。 ( 4 ) w e b 服务测试组织和管理 传统的应用软件开发过程中,软件测试过程和资产通常为集中管理和监控的模 式。在传统的测试流程中,软件测试人员根据系统特征点,设计测试用例和测试场景。 测试工程师执行测试,捕捉测试结果,报告缺陷并跟踪缺陷的修复过程。对于修复过 缺陷的系统,还要通过回归测试来确认缺陷已经被正确地更改,并且系统没有引进新 9 第二章基于模型的w e b 服务测试方法基于u m l 2 0 动态视图的w e b 服务模型测试方法及其应用 的缺陷。w e b 服务的分布式特征使这一过程变得更为复杂。服务提供者、中介和用户 三方需要在一个分布合作的环境下,共同建立和维护测试方案、测试结果以及缺陷的 修复过程。为了提高测试的效率,测试及回归测试都必须通过自动化的测试引擎,通 过互联网远程调度、执行。为模拟用户的实际应用环境和场景,需要在一个分布式的 环境下统一调度多个测试引擎。不同的测试方案、测试引擎和测试运行的结果需要能 够进行综合和分析,并给出最终的评价结果。 2 2 基于模型的测试方法分析 模型化的方法被广泛应用于工程领域,模型是系统功能的形式化或半形式化的表 示,模型必须支持状态组合的系统枚举。软件模型是对软件行为和软件结构的抽象描 述,可以用于生成软件测试用例和进行测试失效辨识,从而有效提高测试效率,并有 利于测试结果评价。 软件行为可以用系统输入序列、活动、条件、输出逻辑或者数据流进行描述。 随着面向对象软件开发技术、模型驱动的软件开发技术以及软件测试自动化技术的发 展,基于模型的软件测试研究逐渐得到学术界和工业界的重视,并且得到了一定程度 的应用。基于模型的软件测试思想来自于硬件测试,它被广泛的应用到电信交换系统 的测试中,当被应用到软件测试时,其过程是首先构建被测试软件的模型及其派生模 型( 一般称作测试模型) ,然后从模型中生成需要的测试用例,得到测试结果。当前 软件规模庞大也使基于程序的钡i 试十分困难,如果不使用模型这样的抽象方法,有效 的软件测试往往是不可能达到的。使用基于模型的软件测试方法还可以提高测试例生 成的自动化程度,进行测试失效辨识,也有利于评价测试结果。 针对软件测试任务,通过对软件功能和结构进行抽象并用易于理解的方式进行描 述,获得的测试模型就是对被测试软件系统精确的描述,而测试用例的选择问题可以 看作是从庞大的状态组合中,寻找可以发现错误的状态组合。基于模型的软件测试可 以根据软件行为模型和结构模型生成测试用例。 基于模型的软件测试还需要在以下几个方面进行深入的研究: ( 1 ) 对软件测试模型本身的研究。一方面研究针对不同类型软件开发专用模型, 另一方面也要对专用模型进行抽象获取通用模型。 ( 2 ) 测试充分性研究。当前基于状态机模型的测试充分性准则一般有输入覆盖、 基于u m l 2 0 动态视图的w e b 服务模型测试方法及其应用 第二章基于模型的w e b 服务测试方法 状态覆盖、迁移覆盖,但是这些测试充分性准则在基于模型软件测试中的有效性和效 率还有待于进一步深入研究。 c 3 ) 测试失效辨识和钡9 试自动化研究。测试失效辨识和测试自动化是密不可分 一的结合体。一方面失效辨识是测试自动化不可缺少的内容;另一方面,自动化以使得 测试失效辨识更加困难。 2 2 1 基于模型的软件测试过程 随着软件开发和软件测试相关技术的研究和发展,一个明显的发展趋势是测试 与开发过程的集成。尽早开始测试活动,减少中间环节成为软件测试的一个重要原则。 基于模型的软件测试过程是基于软件开发过程中分析、设计的模型,从不同开发阶段 。的分析、设计模型中提取信息用于生成不同测试阶段的测试用例。基于模型的软件测 试过程具体分为以下几个阶段: 。( 1 ) 分析理解被测试软件 软件测试要求充分理解被测试软件。基于模型的软件测试过程中,需求规范和 设计文档是构建测试模型的基础。这个阶段的具体工作包括: 1 ) 充分了解被测试软件的需求规范和设计文档等。在完整的软件系统中i 主要 的错误源往往是从需求规范阶段出现的,而在设计阶段所选定的数据结构和算法对开 发工作又有指导性的作用,因此只有对被测试软件系统的需求规范和设计有很好的了 解,才能更好地构建测试模型。 2 ) 识别软件系统的用户行为,分析每个用户可能的输入序列及其属性,如输入 动作的发生时刻、输入处理顺序等。同时研究每项输入的可能取值范围。输入序列的 取值范围一般包括合法值、边界值、非法值等。根据输入的取值和软件的规格说明预 期输出的取值,从而得到测试用例对应的测试数据。 3 ) 记录输入发生条件和响应发生条件。软件系统的响应是指用户能够得到的输 出或可见的软件内部状态的改变。其目的是设计可以引发特定响应的测试用例和评价 测试结果。 c 2 ) 选择合适的测试模型 模型是基于模型的软件测试的决定性的元素,不同的模型适用于不同类型软件 的测试,一个好的测试模型可以充分表示被钡4 试软件系统的信息,因此需要根据软件 第二章基于模型的w e b 服务测试方法基于u m l 2 0 动态视图的w e b 服务模型测试方法及其应用 特点选择模型。s o m e r v i l l e 和s a w y e r 的研究讨论了模型选择标准【蚓: 1 ) 根据模型特征进行选择:针对不同软件系统的测试,要使用不同的测试模型。 只有充分理解模型和软件系统,才能选择合适的模型对软件进行测试,例如,电话交 换系统多使用状态模型;并发软件系统中不同组件并发运行用状态图建模。在选择测 试模型时,还要从不同的角度和不同的抽象层次选择测试模型。模型的选择还依赖于 软件系统的工作特点,例如,测试长期运行软件系统可以使用状态机模型,原因是状 态机模型有助于发现行为对软件系统内部的影响。 3 ) 人员、组织和工具对测试模型选择的影响:基于模型的软件测试对测试人员 的知识结构和技术水平提出了一定要求,需要测试人员熟悉基本的建模技术。如果一 个开发组织使用模型完成需求分析和系统设计,基于模型的软件测试就比较容易。这 是因为根据需求分析和系统设计的模型进行测试,往往可以j 直接应用基于模型的软件 测试技术,还可以根据测试的进展不断调整模型的细节,这也有利于在软件开发过程 早期进行测试规划。另外还要根据开发组织使用的测试工具选择特定的模型,不同的 测试模型有不同的测试工具支持。 ( 3 ) 构建测试模型 构建测试模型是基于模型的软件测试过程中最重要的一个阶段,这个阶段所构建 的测试模型直接决定了测试的效果。在构建软件测试模型时,一般要遵循下列原则: 1 ) 对于选定的测试模型,需要确定该模型描述系统的哪个抽象层次以及模型中 包含被测试系统的哪些信息,尽量在模型中避免出现无关的或冗余的信息,同时还要 确定被测试信息之间的依赖关系,对模型添加需要的约束。 2 ) 对于规模较大和较为复杂的软件系统,要在尽量保证不丢失系统必要的细节 信息的同时,在较高的抽象层次上来构建测试模型。同时还要确定无法在更高的抽象 层次上表达这些信息。 ( 4 ) 生成测试用例 测试用例是软件测试技术的核心部分,也是软件测试过程的难点所在。对于基于 模型的软件测试,构建测试模型的目的是生成需要的测试用例,测试用例的自动生成 也依赖于所使用的测试模型。在生成测试用例的过程中,需要使用基于路径的测试用 例生成、基于状态的测试用例生成等方法,同时还要满足相应的测试覆盖准则,在尽 可能满足较高的测试覆盖率的情况下,生成较少的测试用例数量。在得到全部的测试 用例后,还要考虑使用一些测试用例的优化组合方法,合理地缩小测试用例集的规模。 基于u m l 2 0 动态视图的w e b 服务模型蔫试方法及其应用 第二章基于模型的w e b 服务测试方法 ( 5 ) 执行测试用例 生成了满足特定的测试充分性准则的测试用例集合后,就可以执行测试用例。执 行测试是执行所有的或选定的一些测试用例,并观察其结果的一种过程。执行测试用 例这个阶段的具体工作包括:确定执行测试用例的测试人员;确定测试用例的逻辑执 行顺序;记录每个测试用例的执行结果。 ( 6 ) 收集测试用例执行结果进行分析 测试用例的执行结果是对软件系统质量评估的基本依据,但基于模型的软件测试 方法并没有解决失效辨识问题,仍然需要人工检查输出是否正确。通过状态

温馨提示

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

最新文档

评论

0/150

提交评论