(计算机软件与理论专业论文)基于扩展mm路径的组件服务器端程序的测试.pdf_第1页
(计算机软件与理论专业论文)基于扩展mm路径的组件服务器端程序的测试.pdf_第2页
(计算机软件与理论专业论文)基于扩展mm路径的组件服务器端程序的测试.pdf_第3页
(计算机软件与理论专业论文)基于扩展mm路径的组件服务器端程序的测试.pdf_第4页
(计算机软件与理论专业论文)基于扩展mm路径的组件服务器端程序的测试.pdf_第5页
已阅读5页,还剩44页未读 继续免费阅读

下载本文档

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

文档简介

a ne x t e n d e dm m r 气t ha p p r o a c h t o c o m p o n e n t b a s e ds e r v e rp r o g r a m t e s t 烈g at h e s i ss u b m i t t e dt o s o u t h e a s tu n i v e r s i t y f o rt h ea c a d e m i cd e g r e eo fm a s t e ro fe n g i n e e r i n g b y g u j i n g x i a n s u p e r v i s e db y p r o f x ub a o w e n s c h o o lo fc o m p u t e rs c i e n c ea n de n g i n e e r i n g s o u t h e a s tu n i v e r s i t y f e b r u a r y2 0 1 0 东南大学学位论文独创性声明 本人声明所呈交的学位论文是我个人在导师指导下进行的研究工作及取得 的研究成果。尽我所知,除了文中特别加以标注和致谢的地方外,论文中不包含 其他人已经发表或撰写过的研究成果,也不包含为获得东南大学或其它教育机构 的学位或证书而使用过的材料。与我一同工作的同志对本研究所做的任何贡献均 已在论文中作了明确的说明并表示了谢意。 研究生签名:趱胡 e l 期:塑丝蚴 东南大学学位论文使用授权声明 东南大学、中国科学技术信息研究所、国家图书馆有权保留本人所送交学位 论文的复印件和电子文档,可以采用影印、缩印或其他复制手段保存论文。本人 电子文档的内容和纸质论文的内容相一致。除在保密期内的保密论文外,允许论 文被查阅和借阅,可以公布( 包括刊登) 论文的全部或部分内容。论文的公布( 包 括刊登) 授权东南大学研究生院办理。 期: 题 硕 导 学 术 层 出 具体的技术有基于流图的结构性测试法、基于自动机、状态图或u m l 的功能性测试法、基于 用户s e s s i o n 的狄盒测试法、基于r 志分析的性能测试方法等。但针对多层体系结构的w e b 应 用进行测试的方法和技术并不多见。 论文从结构性测试的角度,研究服务器端为三层体系结构的w e b 应用,提出了基于扩展 m m 一路径的w e b 应用测试方法。该方法自动分析服务器程序的控制流信息和交互信息,并根 据各种覆盖率准则生成测试路径。具体描述如下: 首先深入分析了现有w e b 应用测试的方法和技术,总结了多层体系结构w e b 应用的优缺 点及测试困难。 其次分析了服务器端程序中组件内部的控制流关系和组件之间的调用依赖关系,构建相应 的模型。基于这些模型,提出了扩展m m 路径测试方法,辅助服务器端程序进行结构性测试。 然后定义了四种覆盖率准则,分析各准则的利弊并证明它们之间的包含关系。针对其中两 种准则,通过测试需求的约简方法获得基于不同覆盖率准则的测试路径集合,在满足覆盖率准 则的同时减少了测试用例的规模,提高测试效率。 最后通过实验证明了扩展m m 路径测试方法对服务器端程序进行结构性测试的真实有效 性。服务器端程序结构性测试工具c w a t 实现了上述所有工作,提供了从建模到测试路径生成 再到结果分析的完整解决方案。 关键词:w e b 应用服务器端程序测试模型测试路径覆盖率准则测试需求约简 英文摘要 a b s t r a c t t i t l e :a ne x t e n d e dm m - p a t ha p p r o a c ht oc o m p o n e n t - b a s e ds e r v e rp r o g r a mt e s t i n g n a m e :g uj i n g - x i a n s u p e r v i s o r :p r o f x ub a o w e n s c h o o l :s o u t h e a s tu n i v e r s i t y w e ba p p l i c a t i o ni sa c c e s s e dv i aw e bb r o w s e ra n db a s e do nn e t w o r k w i t ht h er a p i dg r o w t ho f u s e r s n u m b e ra n dr e q u i r e m e n t s ,a n dt h ec h a n g e so fd e v e l o p m e n tt e c h n i q u e s ,s i z ea n dn u m b e ro f w e ba p p l i c a t i o n sb e c o m el a r g e r r e s e a r c h e sh a v ep r o p o s e dam e t h o dt od e v e l o pw e b a p p l i c a t i o n s b a s e do nm u l t i t i e ra r c h i t e c t u r et h a tc a ns a t i s f i e se v e r - c h a n g i n gn e e d so fu s e r sa n dc o m p l i c a t e d f u n c t i o n so fw e ba p p l i c a t i o n s t h i sm e t h o ds i m p l i f i e s d e v e l o p m e n tp r o c e s sa n d a s s u r e st h e r e u s a b i l i t yo fw 曲a p p l i c a t i o n s a sa ni m p o r t a n tw a yt oe n s u r et h eq u a l i t yo fw e b a p p l i c a t i o n s w 曲a p p l i c a t i o nt e s t i n gh a s b e e nd r a w i n gm o r ea n dm o r ea t t e n t i o n s r e s e a r c h e r sh a v ep r o p o s e dm a n ya p p r o a c h e sa n d t e c h n i q u e s ,w h i c hm a i n l yf o c u so nf u n c t i o nt e s t i n ga n dp e r f o r m a n c et e s t i n g t h e s ea p p r o a c h e sa n d t e c h n i q u e sa r es t r u c t u r et e s t i n gb a s e do nf l o wg r a p h ,f u n c t i o nt e s t i n gb a s e do na u t o m a t a ,s t a t e c h a r t o ru m l ,g r a y - b o xt e s t i n gb a s e do nu s e rs e s s i o n ,a n dp e r f o r m a n c et e s t i n gb a s e do nu s e rs e s s i o na n d s oo n h o w e v e r , f e wo ft h e mh a v ec o n s i d e r e dt e s t i n gw e b a p p l i c a t i o nw i t hm u l t i t i e ra r c h i t e c t u r e f r o mt h ev i e wo fw h i t e - b o xt e s t i n g ,a l le x t e n d e dm m p a t ha p p r o a c hi sp r o p o s e di no u rp a p e r , s oa st oa n a l y z ec o n t r o lf l o w sa n di n t e r a c t i v ei n f o r m a t i o ni ns e r v e rp r o g r a mo f 黝a p p l i c a t i o n w i t ht h r e e t i e ra r c h i t e c t u r ea u t o m a t i c a l l y , a n dt og e n e r a t et e s t i n gp a t h sb a s e do nd i f f e r e n tc o v e r a g e c r i t e r i a : f i r s t l y , t h ee x i s t i n gw e ba p p l i c a t i o nt e s t i n gm e t h o d sa n dt e c h n o l o g i e sa r ea n a l y z e dt h o r o u g h l y 1 h ea d v a n t a g e sa n dd i s a d v a n t a g e so fw 曲a p p l i c a t i o nw i t hm u l t i - t i e ra r c h i t e c t u r e sa n di t st e s t i n g d i f f i c u l t i e sa r ea l s os u m m a r i z e d s e c o n d l y ,c o n t r o lf l o w si ne a c hc o m p o n e n ta n dc a l lr e l a t i o n sb e t w e e nc o m p o n e n t sa r e a n a l y z e d ,s oa st oc o n s t r u c te x t e n d e dc o n t r o lf l o wm o d e l sa n dm e s s a g ec a l lm o d e l so fs e r v e r p r o g r a m b a s e do nt h e s em o d e l s ,a ne x t e n d e dm m p a t ht e s t i n ga p p r o a c hi sp r o p o s e dt oh e l pt od o s t r u c t u r et e s t i n go ns e r v e rp r o g r a m t h i r d l y , f o u rc o v e r a g ec r i t e r i aa r ed e f i n e da n dt h e i ra d v a n t a g e sa n dd i s a d v a n t a g e sa r ea n a l y z e d s u b s u m p t i o nr e l a t i o n sa m o n gt h e ma r ep r o v e dt om e a s u r es t r u c t u r et e s i n go fs e r v e rp r o g r a m e f f e c t i v e l y b a s e do nd i f f e r e n tc o v e r a g ec r i t e r i o n ,t e s tc a s e sa r eg e n e r a t e db yt e s tr e q u i r e m e n t s r e d u c t i o nm e t h o d ,w h i c hc a ns a t i s f yc o v e r a g ec r i t e r i o n ,r e d u c et e s tg a s e sa n di m p r o v et h e e f f e c t i v e n e s so f t e s t i n g l a s t l y , t h ee x p e r i m e n t a lr e s u l t si n d i c a t e t h ep r o p o s e da p p r o a c h sg u a r a n t e e st h er e a l i t ya n d v a l i d i t yo fs e r v e rp r o g r a ms t r u c t u r et e s t i n ga n dt h ea c c u r a c yo fs u b s u m p t i o nr e l a t i o n sa m o n g c o v e r a g ec r i t e r i a c w a ti si m p l e m e n t e da sat o o lt or e a l i z et h ea b o v e dw o r k ,w h i c hp r o v i d e sa s o l u t i o nf r o mm o d e l i n gt ot e s tc a s e sg e n e r a t i o n ,a n dt h e nt or e s u l t sa n a l y s i s k e y w o r d s :w e ba p p l i c a t i o n ,s e r v e rp r o g r a m , t e s t i n gm o d e l ,t e s t i n gp a t h , c o v e r a g ec r i t e r i a , t e s t r e q u i r e m e n tr e d u c t i o n i i 4 2 工具的设计与实现2 2 4 2 1 开发环境2 2 4 2 2 主要功能模块2 2 4 2 3 主要数据结构2 4 4 2 4 主要界面及操作流程2 6 第五章实例分析2 8 5 1 场景描述2 8 5 2 建模及扩展m m 路径的生成2 9 5 2 1 建模2 9 5 - 2 2 扩展m m 路径的生成3l 5 3 测试需求集合的约简3 2 5 3 1 基于覆盖率准则的测试需求集合3 2 5 3 2 基于覆盖率准则的测试需求约简3 3 i i i i v 组成。客户层实现人机交互,通常被称为“瘦客户层 ,由客户端的一个通用浏览器实现;而 w e b 服务器层和数据服务器层处于服务器端,提供更复杂的功能。w e b 服务器层可以实现业务 逻辑和数据访问的职能,是三层体系结构中最重要的一层;数据服务层则提供数据信息的服务, 如数据库服务、文件服务等【2 1 。b s 模式具有高安全性、易维护、快速响应和扩展灵活的特性, 在缩短w e b 应用开发周期的同时,能够提高w 曲应用的可靠性、安全性和可复用性。 w e b 应用中的w e b 服务器层主要由w e b 页面组成,在三层体系结构的w e b 应用中位于中 间位置,起着桥梁纽带作用。当用户通过客户端发送h t t p 请求时,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 曲服务器层划分成若干逻辑子层,从而形成了w 曲应用的多层体系结构。由此, w e b 服务器层不只是包含w e b 页面,而是由w e b 页面和逻辑处理组件等多种元素组成。多层 体系结构通常用于企业级w e b 应用的开发,需要专门的软件架构人员根据系统的需求和部署配 置要求进行设计。它可以显著提高w e b 应用的可移植性、安全性、可伸缩性、负载平衡和重用 性等。 由于多层体系结构和i n t e r n e t 环境本身的自治性、不确定性等因素,w e b 应用呈现出分布 式、动态性、多平台、交互性、异构性等特点,部署和维护过程比传统软件更加困难。同时, 由于w e b 应用的开发周期较短、使用的技术广泛、用户需求变化频繁,w e b 应用的部署和维 护难度进一步加剧,如何保证w e b 应用的质量成了人们关注的问题。目前,国内外已经对具有 b s 模式的w e b 应用测试做了一些功能性测试和非功能性测试研究,取得了一定的研究成果。 东南人学顾i j 学位论文 1 2 研究现状 1 2 1w e b 应用测试概述 w e b 应用是具有b s 模式的分布式系统,通常被构建成三层体系结构,即由客户端、w e b 服务器端和数据服务器端三部分组成,如图1 1 所示。客户端位于用户的本地计算机,通常由 一个通用浏览器实现。通过客户端,用户可以访问w e b 应用获取所需功能和信息;w e b 服务 器端和数据服务器端则位于远程服务器上,用于接受用户的h 丁r p 请求、处理相关业务和返回 结果给客户端。w e b 服务器端由大量w e b 页面和逻辑组件组成,数据服务器端则扮演数据仓 库的角色,存放各种数据库文件、普通文件、x m l 文档等。b s 模式下的三层架构使w e b 应 用具有与传统软件不同的许多特点【3 】:开发w e b 应用程序所需技术范围广更新快,不同页面和 逻辑组件可使用不同的编程语言和模型实现;分布在全球各地的大量用户可以同时访问同一个 w e b 应用;w e b 应用的执行结果因不同用户的输入和服务器状态而变化;w e b 应用程序执行环 境的复杂,包括不同的硬件、网络、操作系统、w e b 服务器和w e b 浏览器等。 通 客户端 服务器端 图1 1w e b 应刚的三层体系结构 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 e b 应用的结构,从而为测试工作奠定基础。早期的w e b 应用被构建成一个完整的元 模型以便对其进行测试【4 , s l ,但随着w e b 应用规模的增大和功能的复杂,构建一个w e b 应用模 型已不能满足测试的需要,人们开始利用“分而治之”的思想划分w e b 应用,在不同的层次上 进行建模。文献 6 首先提出将w e b 应用划分为导航层和控制流层两个层次,然后使用白盒测 试策略构建两层测试模型并生成测试用例。之后w e b 应用的测试模型分化成结构模型和行为模 型两种类型。结构模型描述了w e b 应用的控制流信息、数据流信息以及导航关系信剧h l 卜1 7 j ; 行为模型描述了w e b 应用的主要功能,可以通过决策表、状态自动机、u m l 模型、基于事件 的依赖关系图等多种方式实现w e b 应用的测试【1 0 , 1 5 , 1 8 - 2 1 】。 测试策略帮助测试人员从不同的角度进行软件测试。w e b 应用测试也存在测试策略的选择 问题,白盒测试、黑盒测试和灰盒测试是w e b 应用测试的主要策略。和传统软件测试一样,自 盒测试策略【1 1 - 1 7 依赖于分析源代码以设计测试用例,可以通过构建控制流图或数据流图等方式 进行测试。黑盒测试策略【1 8 - 2 1 1 则根据规格说明设计测试用例,可以通过状态图、决策表、自动 机等多种手段测试w e b 应用的功能。灰盒测试【2 2 - 2 6 1 是w 曲应用特有的测试策略,由于它将高 层次的设计、环境和交互条件考虑在内,所以很适用于w e b 应用测试【2 7 】。灰盒测试方法结合 2 第一蕈绪论 了黑盒测试方法和白盒测试方法,通过收集一系列用户s e s s i o n 数据测试w e b 应用程序的行为, 并根据内部组件如页面、链接考察w e b 应用的覆盖率情况。 覆盖准则是评估测试完备性的重要手段,它定义了一组规则,以表示测试人员设计和选用 的测试用例必须满足的测试需求。例如,语句覆盖的含义是:测试人员设计和选择的测试用例 必须满足程序代码的每一条语句至少被覆盖一次的测试需求。目前,针对w e b 应用测试的覆盖 率准则主要有:第一类是基于程序代码的静态覆盖率准则。例如,文献 4 基于扩展的u m l 模 型提出了a l l - p a t h 准则、d e f u s e 准则和a l l - u s e 准则。不过该模型仅针对静态的w e b 应用建模, 并未考虑服务器端的动态页面。第二类是基于导航链接的覆盖率准则。文献 4 ,1 5 基于扩展u m l 模型而提出的h y p e r l i n k 准则就属于这类。第三类是基于页面覆盖的准则。文献【4 】基于扩展u m l 模型也提出了w e bp a g e 准则,即w e b 应用中所有的页面都要被测试用例覆盖。文献 2 8 n 提出 了更复杂的页面覆盖率准则,包括p a g es i n g l e 准则、p a g e 准则、准则、_ p o s t p a g ep r ep a g e s e q 2 准则和p a g e 准则。第四类是基于用户 的动态覆盖率准则。文献 ,根据seqk s e s s i o n 2 93 0 u r l 请求定义了一系列新型的覆盖率准则。该方法可以避免w e b 应用模型构建过程中产生的困难, 是对传统程序覆盖准则和错误检测能力的一种补充。该方法的不足之处是不能判断测试用例对 满足一个覆盖率准则的完全性检查,并且只适用于存在大量用户s e s s i o n 的情况。其他的覆盖 率准则还有文献 15 】提到的基于所有输入g u i 的覆盖率准则以及基于事件覆盖的准则。 1 2 2w 曲应用的结构性测试 结构性测试是保证软件质量的有效措施之一,通过分析源代码检测错误和验证功能,通过 测试用例覆盖的代码量检验测试的完备性。在传统软件测试中,结构性测试首先分析被测软件 的源代码,构建测试模型;然后定义不同的覆盖率准则以度量测试过程;最后根据不同的测试 条件设计出满足不同覆盖率准则的测试用例。比如,传统软件测试以控制流图和数据流图作为 典型的测试模型,而使用语句覆盖、分支覆盖、基路径覆盖等覆盖率准作为代码的度量标准。 与传统软件的结构性测试流程类似,w e b 应用的结构性测试也需要构建测试模型和定义覆 盖率准则,以便设计和度量测试用例。但由于w e b 应用自身的特点,结构性测试的过程和内容 更加复杂: 从w e b 应用的内容来看,结构性测试包含两个方面:一方面是针对w e b 应用的程序代码 进行不同层次的抽象和建模,然后根据控制流或数据流信息生成测试路径作为测试用例。例如 文献【1 1 ,1 2 ,1 3 】构建的面向w e b 应用不同层次的测试模型,它们可以被执行以得到所需的数据 流信息。虽然这些模型可以捕捉w 曲应用不同组件之间的交互行为,但没有相应的实验证明其 可行性。可以相信,当w e b 应用规模和复杂度变大时,这些模型并不能轻易实现。文献 1 4 ,1 5 】 具体针对以j s p 技术和n e t 技术开发的w e b 应用进行建模,并基于模型提出了相应的测试方 法和技术。由于它们仅适用于特定的w e b 应用,因此测试方法和技术也具有一定的特殊性。为 了保证测试的代码覆盖率,传统软件测试的覆盖率准则被应用到w e b 应用结构性测试中,包括 路径覆盖、分支覆盖、全定义一使用对覆盖等等【6 】。另一方面则是以w 曲应用的页面为研究对 象,构建w e b 应用的导航模型生成测试用例。文献 1 6 1 构建页面流图( p f d ) 以表示w e b 页面间 的导航关系,然后通过算法构建一棵生成树p t t ,深度遍历该树即可得到测试路径。文献 1 7 】 则使用静态分析方法,从w e b 应用动态页面的导航关系中抽取信息,生成测试用例。该方法着 重研究导航链接对程序控制流及测试路径生成的影响。 从w e b 应用的架构来看,w e b 应用的结构性测试包括客户端测试和服务器端的测试。客 3 客户7 服务器, 图1 - 2w e b 应用的多层体系结构 软件架构人员希望通过封装业务规则并建立可复用的程序来解决上述问题。当用户需求发 生变化时,只需替换掉这些程序,重新编译和发布即可。既可满足w e b 应用快速变化的需求, 又可保证w e b 应用的安全性和可靠性。这种需求促使软件架构人员提出了w e b 应用的多层体 系结构。多层体系结构是按照系统的实际需求和部署配置要求,针对w e b 应用的服务器端程序, 将w e b 应用系统划分成两层、三层,甚至更多层的服务器端架构。比如,人们最常使用的表示 层业务层数据访问层就是一种典型的三层架构的服务器端,如图1 2 。表示层存放页面,用于 界面显示:业务层存放各种组件和业务逻辑代码,如s e r v l e t 、j a v a b e a n 等;数据访问层存放访 4 第一荦绪论 问数据库的代码。目前,典型的企业级多层体系结构包括j a v ae e 体系结构、n e t 架构等。 多层体系结构的w e b 应用可以有效地解决一些开发过程中出现的问题:当业务规则发生变 化时,w c b 应用的维护成本随之增高,多层体系结构可以改善维护性;当不同应用程序之间的 业务规则出现矛盾时,多层体系结构可以改善一致性;应用程序之间不能共享数据或者业务规 则。多层体系结构提供了互操作性;性能不佳且不能扩展现有的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 e b 应用进行结构性测试也包括两个方面, 即在页面级别上针对导航关系图的测试和针对多层体系结构的数据流或控制流的测试。但是, w e b 应用的多层体系结构的各层之间的关系以及层次内部的关系更加复杂,比如一个简单的表 单提交可能需要与业务逻辑层的多个组件和数据访问层代码进行交互。因此,必须首先透彻分 析w e b 应用程序。 从w e b 应用的架构来看,多层体系结构的w e b 应用的结构性测试包括客户端测试和服务 器端的测试。相比一般的w e b 应用,多层体系结构的w e b 应用的服务器端包含更多更复杂的 逻辑处理和信息交互,因此,服务器端程序的测试更加重要。针对图1 2 架构的w e b 应用,表 示层通常存放各种动态页面和静态页面,因此该层的主要测试内容包括:h t m l 语句的测试、 服务器端脚本语言的测试、链接测试等;业务逻辑层存放各种组件和业务逻辑代码,用于处理 用户的各种请求,该层的主要测试内容包括:组件内部逻辑代码的测试、各个组件之间交互性 测试等;数据访问层主要用于访问数据库和存取数据,因此需要进行数据库的连接测试、数据 存取测试等。另外,各层之间关系紧密,用户的一个请求通常需要各个层次之间相互协作共同 完成,因此各层之间的交互性的测试也是必不可少的。 综上所述,多层体系w e b 应用的测试直接关系到w c b 应用的成败,结构性测试技术是保 证多层体系结构的w e b 应用质量的手段之一。测试多层体系结构的w e b 应用虽然也是通过分 析源代码检测错误和验证功能,以及通过测试用例所覆盖的代码量来检验测试的完备性,但由 于其自身的特殊性,测试范围和规模要更宽广。 目前,针对多层体系w e b 应用的测试方法和技术还不多,大部分的研究工作集中在针对三 层体系结构w e b 应用的页面测试。因此,研究多层体系结构w e b 应用的测试方法和技术对于 保证w e b 应用的质量是有意义和有效的。 1 3 论文主要工作 本文将围绕w e b 应用的结构性测试,通过分析多层体系结构的w e b 应用服务器端程序, 在如下几方面展开研究工作:构建服务器端程序的测试模型来描述测试对象;白盒测试策略的 5 东南人学硕l :学位论义 选择与测试路径的生成;定义不同的代码覆盖率准则,分析各准则的利弊及相互关系,生成基 于覆盖率准则的测试需求集合:研究服务器端程序的测试需求约简方法,获取基于不同覆盖率 准则的测试用例;相关工具的开发与验证。 ( 1 ) 服务器端程序内部的依赖关系与测试模型的研究 多层体系结构的w e b 应用服务器端程序由大量页面和实现各种业务逻辑的组件组成,构建 一个测试模型并不能满足测试需求。利用w e b 应用建模中“分而治之”的思想,本文将服务器 端程序划分为三类组件,从而构成了基于组件的多层体系结构的w e b 应用服务器端程序( 以下 简称组件服务器端程序) 。 组件服务器端程序中的页面组件通过链接、表单提交和页面重定向关联起来;逻辑组件之 间、页面组件和逻辑组件之间则通过组件调用关联起来。这样,在服务器端程序执行的过程中 会出现各种依赖关系。其中在页面组件和逻辑组件内部会出现页面组件的控制流关系和逻辑组 件的控制流关系;在页面组件和逻辑组件之间会出现五种调用依赖关系。这些依赖关系可以使 数据流和控制流发生改变,从而影响结果的产生。因此,有必要对上述依赖关系进行研究和分 析,帮助构建不同层次的w e b 应用测试模型。 本文建立的模型分为两个层次:低层次由p c d g 模型和c c d g 模型构成,分别描述了页 面组件内部的控制流关系和逻辑组件内部的控制流关系;高层次则是在分析组件之间的依赖关 系的基础上构建m c d g 模型,主要描述了各组件之间由于表单提交、页面重定向和组件调用 所产生的依赖关系。 ( 2 ) 测试路径的生成方法研究 m c d g 模型不仅描述了各类组件内部的控制流关系,更强调了组件之间的调用依赖关系, 在描述服务器端程序的静态结构的同时,表达了多层体系结构中各个层次间的交互行为。基于 该模型,扩展传统软件测试中m m 路径测试方法,识别模块执行路径和消息执行路径以构建 服务器端程序的测试路径,可以帮助w e b 应用服务器端程序生成测试用例和进行结构性测试。 ( 3 ) 覆盖率准则的定义与测试需求的选取 覆盖率准则是测试过程中的一个重要指标,保证测试工作达到一定的度量标准或目标。目 前针对w e b 应用测试提出的覆盖率准则主要基于程序代码和u r l 的。由于服务器端程序的复 杂性,需要构建合适的覆盖率准则。本文将在服务器端程序测试路径构建算法的基础上,结合 程序代码本身的特性提出四种覆盖率准则,分析各覆盖率准则的利弊并证明它们之间的线性包 含关系。 w e b 应用的测试过程是一个耗时耗力的过程,何时结束测试是一个值得探讨的问题。而覆 盖率准则是一种很好的度量方式,可以帮助确定测试需求、选择测试用例、约简测试套件以及 决定何时结束测试。测试人员可以根据源代码、设计组件、规格说明、输入空间中的有关信息 进行描述【3 l 】。基于上述四种覆盖率准则,本文将生成不同的测试需求集合,从而帮助测试人员 根据不同的测试条件和测试资源选择不同的覆盖率准则,并可以帮助后续的测试用例的约简。 ( 4 ) 测试需求约简方法及基于不同覆盖率准则的测试路径生成的研究 测试约简包括测试需求的约简和测试用例的约简。在软件测试中,这两方面的研究工作已 经很多,而w e b 应用测试的约简工作主要集中在测试用例的约简。本文将在服务器端程序测试 路径生成的基础上,将结合覆盖率准则研究测试需求的约简方法。在保证覆盖率准则的同时, 通过减少测试需求的数目来约简测试用例,从而达到减少测试成本和提高测试效率的作用。 ( 5 ) 相关工具的开发与验证 6 开发服务器端程序的结构性分析与测试工具,以实现从测试模型的构建到覆盖率准则的选 择与测试路径生成再到实验结果分析的解决方案。工具将以服务器端程序的源代码为输入,生 成不同页面组件和逻辑组件的控制流图,进而生成测试路径。根据不同的测试覆盖率准则,工 具将通过约简测试需求的方法生成测试需求的最小集合,从而帮助约简测试路径和提高测试效 率。工具还将验证和分析测试需求约简方法对于测试路径的约简效果。 1 4 论文章节安排 本文共分六章,各章的内容简述如下: 第一章为绪论,主要介绍本文的研究背景和研究现状,分析w e b 应用的发展和特征、w e b 应用测试方法的问题和局限,并在此基础上提出多层体系结构的w e b 应用的组件服务器端程序 的研究内容研究方法。 第二章对服务器端程序进行分析并提出建模方法。首先会描述两种控制流图模型和一种调 用依赖关系图模型的构造过程。然后基于这些模型,扩展传统软件集成测试中的m m 路径方 法,提出扩展m m - 路径的概念并描述扩展m m 路径的生成过程。 第三章是覆盖率准则的定义与测试需求的约简部分。该章节将首先介绍测试需求和覆盖率 准则等背景知识。然后提出组件服务器端程序的四种覆盖率准则,分析各覆盖率准则的利弊并 证明它们之间的包含关系。基于其中三种覆盖率准则生成相应的测试需求集合。应用传统软件 测试的测试需求约简技术,基于不同的覆盖率准则约简测试需求和生成测试路径。 第四章为组件服务器端程序静态分析工具的设计与实现,主要介绍了工具的主要功能、设 计思想、主要数据结构、操作流程与界面等。 第五章将结合实际的多层体系结构的w e b 应用程序进行实例研究,说明并分析服务器端程 序的建模、测试路径生成、测试需求集合的生成、基于不同覆盖率准则的测试需求约简与测试 路径生成等一系列过程。 第六章为总结与展望部分,总结本文的在w e b 应用服务器端程序测试的主要研究工作,提 出现有工作的局限性以及有待提高和改进的方面,简要阐述未来的研究方向。 多则采用基于组件的开发方法,形成的一系列独立的、可复用的、松耦合的逻辑组件可以提供 统一的接口实现页面组件传来的服务请求或向页面组件输出逻辑处理结果。典型的服务器端逻 辑组件有e j b 、j a v a b e a n 等等。 基于上述分析,可以将服务器端程序看成一个包含页面组件和逻辑组件程序集合,从而形 成基于组件的服务器端程序。当该程序接受h ,r r p 请求时,页面组件就会调用相应的逻辑组件 处理请求,请求的结果会以静态页面的形式发送给用户。在组件服务器端程序执行的过程中会 形成多重依赖关系:在页面组件和逻辑组件内部会出现页面组件的控制流依赖和逻辑组件的控 制流依赖;在页面组件和逻辑组件之间则出现五种调用依赖关系,包括页面组件内部的调用关 系、逻辑组件内部的调用关系、页面组件之间的调用关系、逻辑组件之间的调用关系以及页面 组件和逻辑组件之间的调用关系。这些依赖关系可以使数据信息和控制信息发生改变,从而影 响结果的产生。因此,针对上述特点,本文提出页面控制流i 蛩( p c d g ) 、组件控制流图( c c d g ) 以及消息传递依赖图( m c d g ) 三种测试模型。p c d g 模型和c c d g 模型分别描述了w e b 页面内 部元素的控制流关系和逻辑组件内部元素的控制流关系。在此基础上,通过添加调用关系,可 以构建m c d g 模型以描述组件之间的五种调用依赖关系。 8 多采用混合编程技术实现,因此直接解析页面组件代码以生成p c d g 模型较为困难。注意到以 j s p 技术开发的w e b 应用程序的w 曲页面可以通过j s p 页面或s e r v i a 实现,而j s p 页面在实 际执行过程中首先会被服务器容器解析成统一的s e r v l e t 代码。因此,下面将统一以s e r v l e t 代 码表示的w e b 页面为解析对象,分析p c d g 模型的构造过程。 算法2 1 描述了根据页面组件的s e r v l e t 代码生成p c d g 模型的过程。该算法递归调用 p c d g g e n e r a t i o n 函数,每次调用一次处理一个页面组件被解析后生成的抽象语法树元素e l e m , 根据e l e m 元素的t a g 属性,构建不同t y p e 属性的p c d g 模型结点和边。例如:当前e l e r n 元素 的t a g 属性为c l a s s d e f , 则构造t y p e 属性为c l a s s d e f 的p c d g 模型开始结点并赋值给p r e 变量。 然后针对e l e m 元素的所有孩子元素递归调用p c d g g e n o a t i o n 函数,并根据孩子元素的t a g 值 构造p c d g 模型的其他结点。当e l e m 元素的所有孩子元素被处理完毕,创建t y p e 属性为f i ,l a t 的终止结点并构建前驱结点p r e 与该结点之间的边。 9 东南人学顾 :学位论义 算法2 1p c d g 模型构造算法( p c d g g e n e r a t i o n ) 输入:e l e m 页面组件的s e r v l e t 代码被解析后生成的抽象语法树元素 输出:g “v p ,e p ) 一页面组件控制流图,初始值为a p c d g g e n e r a t i o n ( e l e m ) t a g _ n a m e - - e l e m g e t t a g ( )获取e l e m 的t a g 属性 i f t a g _ n a m e = c l a s s d e f t h e n ,构建t y p e 属性为c l a s s d e f 的p c d g 模型结点并赋值给用于保存前驱结点的全局变量p r e * 雕卜c r e a t ea “c l a s s d e f ) f o ra e l e m 的孩子元素d o 递归调用p c d g g e n e r a t i o n 函数e n df o r 产构建t y p e 属性为f i n a l 的p c d g 模型结点并赋值给v 变量,添加v 与前驱之间的p c d g 模型边吖 v 卜c r e a t ea - “ f i n a l ) ,c r e a t ea _ e ( ) e l s ei f t a g _ n a m e = i f 或s w i t c h t h e n v 卜c r e a t eav ( “b r a n c h ”) , c r e a t ea _ e ( ) , v 6 - - c r e a t eav ( “b r a n c h f i n a r ) f o ra he l e m 的分支部分d o 蝌递归调用p c d g g e n e r a t i o n 函数,c r e a t ea _ e ( ) e n df o r p i f = v e n di f e l s ei ft a g _ n a m e = w h i l e 或f 0 r 或d o w h i l et h e n i ft a g _ _ n a m e = d o w h i l et h e n f o r 枷e l e m 的孩子元素d o 递归调用p c d g g e n e r a t i o n 函数e n df o r e n d i f v 卜c r e a t ea v ( “b r a n c h ”) a n dc r e a t ea d ) v 一c f e a t ea v ( b r a n c h f i n a l )a n d a f ea - e

温馨提示

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

评论

0/150

提交评论