




已阅读5页,还剩49页未读, 继续免费阅读
(计算机应用技术专业论文)web应用系统一种测试工具的设计研究.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
南京航空航天大学硕士学何论文 摘要 基于w e b 技术的b s 体系结构是当今软件开发首选的架构。由于w e b 技术应 用的普及,传统的c s 结构与之又有不少区别,导致传统的测试方法和工具不能 完全适用于w e b 应用系统,给w e b 应用系统的测试提出很大的挑战。本文指出测 试自动化的重要性以及传统的基于w e b 应用系统测试工具和方法的局限性,提出 种测试工具的框架和它的工作流程,该框架包括六个部分:源程序分析子系统、 测试用例产生器、测试开发子系统、测试脚本解释器、测试结果分析子系统、测 试管理子系统,整篇文章的重点在于研究各个子系统的设计。脚本技术是测试自 动化的关键技术,本文针对该测试工具提出一种结构化的解释型脚本语言,设计 部分用于w e b 应用测试的脚本语言库函数,详细介绍了测试脚本解释器的设计, 其中包括符号表的设计、变量的处理、用户函数的定义和调用、库函数的调用、 选择循环语句的处理。本文还探讨了w e b 应用系统的测试模型,提出一种基于控 制流的建模方法依据该控制流阐述了如何进行控制流的提取、模型的建立和测 试用例的产生。最后简单说明了测试结果的分析,利用该工具进行回归测试,如 何采用该工具创建任意的虚拟客户端进行性能的测试。 关键字:w e b 应用系统,测试工具框架,测试脚本 a b s tr a c t t b eb sm o d e l ,b a s e do nw e bt e c h n o l o g y ,i st h ep r i m a r yf r a m e w o r kf o r t o d a v ss o f t w a r ed e v e l o p m e n t t h ew i d ea p p i i c a t i o no f w e bt e c h n o l o g y , c o u d l e db yi t sd i f f e r e n c ew i t ht h et r a d i t i o n a lc 1 i e n t s e r v e rm o d e l - ,l e d t ot h ei n c o m p a t i b i l i t yb e t w e e nt h et r a d i t i o n a lt e s t f n g m e t h o d 、t o o la n d t h ew e ba p p l i c a t i o ns y s t e m ,t h u sp o s i n gag r e a tc h a l l e n g et o t h et e s t i n g o ft h ew e ba p p l i c a t i o ns y s t e m t h ep a p e re m p h a s i z e s t h e i m p o r t a n c eo f t e s t i n ga u t o m a t i o na n dp o i n t so u tt h e 1i m i t a t i o n so ft r a d iti o n a t e s t i n g m e t h o da n dt o o l so fw e ba p p l i e a t i o n i tp u tf o r w a r dt h ef r a m e w o r ko f a n e wt e s t i n gt o o la n di t sw o r kf l o w t h ef r a m e w o r ki n c l u d e s :t h es o u r c e p r o g r a ma n a l y s i ss u b s y s t e m ,t e s t c a s e g e n e r a t o r 、t e s td e v e l o p m e n t s u b s y s t e m 、s c r i p ta n a l y z e ra n de x e c u t o r 、r e s u l ta n a l y s i ss u b s y s t e m ,a n d t e s tm a n a g e rs u b s y s t e m ,t h ew h o l ep a p e rc e n t e r e do nd e s i g no fe v e r yp a r t s c r i p tt e c h n o l o g y i sac r i t i c a ll i n ki nt e s t i n gn u t o m a t i o n t h ea u t h o r d e s i g n sas t r u c t u r a ls c r i p tl a n g u a g et a r g e t e da t t h a tt e s t i n gt o o la n d l i s t ss o m ef u n c t i o nl i bo fs c r i p tl a n g u a g eu s e di nw e ba p p i i c a t i o nt e s t i n g t h ea u t h o ra t s oe x e m p l i f i e dt h ed e s i g n i n go fs c r i p ta n a l y z e r ,i n c l u d i n g s y m b o lt a b l ed e s i g n i n g ,v a r i a b l ea n a l y s i s ,t h ed e f i n i t i o n a n dc a l lo fu s e r f u n c t i o n 、l i bf u n c t i o nc a l la n d t h ec o m p i l a t i o no fc o n d i t i o na n d1 0 0 p s t a t e m e n t s t h ea u t h o ra l s oe x p l o r e st h ew e ba p p l i c a t i o nt e s t i n gm o d e l a n dp r o p o s e sam o d e l i n gm e t h o db a s e do nc o n t r o lf l o w t h ea u t h o rg o e so n t oe l a b o r a t eo nh o wt og e n e r a t et h ec o n t r o lf l o w ,e s t a b li s hm o d e la n d d e s i g nt e s t i n gc a s e f i n a l l y ,t h ep a p e re x p l a i n sh o wt oa n a l y z et h et e s t r e s u l t 。h o wt od or e g r e s st e s t i n g ,h o wt ou s et h et o o l t oc r e a t ev i r t u a l c i i e e t ss oa st od op e r f o r m a n c et e s t j n g k e yw o r d s :w e ba p p i i c a t i o ns y s t e m ,t e s t i n gt o o lf r a m e w o r k ,t e s t i n g s c r i p t 附3 承诺书 本人郑重声明:所呈交的学位论文,是本人在导师指导下,独立进行研究 工作所取得的成果。尽我所知,除文中已经注明引用的内容外,本学位论文的 研究成果不包含任何他人享有著作权的内容。对本论文所涉及的研究工作做出 贡献的其他个人和集体,均已在文中以明确方式标明。 本人授权南京航空航天大学可以有权保留送交论文的复印件,允许论文被 查阅和借阅,可以将学位论文的全部或部分内容编入有关数据库进行检索,可 以采用影印、缩印或其他复制手段保存论文。 ( 保密的学位论文在解密后适用本承诺书) 作者签名:聋奉隧 日期: 型芏:2 南京航空航天犬学硕士学位论文 第一章绪论 由于网络的发展,全世界各种类型的计算机都能做到互相访问、协同工作, 再加上w e b 浏览器在各种平台上的实现,w e b 应用系统得到了迅速的发展它也 正好迎合了众多系统平台独立性、分布处理的特点。正是由于w e b 系统有跨平台、 配置简单、客户端可以达到零配置( 只需要一个w e b 浏览器) 、易于维护等优点, 如今大量在线购物、电子商务、电子政务、管理信息系统都是以w e b 应用为典型 的架构,全球现在也有不计其数的商业、政府、企业内部、外部w e b 站点。w e b 系统是一种8 s 结构,系统可分为三层,甚至多层,由于j a v a s c r i p t 、v b s c r i p t 的出现,学e b 系统的b 端、s 端可以嵌入备种各样的构件,使w e b 系统的功能越 来越强大,相对的就越来越复杂。越来越多的应用软件以w e b 系统为架构,但是 w e b 系统的调试工具,测试工具却还比较少,只有少数商业机构的产品支持w e b 应用系统的测试。 1 1 w e b 应用系统概述 w e b 应用系统程序主要是由静态的h t m l 文档、客户端程序、服务器端程序 构成,客户端和w e b 服务器是通过h t t p 协议进行通信的,而w e b 服务器与后台 的数据库服务器可以是通过0dbc 或j d b c 这些访问组件进行连接。 1 11 w e b 应用系统的体系结构 从图1 1 可以获知基于w e b 系统的体系结构大体上由三层组成,在实际的应 用系统中,为了软件的易维护性,逻辑更加清晰,可以把w e b 服务器的复杂功能 分成二部分,一部分主要处理客户端的连接,另一部分主要进行逻辑事务的处理, 所以也有人喜欢把它看成经典的四层体系结构( 客户端 w e b 服务器 应用 服务器 数据库服务器) 。 w e b 应用系统一种测试f :贝的没计研究 h t m l 翻阵器】 响 多媒体文件】 l a v a 虚拟机1 应 舅 1r 监 数据 听 库访i u r lb ( v a r = d 1 ) 一 u r l e 一 u r l f ,u r l a 一 u r l c ( v a r = d 2 ) - u r l f , u r l a 一 u r l d 一 u r l e 一 u r l f ,u r l a u r l d 一 u r l f 。分析这棵生成树, 可以检查导航行为的一些可达性或死锁等属性,例如用户访问页面b 时,然后它 只能访问页面e 和页面f 了,无法访问其他页面;用户访问到页面e 时,以后只 能在页面e 和页面f 之间徘徊,造成死锁。 3 1 2 2 对象状态图 测试w e b 应用系统时,每个对象间的状态依赖的动态行为是测试的重点之 一。即使每个对象都已经过严格的测试,集成以后,对象闻也必定会相互影响, 所以必须对影响对象变化的各种行为进行测试。为了描述行为对状态变化的影 响,有学者提出一种对象状态图o s d ( o b j e c ts t a t ed i a g r a m ) 的方法,对象状 态图也是有限自动机,每个对象可以用一个有限自动机束描述状态依赖行为和对 象状态转变关系。分析每个对象的状态和行为,在有限自动机中结点表示对象的 状念,转移边表示它的行为。例如,图3 1 网上银行对象关系图中的转账页面( 客 户端) 对象c ,它由三个状态和七个行为组成。h t t p 请求和响应之类的对象间交 互行为,它会同时触发另对象的某一行为发生,在这类行为后面加一斜杓“” 和所触发另一对象的行为。图3 1 网上银行对象关系图中的转账页面( 客户端) 南京航空航天人学硕十学位论文 对象c 向转账页面( 服务器端) 对象s 发送提交请求的同时,会触发转账页面( 服 务器端) 对象s 的g e t 行为发生,那么对象c 的这一行为就可以用s u b m i t s g e t 来表示。 一 川油:坚监卜 一 陆删吣r 芦彬 固:罩 图3 4 复合对象状态图 图3 4 中是图3 1 网上银行对象关系图中四个对象的对象状态图o s d 和它们 的复合对象状态图c o s d ,在有些对象状态图中有一个等待状念,这是为了表达 并发执行对象的同步,一个对象将一直处于等待状态,直到其他对象触发了这个 对象的某种行为,才会促使它的状态发生转移。例如,转账页面( 客户端) 页面 对象处于等待状态时,只有在转账页面( 服务器端) 对象产生r e s p o n s e 行为或 者用户权限页面( 服务器端) 对象产生r e s p o n s e 行为时触发它的r e c v r e s p o d s e 行为时才发生状态的转移。 从对象的复合状态图c o s d 可以导出状态图的生成树,从生成树产生测试用 例。图3 5 是图3 ,4 复合对象状态图的生成树,生成树中的结点代表复合状态图 中各对象所处的状态,边代表引发状念转移的行为,复合状态图中有n 个对象状 态图,生成树的结点就为一个n 元组,例如图3 5 中生成树的根结点 w e b 幽墨竺二壁塑堕! :垦竺堡生塑塞一 _ _ 一一 ( c l :s 1 :t 1 :a 1 ) 代表四个状态都处于状态1 。 图3 5 对象状态图生成树 图3 5 对象状态图生成树 3 2 基于控制流的测试模型 传统软件测试中的结构性测试是以程序的结构为基础生成测试用例,以测试 准则来判定测试的充分性,结构性测试包括数据流的测试和控制流的测试,数据 流的测试不在本文的探讨范围。在以程序的控制流为基础来生成测试用例时,必 须做出程序的控制流图,控制流图是程序结构建模中经常采用的形式,它直观地 描述了程序中各语旬依次执行的关系。如下一段c 语言的w h i l e 循环语句,它的 控制流图如图3 6 所示, 1 :i n t 铲5 : 2 :w h “e ( a o ) f 3 :a - : 童室堕至堕鲞查堂堡堂堡堡苎 一一一 图3 ,6 程j 芋控制流图 w e b 应用系统具有自身特殊的性质,所以传统软件的控制流建模方法不能适 用于它。下面重点来研究一种w e b 应用系统基于控制流的建模方法。当用户登录 到一个w e b 应用系统时,用户根据网页上的导航信息,会有多种处理过程来完成 各种各样的功能,服务器端也会根据用户发来的请求信息产生不同的响应,例如 产生不同的重定向。当客户端与服务器进行交互时会产生不同的访问路径,我们 把每个请求的文件看作一个结点,那么能在访问结点上产生分支的可以归结为二 种情况,一种是根据用户的输入信息由服务器端来决定下一个应该重定向到哪一 个结点,另一种情况是由用户根据自己的需要进行选择产生的分支。 下面用一个具体的例子来说明w e b 应用系统的控制流模型。如图3 7 所示, 该图表示一个教师登录到一个网上选课预约系统去查询课程被预约的情况,由于 只是为了说明问题,把它简单化。教师首先访问1 0 9 i n h t m 进行用户名与密码的 输入,提交到c h e c k a s p 进行用户名与密码的验证,错误的给出提示页面 p a s s w d e r r o r h t m ,这时用户可以到l o g i n a s p 重新登录,或者退出,丁f 确的转 向查询主页面e n t r y l n d e x h t m 页面,最后选择退出。 w e b 应_ 【 ;| 系统一种测试l 具的殴计研究 图3 7w e b 应用系统的控制流模型 3 3 测试模型的形式化描述 图3 7 的控制流图中归纳起来总共由8 种不同的元素组成( 见图3 8 ) :入 口结点( e n t r y ) ,出口结点( e x i t ) 、实体结点( e n ) ,内容结点( n ) ,程序分支 ( s ) 、用户选择边( u e ) 、程序重定向边( a e ) ,内联边( i e ) ,每个元素的表示 见图3 8 ,把每个文件看作一个实体,那么我们可以说控制流图由四个部分组成: 入口结点( e n t r y ) 、出口结点( e x i t ) 、实体结点( e n ) 、跳转边( e ) 。实体结点又 包括三个部分:内容结点( n ) 、内联边( i e ) 、分支结点( s ) ,跳转边( e ) 有二种情 图 入口缮点( e n t r y ) 出口结点( e 购t )内容鳍点( n ) _ 一一一一 用户选择边( u e ) 程序重定向垃( a e )内联边“e ) 幽3 8 控制流幽元素 程序分支( a s ) 实体结点( e n ) 南京航空航天人学硕士学位论文 况;一种是程序产生的重定向边( a e ) ,另一种是用户选择产生的跳转边( u e ) 。那 么可以把控制流图( g ) 定义如下: g = e n t r y ,e x i t ,e n ,e j e n = ( n i e ,s ) ) e = u e ia e i e = ( a ,b )a n ,b s u e = ( a ,b ) a s e n t r y ,b nje x i t a e = ( a ,b ) a s b n e x i t 如图3 7 中的例子可表示为: g _ e n t r y ,e x i t ,e n ,e e n = e n l ,e n 2 ,e n 3 ,e n 4 n = n l ,n 2 ,n 3 ,n 4 s = u s l ,u s 2 ,u s 3 ,u s 4 ) z e = i e l ,i e 2 ,i e 3 i e 4 u e _ u e l ,u e 2 ,u e 3 ,u e 4 ,u e 5 ,u e 6 a e = a e l ,a e 2 e n l 2 ( n l ,i e i ,a s l )e n 2 = ( n 2 ,i e 2 ,u s t ) e n 4 = ( n 4 ,i e 4 ,u s 3 ) e 1 2 ( n l ,a s l ) i e 2 = ( n 2 ,u s l ) i e 3 = ( n 3 ,u s 2 ) i e 4 = ( n 4 u s 3 ) u e l 2 ( e n t r y ,n 4 ) u e 2 = ( s 4 ,n 1 ) u e 3 = ( s 2 ,e x i t ) u e 4 = ( s 3 ,e x i t ) u e 5 = ( s 2 ,n 4 ) u e 6 = ( s 4 ,e x i t ) a e l = ( s l ,n 2 ) a e 2 = ( s l ,n 3 ) 3 4 基于模型的覆盖准则 有了上面提出的控制流模型,僦可以用它来产生路径访问测试用例,针对这 个控制流模型,有二种测试用例的覆盖准则:结点覆盖和边覆盖。结点覆盖就是 所采纳的测试用例必须覆盖所有的结点,也就是e n 集合:边覆盖要求测试用例 必须把所有的选择边都覆盖,即定义中的u e u a e 集合。如图3 7 所示的控制流 图,我们可以产生如下2 组测试用例:那么l 组的测试用例,满足了结点覆盖的 准则,2 组的测试用例则满足了边覆盖的准则。 w e b 应用系统一种测试i j 具的殴计研究 i纽号测试川例 1 e n t r y 一 e n 4 一 e n1 一 e n 2 一 e x i t : e n t r y 一 e n 4 一 e nl 一 e n 3 - e x i t 2e n t r y 一 e n 4 一 e ni 一e n 2 e x i t ; e n t r _ y 一 e n 4 一 e n l 一 e n 2 一e n 4 一 e x i t , e n t r y 一 e n 4 一 e n l 一 e n 3 一 e x i t 3 5 本章小结 表3 1 测试i l j 例 本章首先介绍w e b 应用系统的对象模型和行为模型,然后提出一种基于控 制流的测试模型,用它来给w e b 应用系统进行建模,举了一个具体的实例进行阐 述,又给出这个模型的形式化定义,分析基于这个模型的测试覆盖准则,依据模 型和一定的准则产生测试用例。 南京航空航天大学顾士学侮沦文 第四章源程序分析和测试用例产生 如今,随着w e b 技术的不断发展,w e b 程序越来越复杂,不仅仅是静态的h t m l 语言,在h t m l 语言中嵌入了客户端脚本和服务器端脚本,这些技术很大提高了 客户端的显示效果和服务器端的功能。为了了解程序的内部结构,有必要从复杂 冗长的程序中提取出一些有用的信息,比如控制流、数据流信息,进而来引导测 试用例的产生。上章论述了w e b 应用系统的控制流模型,本章将探讨如何分析程 序获得控制流模型,基于模型自动产生测试用例,在这里,客户端脚本以 j a v a s c r i p t ,服务器端脚本以v b s c r i p t 作为w e b 程序的例子进行分析。 4 1w e b 程序中的控制流信息 w e b 程序的每个组成部分都能产生页面的跳转或者重定向,这些都可以把它 看成是控制流的信息,下面假设w e b 程序由三部分组成:客户端脚本j a v a s c r i p t 程序、服务器端的v b s c r i p t 脚本、h t m l 程序,列举三个产生控制流的信息,以 此来探讨源程序的分析和测试用例的产生。 1 、h t m l 中的超链接: h t m l 语言提供了页面之间的链按: 链接描述 ,这样 用户就可以通过这些静态链接进行导航。 2 、服务器端脚本v b s c r i p t 中的重定向 服务器端脚本是通过w e b 服务器来解释然后向客户端输入数据,在这里可能 产生重定向,即r e s p o n s e r e d i r e c t“u r l ”,这样用户的请求就转到新的u r l , 所以也是产生控制流的信息。 3 f o r m 的提交 f o r m 是用户向服务器端提交数据的主要方法之一,它把用户的输入数据连 同u r l 一起提交出去,这个页面就可以得到具体的参数值,提交动作可以看成是 调用另一页面的运算。 4 2 源程序分析和w e b 程序的中间表示形式 太部分的语言程序进行编译时,由于语言的复杂性以及代码的优化处理,在 语义分析时不是直接产生机器语言或汇编语言形式的目标代码,而是生成介于源 语- a 和目标语言之间的中间语言代码。在这旱,做w e b 语言的程序分析时,由于 w e b 应用系统一种测试i - 具的设计研究 w e b 程序的内容丰富且冗长和便于控制流信息的提取,也是先把源程序转化为一 种中间表示形式的文件。 中间表示形式采用三元组的格式:( cl a s s ,k e y ,c o n t e n t ) ,其中c l a s s 代表 这个元素的类别,例如a s p 程序可以定义三种类别,当c l a s s = o 时代表元素的内 容是h t m l 代码段:c l a s s = l 时代表j a v a s c r i p t 客户端脚本语言段:c l a s s = 2 时 代表v b s c r i p t 服务器端脚本语言段。提耿出控制流要根掘程序中的一些关键字, 这些元素都是要提取控制流的关键字段,所以给它们编号,k e y 就是代表眩关键 字的编号,表4 i 列举了一些关键字作代表,其中s 表示任意字符串。c o n t e n t 代表该元素的内容。 a1 f o r m2 i n p u t3 塑窒堕皇些墨盔堂堡主堂焦堡苎 一 表4 2w e b 程序的中间格式 w e b 应用系统一种测试i :其的设计研究 4 3 源程序分析中的主要数据结构 为了提取控制流信息,建立w e b 应用系统的控制流模型,根据模型的形式化 定义,主要用到四种数据结构,分别是实体结点结构、内容结点结构、程序分支 结构和边结构,这几个结构体的相互关系如图4 2 所示的。每个实体结点包含有 二个指针,一个指向内容结点,另一个指向程序分支结点,每个结点所能产生的 所有分支形成一个链表,程序分支结构里有一指针指向该链表表头。 图4 2 数据结构逻辑关联图 f 面是对这几个数据结构的简单定义: e n u m e n o d e t y p e e n t r y ,e x i t ,n o r m a l ;定义结点的类型 e n u me d g e t y p e a e ,u e ) : 定义边的类型 e n u mr e q u e s t _ m e t h o d g e t ,p o s t ) :请求方法 s t r u e t c o n t e n t n o d e c h a ru r l 5 1 2 : 该结点对应程序的u r l ) : s t r u c t e d g e n o d e b 0 0 1t r a v e r s em a r k : 标志该条边是否遍历过 c h a r l i 从一s t r i n g 5 1 2 : e n u me d g e t y p e t y p e :边的类型 e n u mr e q u e s t m e t h o d m e t h o d :客户端请求的类型 8 t r u c t e n t l t y n o d e * p o i n t e n t l t y : 边所指向的实体结点 s t r u c te d g e n o d e * n e x t : 下一条边的指针 塑塞塾至堕垄叁主堕主堂堕堡壅 一一 j : s l f l l c ts w it c h n o d e ( s t r u c te d g e n o s e * e d g e l i s t h e a d :边链表的头指针 ) : s t r u c te n t i t y n o d e e n u me n o d e t y p et y p e :实体结点类型 i n tn o d e i d :结点i d b o o lt r a v e r s em a r k :结点是否已遍历 s t r u c tc o n t e n t n o d e * pc n o d e :内容结点的指针 u n i o n s t r u c ts w i t c h n o d e * p - s n :分支结构指针 s t r u c te d g e n o d e * e n t r y e d a g e :边结构指针 p s w i t c h : ) : 枚举类型e n o d e t y p e 是指实体结点的类型,分别为入口结点( e n t r y ) 、出 口结点( e x i t ) 和普通结点( n o p z i a l ) :e d g e t y p e 是边的类型,萨如模型所定 义的有二种:程序产生的重定向边( a e ) 和用户选择产生的跳转边( u e ) ; r e q u e s t m e t h o d 是指客户端请求w e b 服务器的方法有g e t 和p o s t 等。 4 4 控制流的提取和模型建立 从上面的分析可以知道,控制流的产生可以归纳为二种情况:0 i t m l 语言 中的链接,由于h t m l 语言是种标志语言,产生链接的语句不支持嵌套和递归, 只要关键字表4 2 中的关键字按一定的序列出现,就可以断定为链接语句,所以 它可以用正规方法来描述:服务器端或客户端脚本语言中的重定向或链接,这 种情况下只要判定产生重定向或链接的语句出现在脚本语言程序中,就可以断定 它是能产生控制流的信息,铡如本章4 1 节中所举的第二种情况,就可以用这样 的正规文法描述:s - - k ;a k 。a k 以j k ,。所以产生控制流的语法是可以用f 规文 法来描述,把每个关键字看成一个字母,控制流的提取相当干从字符串中匹配一 定的单词,可以用确定有限自动机进行匹配。一个确定有限状态自动机o f f ( d e t e r m i n i s t i cf i n i t ea u t o m a t o n ) m 是由下述元素构成的直元组( q , 6 ,q 。,f ) 有穷状态集合q ;有穷输入字母表;转移函数6 :q - - q : 初始状态q 。:终结状态集合f ,f 包含于q 。自动机从初始状态q 。起,逐一读 入输入串( 出输入字母表的字母构成) 的每一个字母,根据当前状念、输八 字母和转移函数6 决定自动机的下一步状态;如果输入串结束时,自动机处于 坚! 查型墨竺二壁型堡! :垦塑堡生堕至一一一 终结状态集合f 的某一个状念,这表示自动机接受该字串;否则自动机不接受 该字串。 用k 。( n = 1 ,2 ) 表示关键字表旱编号为n 的关键字,4 1 节中所列举的3 种控制流信息的匹配过程可以用图4 3 所示的自动机,其中有穷状态集合 q = ,s 。,s ,) ,有穷输入字母表= ,k 。k “) ,初始状态q c t = s ”终结 状态集合f = s ;s 。,s 、1 1 。 图4 3 识别控制流的有限自动机 采用有限状态机这个描述工具,如果要从程序中匹配更多的信息,只要修改 自动机就可以了,实现程序几乎不要做改动。在程序分析时,如果匹配到控制流 信息,也就是达到终结状态,就要往控制流模型里添加边和结点,当分析完所有 的程序,控制流模型也就形成。 4 。5 基于模型的测试用例产生 在以上形成控制流模型后,采用图的遍历方法,可以得到满足边覆盖准则的 一组测试用例。为了记录遍历路径,程序实现时用栈n o d e s t a c k 来保存从头结 点到当前结点这一路径上的所有结点,遍历算法描述如下: 把入口结点e n t r y 入栈n o d e s t a c k 。 设栈顶结点为当前结点p n o d e ,如果p n o d e 结点类型为e x i t ,栈中保存 的路径便为一测试用例,输出测试用例,当前结点出栈。 如果当前结点p _ n o d e 中存在末被遍历的边,选一条边,设浚边的访问状 态为已遍历,并把该边所指的结点入栈,转,否则转。 如果当前结点pn o d e 的访问标志为未遍历,设浚标志为已遍历,当前结 点出栈;否则说明该结点入度大于1 ,那么栈中的路径加上己生成的经过该结点 南京航空肮大人学硕士学位论文 的路径中从该点丌始到e x i t 的部分路径形成一个新的测试用例,输出测试用例, 当前结点出栈。 重复直到栈空。 算法4 1 边覆盖遍历算法 如图3 7 所示的w e b 应用系统,该算法就可以产生如下的一组测试用例: e n t r y 一 g e t ( “l o g i n a s p ”) p o s t ( “c h e c k a s p ”) - - g e t ( “p a s s w d e r r o r h t m ”) - - e x i t e n t r y 一 g e t ( “l o g i n a s p ”) p o s t ( “c h e c k a s p ”) - - g e t ( “e n t r y i n d e x h t m ”) 一 e x i t e n t r y - - g e t ( “l o g i n a s p ”) 一 p o s t ( “c h e c k a s p ”) - - g e t ( “p a s s w d e r r o r h t m ”) 一 g e t ( ”l o g i n a s p ”) 一 e x i t 同样可以构造满足结点覆盖准则的算法4 2 ,算法描述如下: 把入口结点e n t r y 入栈n o d es t a c k 。 设栈顶结点为当前结点p n o d e ,如果p n o d e 结点类型为e x i t ,栈中保存 的路径便为一测试用例,输出测试用例,当前结点出栈。 如果当前结点有一子结点未被遍历或者存在e x i t 子结点,标志该子结点 为已遍历( e x i t 子结点除外) ,把该子结点入栈:否则当前结点出栈。 重复直到n o d e s t a c k 栈空。 算法4 2 结点覆盖遍历算法 4 6 本章小结 本章首先举例说明w e b 系统中的控制流信息,并描述产生该控制流信息的语 法,提出用有限自动机来实现控制流的提取,以及控制流提取的设计,最后给出 一个满足边覆盖和结点覆盖准则的测试用例产生算法描述。 w e b 应用系统一种测试:具的设计研究 第五章基于w e b 应用系统的测试脚本语言 随着软件越来越庞
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- T/CACEM 59-2025高速公路服务区充电站建设及运营管理服务规范
- GB/T 46102-2025系留气球抗风能力要求和试验方法
- 2025年生物科技行业创新技术与市场前景研究报告
- 2025年医疗器械行业技术变革及市场前景研究报告
- 2025年智慧农业行业农业物联网技术发展前景分析报告
- 2025年区块链技术行业应用前景分析报告
- 商场员工安全培训通讯稿课件
- 2025年汽车行业新能源技术发展前景研究报告
- 2025年区块链技术在物流行业的应用前景分析报告
- 巴彦淖尔市2025内蒙古巴彦淖尔市直属乌兰牧骑(市歌舞剧院)招聘事业编制演职人员笔试历年参考题库附带答案详解
- 银川能源学院《经济数学(一)》2023-2024学年第一学期期末试卷
- 2025年统编版(2024)小学道德与法治二年级上册《我为班级做贡献》教学设计
- 向国旗宣誓活动方案
- “七一”党课:从《党章》中汲取奋进力量把全面从严治党进行到底
- sis系统报警管理制度
- WeleUnit单元话题阅读理解练习-2023-2024学年高一英语单元重难点易错题精练(人教版2019)
- 游戏室工作室合同范本
- T/CCMA 0172-2023移动式升降工作平台施工现场管理规程
- 粮食代烘干协议书
- 华为光芯片笔试题及答案
- 应急预案鲁西化工集团股份有限公司煤化工二分公司突发环境事件应急预案
评论
0/150
提交评论