




已阅读5页,还剩51页未读, 继续免费阅读
(计算机应用技术专业论文)基于模型的gui软件测试框架研究.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
上海师范大学硕士研究生学位论文 基于模型的g u i 软件测试框架研究 摘要 图形用户界面( g u i ) 软件测试是g u i 软件开发中非常重要的一个环节,是 保证软件质量、提高软件可靠性的关键。g u i 不同于传统软件,它提供了使用者 一个非常直观易于使用的环境,因此现在g u i 程序几乎成为了软件开发的事实准 则,但同时也对软件测试人员提出了新的问题和挑战。到目前为止,虽然国内外 的一些研究工作者已经在g u i 应用程序的测试方面取得了一些成果,但这些技术 在一个测试计划的各个阶段中大都互不兼容,很难综合使用。 为了将g e l 软件测试不同阶段的技术关联起来,本文提出了一个统一的解决 方案。方案的核心是一个在原有g u i 软件测试框架基础上改进的g u i 软件测试框 架,特别是对于测试框架中的g u i 表示、测试用例生成方法、回归测试等阶段进 行了重点研究。主要内容包括: ( 1 ) 在概述g u i 、g u i 测试的特点、g u i 测试过程、g u i 软件测试框架等内容 的基础上,提出了改进的g t j i 测试框架,包括g u i 表示方法、测试用例生成、测 试用例执行及结果预测分析、回归测试等阶段。 ( 2 ) 研究了框架中的g u i 表示方法。它是整个框架的基础,重新划分了测试 单元及单元测试层次,提出了新的g u l 分析方法,并构造了四种适用于g u i 测试 各个阶段的不同层次的g u i 表示模型,即:界面调用关系图、对象一事件分析图、 事件关系流图以及事件程序控制流图。 ( 3 ) 研究了g u i 测试中的一个难点:测试用例生成及覆盖评价。首先结合黑 盒测试、白盒测试思想,提出了复合性测试用例生成方法;其次,研究了测试覆 盖准则,定义了针对复合性测试的、基于不同g u i 表示模型的覆盖准则及覆盖评 价方法:最后用实例证明了复合性测试用例生成方法在提高测试覆盖率方面的有 效性。 ( 4 ) 研究了测试结果预测分析技术。简述了测试用例执行及结果提取方法, 重点研究了测试结果预测分析技术,改进了原结果预测分析算法。 ( 5 ) 研究了框架中的回归测试阶段,提出了新的回归测试器结构,包括测试 用例检查器、测试用例筛选器以及测试用例修补器,并用实例加以说明。 总之,改进后的测试框架在理论上提高了g u i 测试的充分性、准确性及灵活 性,同时也具有一定的实用价值。 关键词:软件测试,图形用户界面,测试框架,测试用例生成 上海师范大学硕士研究生学位论文基于模型的g u i 软件测试框架研究 a b s t r a c t t e s t i n go fg u i st a k e sa ni m p o r t a n tp a r ti nt h ed e v e l o p m e n t o fg u i s ,w h i c hi s t h ek e yt ok e e pa n di m p r o v et h eq u a l i t ya n dr e l i a b i l i t yo f s o f t w a r e g u i sh a v e c h a r a c t e r i s t i c sd i f f e r e n tf r o mt h o s eo ft h et r a d i t i o n a ls o f t w a r e w h i c hm a k es o f t w a r e e a s yt ou s ef r o ma u s e r sp e r s p e c t i v e ,s ot o d a y ss o f t w a r ed e v e l o p e r sa r ed e d i c a t i n ga l l i n c r e a s i n g l yl a r g ep o r t i o no fs o f t w a r ec o d et oi m p l e m e n t i n gg u i s ,b u to f ft h eo t h e i 、 h a n dn e wp r o b l e m sa n d c h a l l e n g e sc o m ew i t ht o o b yn o w , t h o u g hs o m er e s e a r c h e r s b o t hh e r ea n da b r o a dh a v ed e v e l o p e dn e wg u i t e s t i n gt e c h n i q u e s ,a l lt h e s et e c h n i q u e s a r en o tc o m p a t i b l ei nv a r i o u sp h a s e so fg u i t e s t i n ga n dt h e yc a n tb ei n t e g r a t e d e a s i l y w i t ht h ep a r t i c u l a rg o a l so fi n t e g r a t i o no ft e c h n i q u e su s e di nv a r i o u sp h a s e so f g u it e s t i n g , t h i sp a p e ri n t r o d u c e sau n i f i e ds o l u t i o n t h ec o r eo ft h es o l u t i o ni sa n i m p r o v e dt e s t i n gf r a m e w o r k e s p e d a l l yt h i sp a p e rp u t se m p h a s i so nt h ep h a s e so ft h e f r a m e w o r k , s u c ha sg u ir e p r e s e n t a t i o n ,t e s tc a s eg e n e r a t i o n , r e g r e s s i o nt e s t i n g , a n d s oo n w em a i n l yr e s e a r c ht h ec o n t e n t sa st h ef o l l o w i n g : ( 1 ) t h i sp a p e rf i r s t l ys u m m a r i z e sw h a tt h eg u ii s , c h a r a c t e r i s t i c so fg u it e s t i n g , g u it e s t i n gs t e p sa n dag u it e s t i n gf r a m e w o r k t h e ni tp r o p o s e sa l li m p r o v e d f r a m e w o r k , i n c l u d i n gt h ep h a s e ss u c ha sg u ir e p r e s e n t a t i o n , t e s tc a s eg e n e r a t i o n ,t e s t e x e c u t i o n , t e s to r a c l e ,r e g r e s s i o nt e s t i n g , a n ds oo n ( 2 ) t h ep a p e rs t u d i e sg u ir e p r e s e n t a t i o nw h i c hi st h eb a s eo ft h ef r a m e w o r k w e d i v i d et h et e s tu n i t sa n dt h el e v e l so fu n i tt e s t i n g0 1 1 0 em o r e w ep r o p o s et h en e wg u i r e p r e s e n t a t i o na n dc o n s t r u c tf o u rg u im o d e l su s e di nv a r i o u sp h a s e so fg u it e s t i n g , t h em o d e l sa r ei n t e r f a c e i n v o c a t i o ng r a p h s , o b j e c t - e v e n t a n a l y s i sg r a p h s ,e v e n t - r e l a t i o n f l o wg r a p h sa n dp r o g r a m - c u n t r o l f l o wf a p h s ( 3 ) t h ep a p e rd e e p l yi n v e s t i g a t e sad i f f i c u l tp r o b l e mi ng u it e s t i n g :t e s tc a s e g e n e r a t i o na n dc o v e r a g ee v a l u a t i o n s t u d y i n gt h eb l a c k b o xa n d w h i t e b o xt e s t i n g , w e f i r s t l yp r o p o s ec o m p o u n dt e s tc a s eg e n e r a t i o n t h e nw es t u d ya n dd e t m ec o v e r a g e c r i t e r i o nw h i c ha r es u i t a b l ef o rc o m p o u n d t e s t i n ga n dd i f f e r e n tg u im o d e l s a tl a s t , w eu s ea l le x a m p l et os h o wt h ee f f e c t i v e n e s so fc o m p o u n dt e s tc a s eg e n e r a t i o no i l i m p r o v i n gt e s ta d e q u a c y ( 4 ) t h ep a p e rs t u d i e st e s to r a c l e w ef i r s t l ys u m m a r i z et e s te x e c u t i o na n d e x e c u t i o nm o n i t o r , a n dt h e nw ef o c u so ns t u d y i n gt e s to r a c l ea n di m p r o v i n gt h e a l g o r i t h mf o rt e s to r a c l e ( 5 ) t h ep a p e rs t u d i e sr e g r e s s i o nt e s t i n gp h a s eo ft h ef r a m e w o r ka n dp r o p o s e s i l e ws t r u c t u r eo fr e g r e s s i o nt e s t e r , i n c l u d i n gt e s tc a s ec h e c k e r , t e s tc a s ( 二f i l t e ra n dt e s t c a s er e p a i r e r a tl a s t ,w eu s ea ne x a m p l et oi l l u s t r a t ei t i nb r i e f , t h ei m p r o v e df r a m e w o r kc a l li m p r o v et h es u f f i c i e n c y , a c c u r a c y , f l e x i b i l i t yo fg u it e s t i n gt h e o r e t i c a l l y , a n dm e a n w h i l ei th a ss o m ep r a c t i c a lv a l u e s k e y w o r d s :s o f t w a r et e s t i n g , g u lt e s t i n gf r a m e w o r k ,t e s tc a s eg e n e r a t i o n 论文独创性声明 本论文是我个人在导师指导下进行的研究工作及取得的研究成果。论文中除 了特别加以标注和致谢的地方外,不包含其他人或机构已经发表或撰写过的研究 成果。其他同志对本研究的启发和所做的贡献均己在论文中做了明确的声明并表 示了谢意。 作者签名: 论文使用授权声明 | s 本人完全了解上海师范大学有关保留、使用学位论文的规定,即:学校有权 保留送交论文的复印件,允许论文被查阅和借阅;学校可以公布论文的全部或部 分内容,可以采用影印、缩印或其它手段保存论文。保密的论文在解密后遵守此 规定。 作者签名酗导师繇日期:驴) ! ni 矿 上海师范大学硕士研究生学位论文基于模型的g u i 软件测试框架研究 1 1 论文研究背景 第一章绪言 图形用户界面( g u i ) 已经成为用户与软件交互的一种必不可少的方式。g u i 是软件底层代码的前端,软件的使用者通过g u i 和软件进行交互,g u i 通过消息传 递或者方法调用的方式与底层代码进行交互。由于图形用户界面提供了使用者一 个非常直观的使用环境,因此现在g u i 程序几乎成为了软件开发的事实准则“1 , 软件开发人员越来越多地使用快速开发环境从而快速构建g u i 程序,这使得“g u i 几乎占据了一个应用程序6 0 的代码量”嘲,另外,现在越来越多对安全性有着 较高要求的程序也采用了g u i 方式,所有这些使得g u i 界面本身的安全性、正确性 及鲁棒性成为了影响整个应用程序性能的一个重要因素,因而g u i 的测试变得尤 为重要。 g u i 软件测试是g u i 软件开发中非常重要的一个环节,是保证软件质量、提高 软件可靠性的关键。g u i 软件测试的整体目标和传统软件测试的目标峨”是一致 的,即以最少的时间和人力找出软件中潜伏的各种错误和缺陷”1 。但是由于g u i 软件和传统的软件有许多不同的特点:g u i 软件以用户事件作为输入和图形化数 据作为输出,它采用的事件驱动模式,具有事件触发的随机性、多任务以及消息 传递等特点,与传统的顺序型程序有很大不同,最大的不同就是程序员预先无 法准确知道程序实际的执行流程,这种“乱序执行”方式使得编程人员不能像测 试传统软件那样对自己所编制程序的行为有一个完整的把握;另外,g u i 交互空 间巨大,其条件组合的数量庞大且多变,传统的测试手段难以覆盖所有的运行状 态,因此g u i 软件测试的方法和内容与传统的软件测试相比有很大的不同”) 。一 些以传统软件开发方法为背景而发展起来的测试技术,它直接测试软件代码,只 关心所使用的测试用例覆盖了多少内部代码、执行路径、分支、条件等,而g u i 测试需测试图形用户界面中的构件“”、测试界面中事件之间的交互关系,用户通 过与图形的交互来触发相应的事件进而与内部的代码及业务逻辑发生交互o ”,因 此传统软件测试方法不能直接适用于g u i 软件测试。所以g u i 软件测试是目前软件 测试研究的热点之一。 到目前为止,国内外的一些研究工作者已经在g u i 软件测试方面取得了一些 成果,他们利用g u i 软件的基于事件的特性来开发新的g u i 软件测试技术“”“。 如在测试用例生成策略方面:a t i fm m e m o n 。”等人先后提出了基于目标的测试 用例生成方法以及采用人工智能规划自动产生g u i 软件测试用例的方法:m a r l o n 上海师范大学硕士研究生学位论文 基于模型的g u i 软件测试框架研究 v i e i r a “”等提出了基于统一建模语言( u m l ) 模型( 用例图和活动图) 的测试用例 生成方法;北京航空航天大学的刘超根据交互软件的可能交互过程提出了基于程 序交互流程图的测试用例生成策略“”等,除了这些方法外,比较传统的测试具有 交互性质的软件一般采用f s m ( f i n i ts t a t em a c h i n e ) 即有限状态机技术“”,对 交互过程中程序可能处于的状态进行模拟,从而构造测试用例。在g u i 回归测试 方面,现在运用比较多的是“记录回放”技术“”,这种技术先将测试者的标 准测试过程以简单的脚本形式记录下来,测试时自动回放所有这些操作以检验是 否会引发新的问题。上述这些研究成果在g u i 钡g 试的某些方面是非常有用的,但 是它们忽略了整个过程。由于各个工具都是独立开发的,因而它们之间不兼容, 实践中很难在一个测试计划中综合使用这些工具。 但也有研究者对g u i 测试的整个过程进行研究,例如a t i fm m e m o n 综合分析 了测试各个阶段的技术,提出y c u l 软件测试框架,它使用g u i 的表示方法( 事 件流图、集成树图) 将软件测试各个步骤的技术关联起来,大大提高了g u i 测试 的效率。但也存在着不足:g u i 表示方法是完全根据规格说明得到的,是基于模 型的黑盒测试,底层代码的测试不充分;测试用例生成阶段,利用计划目的生成 测试用例的方法降低了事件覆盖率;回归测试阶段,选择性回归测试只能对g u i 结构变化的部分进行测试,无法检测由事件底层代码改变引起的错误。 基于以上不足,本文在深入研究原测试框架基础上,改进了原测试框架,重 点研究了框架中的g u l 分析方法、测试用例的生成及选择性回归测试的方法。为 提高事件覆盖率、事件程序内部的逻辑覆盖率,在g u l 分析方法中,还对g u i 代码 进行了研究,构造了用于g u i 测试的四种不同层次的g u i 表示方法;同时,结合黑 盒测试、白盒测试思想,提出了复合性测试方法:在原回归测试方法中添加事件 程序内部结构级的比较,提出了新的选择性回归测试方法。改进后的测试框架提 高了测试的充分性、准确性及灵活性。 1 2 论文的主要工作 论文的主要工作包括以下几个方面: ( 1 ) 研究原g u i 软件测试框架,分析该框架的优缺点,针对它的缺点,本文 提出了改进的g u i 软件测试框架。 ( 2 ) 重新划分测试单元及单元测试的层次,提出g u l 分析方法,生成适用于 测试各个步骤需要的不同层次的g u i 表示方法,分别为界面调用关系图、对象一 事件分析图、事件关系流图和事件程序控制流图。 ( 3 ) 研究黑盒测试、白盒测试思想,提出了复合性测试方法。在原框架计 划规划方法的基础上,加入了关联关系测试、结构化测试以及基本路径测试。 2 上海师范大学硕士研究生学位论文基于模型的g u 软件测试框架研究 ( 4 ) 研究测试覆盖准则,定义针对复合性测试的、基于各个g u i 表示方法的 覆盖准则,包括界面间覆盖准则、界面内覆盖准则、基本路径覆盖准则等。 ( 5 ) 研究原测试框架中的预测结果分析器,改进预测结果分析算法,灵活控 制实际状态与预期状态的比较频率。 ( 6 ) 在原回归测试方法中添加事件程序内部结构级的比较,提出了新的选择 性回归测试方法。不仅利用g u i 界面结构的变化来识别并修复不可用测试用例, 用于回归测试;还对可用测试用例进行筛选,把那些受事件代码修改影响的可用 测试用例也作为回归测试的测试用例。 1 3 论文创新点 论文的创新点如下: ( 1 ) 提出新的单元测试层次,构造不同层次、适用于复合性测试各个步骤的 g u i 表示方法。 ( 2 ) 结合了黑盒测试、白盒测试、提出了复合性测试用例生成方法。提高了 程序内部的逻辑覆盖率和测试的充分性。 ( 3 ) 定义了适用于复合性测试的基于g u i 表示方法的覆盖准则。 ( 4 ) 改进了结果预测分析算法,提高了测试的灵活性。 ( 5 ) 提出了新的回归测试方法,除了能测试g u i 结构变化引发的错误外,还 能测试出由于g u i 程序内部结构变化而引发的错误,提高了测试的准确性。 1 4 论文实例说明 本论文实例取自上海市经委市重点产业技术产学研联合攻关项目“s d 空运物 流进出口业务处理系统”项目中的部分界面,为了便于说明,界面经过了一些简 化。 “s d 空运物流进出口业务处理系统”主要管理从计划、交接、出入库、单证、 客户服务、报关到计费等一系列业务。分为计划指令、仓库、单证管理、客户服 务、报关、业务审批、财务结算、代码等八大模块。其中每个模块又分为多个不 同的子模块,在本论文中,把这每个子模块作为相对独立的一个功能块,即一个 测试单元。本论文所用实例是仓库模块中的入库作业子模块,该功能为在货物交 接后,将入库的货物数据录入电脑,子模块由交接单查询界面、总单入库界面、 分单入库界面、分批明细界面组成,作为一个测试单元。 点击入库作业子功能,进入交接单查询界面;选中查到的总单交接信息,进 入总单入库界面,或选中查到的分单交接信息,进入分单入库界面:点击总单入 3 上海师范大学硕士研究生学位论文基于模型的g u i 软件测试框架研究 库界面或分单入库界面中的“分批明细”按钮,进入分批明细界面。 总单入库界面如图1 1 所示: 图1 1 总单入库界面 此界面的功能是填写总单入库信息,输入总运单号、重量、件数、选择分批 标识,另外,通过输入库位号、件数,点击库位提交来添加库位信息,在库位信 息以及一般信息录入完后,点击提交进行保存。注意的是点击提交前,总运单号、 件数必须不为空,且库位件数总和应该与件数一致。在提交成功、分批标识被选 中的情况下,方可点击分批明细进入分批明细界面。点击取消按钮则退出此界面。 1 5 论文章节安排 本文的章节安排如下: 第一章绪言。介绍了论文的研究背景、主要工作、论文创新点、论文中的 实例说明及论文章节安排。 第二章g u i 测试概述。概述了什么是g u i 、g u i i 卿( i 试的特点、g u i 测试的过程; 介绍了开发g u i 测试框架的必要性及面对的挑战,详细分析了原有g u i 软件测试框 架及其优缺点,并在此基础上提出了改进的g u i 测试框架,包括g u i 表示方法、测 试用例生成、测试用例执行及结果预测分析、回归测试等阶段。 第三章g u i 表示模型。研究了框架中的g u i 表示方法。重新划分了测试单元 及单元测试层次;详细介绍了构造四种适用于g u i 测试各个阶段的不同层次的g u i 表示模型的方法,这四种模型分别是界面调用关系图、对象一事件分析图、事件 关系流图以及事件程序控制流图。 第四章测试用例生成方法。定义了g u i 钡o 试用例的表示方法。着重介绍了复 t 上海师范大学硕士研究生学位论文基于模型的g u i 软件测试框架研究 合性测试用例生成方法各步骤的实现,定义了适用于复合性测试用例生成方法的 测试覆盖准则及评价覆盖的方法。最后用实例证明了复合性测试用例生成方法在 提高测试覆盖率方面的有效性。 第五章测试结果预测分析。简述了测试用例执行及结果提取方法。详细研 究了测试结果预测分析技术,介绍了测试结果预测分析器的功能结构、测试结果 预测分析器中预期状态生成器和验证器的功能和具体实现方法。最后给出了结果 预测分析算法。 第六章回归测试管理。给出了回归测试器的结构,详细介绍了回归测试器 中测试用例检查器、测试用例修补器、测试用例筛选器的功能以及具体实现方法, 并用实例加以分析。最后介绍了整个回归测试的管理过程。 第七章总结与展望。对本文的工作进行了总结并提出下一步的工作。 5 上海师范大学硕士研究生学位论文 基于模型的g u l 软件测试框架研究 第二章g u i 测试概述 2 16 u i 简介及g u i 测试特点 2 1 1g u i 简介 g u i 是指图形用户界面( g r a p h i c su s e ri n t e r f a c e ) ,它使用图形的方式, 借助菜单、按钮等标准界面元素和鼠标的操作,帮助用户方便地向计算机系统发 出指令、执行操作,并将系统运行的结果同样以图形方式显示给用户。例如:用 户可以在文本框内键入信息,再单击按钮,然后计算机系统根据用户输入的信息 进行某种运算或者显示某些内容。当今的绝大部分的软件通过图形用户界面和用 户进行交互。g u i 具有层次结构,这种层次结构可以通过窗口、对话框、层次菜 单中事件的分组表现出来m 。 定义1 :图形用户界面( g u i ) 是一个软件系统的分级的、图形化的前端,它 接收用户生成的或者系统生成的事件,产生确定的图形输出。g u i 包含图形化控 件,每个控件有一个固定的属性集合。在g u i 执行过程中的任一时刻,这些属性 都有离散值,这些值的集合构成了g u i 的状态。 上述定义的g u i 仅仅是众多g u i 类型中的某一类,这类g u i 都有一个固定的事 件集合,这些事件在具有离散属性值的g u i 控件上执行,产生确定的输出结果。 本文所有的方法、技术都只针对于此类g u i 而言的。 2 1 26 u i 测试特点 由于g u i 自身的特点使得g u i 澳y 试与传统软件测试有以下几方面的不同: ( 1 ) 一个g u i 的交互空间是十分巨大的“1 每一个不同的g u i 事件序列将导致 一个不同的状态,每一个g u i 事件需要用所有的这些状态来评价。大量可能的状 态导致大量需要广泛测试的输入重排列。 ( 2 ) 由于g u i 程序属于事件驱动程序,用户通过与图形的交互来触发相应的事 件进而与内部的代码及业务逻辑发生交互,因此,不能像传统软件那样,通过所 使用的测试用例到底覆盖了多少内部的代码、执行路径、分支、条件等来度量覆 盖率,而是要看每一代码段有多少不同的状态被测试了。 ( 3 ) 测试用例执行中每一步后的状态验证也是g u i 测试中非常重要的方面。一 个不正确的g u i 状态将导致意想不到的结果,因此,一旦发现错误,必须立刻终 止测试用例的执行;另外,如果不在每一步后都进行状态的检测,就很难识别错 误的真正原因。 6 上海师范大学硕士研究生学位论文 基于模型的g u i 软件测试框架研究 ( 4 ) 由于用户对于各个事件的不同触发顺序使得每一次实际执行的完整程序 都是不一样的,换句话说,这相当于将完整程序分割成许多程序段( 事件代码段) , 每次按不同顺序( 触发事件的顺序) 组成完整程序运行,因此,这种。乱序执行” 方式使得编程人员不能像以往那样对自己所编制程序的行为有一个完整的把握, 由于交互空间的庞大,必然会有大量隐含的操作路径被实现人员无意引入程序, 这些操作路径多数会引起潜在的安全漏洞甚至导致整个程序的崩溃,测试人员很 难确定其设计的测试用例实际检测错误的能力。 ( 5 ) g u i 程序的回归测试对于测试人员来说也是个挑战,即使简单地修改事件 代码而不对原有的界面或操作模式做修改也将产生问题,因为改变的代码将改变 许多原有的状态并可能引入新的状态,由于现在越来越多地使用快速开发工具, 界面的更改变得十分方便,这导致了图形用户界面在不同版本的软件中可能产生 很大的变化,如果没有进行详细的回归测试,那么引入新错误将是不可避免的。 2 2g u i 测试过程 尽管g u i 软件有自己的特色。比如用户事件输入、图形数据输出等,与传统 软件不同,需要开发不同的测试技术,但g u i 的测试过程与传统软件的测试过程 相似,传统软件的测试过程同样适用于g u i 软件。1 ,主要包括以下过程: ( 1 ) 确定测试什么。测试的第一步,先要使用一些规则即覆盖准则来决定软 件中哪些东西需要测试。在g u i 软件中,覆盖准则要求执行每个g u i 事件并且确认 运行结果是否正确。 ( 2 ) 生成测试输入。测试输入是测试用例的重要组成部分,它根据软件的规 格说明以及软件的结构生成。对于g u i 软件,测试输入包括数据输入用户事件, 有鼠标的点击、菜单的选择和对g u i 对象的操作。 ( 3 ) 生成预期的测试输出。测试结果分析器产生预期的输出,用于判断软件 在测试过程中运行结果是否正确。测试结果预测分析器判断软件实际输出是否与 预期输出一致。在g u i 软件中,预期的输出包括屏幕快照、位置和窗口标题等。 ( 4 ) 执行测试用例和检验输出。在软件上执行测试用例,把实际执行结果与 预期的输出比较,执行检查的过程就是执行测试用例指定的输入事件,将输出结 果与预期结果进行比较。 ( 5 ) 确定g u i 是否被充分测试。一旦所有的测试用例执行完毕,就要分析软件, 看它哪些部分已经测试。在g u i 软件中,需要这样一类分析来识别测试过的以及 在测试中遗漏的事件和g u i 状态。 ( 6 ) 执行回归测试。回归测试即在软件修改以后进行再测试,用于确保软件 修改部分的正确性、确保修改没有恶意的影响以前测试过的部分。回归测试用例 7 上海师范大学硕士研究生学位论文基于模型的g u i 软件测试框架研究 集包括:1 ) 原有测试用例的一部分,用于测试原有软件中受到修改影响的那一部 分;2 ) 新的测试用例,用于测试软件中受到修改影响但又没有被原测试用例测试 到的部分。在g u i 软件中,回归测试包括分析g u i 对象外观的改变、选择需要重新 运行的测试用例及生成新的测试用例。 任何的g u i 软件测试方法都必须执行以上的所有步骤。基于以上基本步骤, 并结合所要用到的各步骤技术,提出了本文中g u i 测试的具体步骤: ( 1 ) 以功能划分测试单元( 一个相对独立的子功能模块作为一个测试单元) 。 ( 2 ) 根据测试单元的规格说明、g u i 结构、g u i 代码,构造四种不同层次的g u i 表示方法,分别用于界面问、界面、界面内以及事件内四个不同的单元测试层次; 这一步非常重要,采用这四种表示方法,可以把g u i 软件测试各个步骤统一起来, 以便各个步骤的技术互相兼容。 ( 3 ) 确定测试什么,使用界面间覆盖准则、界面内覆盖准则、基本路径覆盖 准则来决定界面之间、界面内以及事件程序中哪些东西需要测试。 ( 4 ) 利用复合性测试用例生成方法生成测试用例。 ( 5 ) 生成测试用例预期输出。 ( 6 ) 执行测试用例,比较期望输出与实际输出。 ( 7 ) 根据覆盖准则评价测试用例的覆盖情况( 覆盖率) ,识别测试过的以及在 测试中遗漏的事件、事件参数和g u i 状态。 ( 8 ) 根据执行结果( 覆盖情况及测试用例执行情况) 及新的需求需要修改测 试单元。 ( 9 ) 根据修改结果调整原测试用例集,把原测试用例集中用于测试那些受到 修改影响的软件部分的那部分测试用例用于下一次测试。 ( 1 0 ) 根据覆盖情况报告及新添加部分生成新的测试用例,用于测试软件中受 到修改影响但又没有被原测试用例测试到的部分。 其中( 5 ) 一( 1 0 ) 步为回归测试过程,在软件的整个开发过程中重复进行。 2 3g u i 测试框架 2 3 1 开发g u i 测试框架的必要性 目前,g u i 软件测试设计者大都依赖记录回放工具来测试g u i ,即先将测试 者的标准操作过程以简单的脚本形式记录下来,测试时回放所有这些操作以检验 是否会引发新的问题。使用这些工具的过程大部分是人工的,这使得g u i 软件测 试的效率低下并且代价昂贵。为了提高测试的效率,上述的每个步骤都需要自动 化。已经有很多研究是关于如何设计一些自动化的工具,比如,利用有限状态机 s 上海师范大学硕士研究生学位论文基于模型的g u 软件测试框架研究 ( f s m ) 模型设计测试用例产生器,使用l a t i ns q u a r e 方法进行回归测试等。虽然 这些方法对于自动化g u i 测试的某些方面是非常有用的,但是它们忽略了整个过 程。测试设计者要想使用这些独立的工具就必须了解各种工具的特性。此外,由 于这些工具是独立开发的,因而它们之间不兼容,一个工具产生的结果无法被另 一个工具直接使用,实践中很难在一个测试计划中综合使用这些工具,因此开发 一个g u i 测试框架把各个阶段统一起来非常的必要。 开发一个g u i 软件测试框架,它包括执行g u i 软件测试各个步骤的技术,在实 现g u i 测试框架的过程中必须注意如下几个方面: ( 1 ) g u i 软件测试各个阶段的技术必须统一起来,采用相同的表示方法,以便 一个阶段采用的工具与另一阶段的工具相兼容。 ( 2 ) g u i 软件测试各个阶段都尽可能自动化,以便简化软件测试者的工作。 ( 3 ) g u i 软件测试各个阶段应该是高效的,因为软件测试通常是一个乏味的、 代价昂贵的过程。低效率往往令人沮丧,并使人最终放弃。 ( 4 ) 各阶段技术应该是鲁棒性的。当g u i 进入一个异常状态时,测试算法应该 检查出错误状态和所有可能的用于调试的信息。 ( 5 ) 测试框架必须是可移植的。在一个平台上,产生和收集到的测试的信息 ( 如测试用例、预期结果、覆盖报告和错误报告) 应该可以在相同g u i 软件运行的 其它平台上可以使用。 ( 6 ) 各阶段的技术应该是通用的,以便能在尽可能多的g u i 类型中得到应用。 2 。3 。2 开发g u i 测试框架的挑战 开发符合上述目标的g u i 软件测试框架极富挑战性蚴。 ( 1 ) 如何构建能适用于g i j i 测试各个步骤不同技术的g u i 表示方法。为了有效 的捕捉g u i 事件,构建的g u i 表示方法需要高度的抽象。另外,这种表示方法必须 能够全面的捕捉g u i 界面信息、g u i 底层事件代码信息,以便能更加全面的检测g u i 软件的正确性。 ( 2 ) 如何开发g u i 澳o 试覆盖准则。由于g u i 的特性,g u i 澳o 试的覆盖准则不同于 传统软件的覆盖准则,因此需要开发一种能恰当分析g u i 表示方法、并确定所选 测试用例是否充分测试g u i 的g u i 测试覆盖准则。 ( 3 ) 如何选择一种好的测试用例生成方法,使生成的测试用测既能尽可能多 的测出界面错误,又能尽可能多的测出事件代码引发的错误。另外一个有关测试 用例产生的难题是如何控 l 崮j g u i 软件的状态。比如,如何使g u i 软件进入测试用例 的初始状态。对于每个测试用例,可能需要执行若干个事件后才能获得它需要的 初始状态。 9 上海师范大学硕士研究生学位论文 基于模型的g u i 软件测试框架研究 ( 4 ) g u i 软件的测试结果分析不同于传统软件的测试结果分析。测试结果分析 用于确定软件在测试时执行结果是否正确。在传统的软件测试中,测试结果分析 在测试用例执行完之后才触发。测试用例执行最终的输出结果与预计输出结果进 行比较。对于g u i 软件,测试结果分析和测试用例的执行是交错进行的。因为不 正确的g u i 状态会引起非预期的结果,如果此时继续执行无效的测试用例,测试 用例中的事件就可能根本无法找至u g u i 对象。因此一旦软件运行出现错误,测试 用例的执行应当立刻终止。如果测试用例每一步执行后不进行验证,可能很难找 到错误的真正原因,因为可能出现最终输出结果正确而中间输出结果不正确的情 况。因此在g u i 软件测试用例执行的时候,每一步都将输出与预期的结果进行比 较。验证和测试用例的执行交织在一起,使g u i 软件的测试显碍非常复杂,因为 首先必须为每一个事件产生预期的输出,另外,每一个事件发生后必须检查执行 结果的正确性。 ( 5 ) 如何选择g u i 软件的回归测试方法。在传统软件的回归测试中一般采用选 择性回归测试方法,但对于g u i 系统,此方法相对来说不是很成熟,一般都是完 全基于界面元素的黑盒测试。当软件内部逻辑发生变化时,这些方法将无能为力。 另外如按钮的移动、位图的改变以及菜单结构的重组都可能导致旧测试用例变得 毫无价值,测试结果预测分析器产生的预期结果也可能过时。由于g u i 软件往往 是用可视化工具开发,因而回归测试对于g u i 尤其重要。g u i 软件在原有的基础上 不断的改变、测试,因此需要有效的技术检测g u i 的变化,并且修改过时的测试 用例。 l 2 3 3g u i 软件测试框架 a t i f m m e m o n 综合分析了软件各个阶段的技术,提出g u i 软件测试框架嘲, 它创造性地使用g u i 表示方法( 事件流图和集成树图) 将软件测试各个步骤的技 术关联成一个统一的测试框架。这个框架包括了许多交互组件:g u i 表示方法、 测试覆盖评价器、测试用例生成器、测试用例执行器、测试结果预测分析器和回 归测试器,框架结构如图2 1 所示。 1 0 上海师范大学硕士研究生学位论文基于模型的g u i 软件测试框架研究 图2 1g u i 软件测试框架 下面是g u i 软件测试框架主要部件的简单描述: ( 1 ) g u i 表示方法:g u i 表示方法是这个框架的核心部分。它把一个g u i 软件表 示成对象的属性的集合和那些改变对象属性的事件。从软件的规格说明和g u i 的 结构中可以获得g u i 行为模型的描述,分别为事件流图和集成树图,这两种模型 在测试用例生成器、测试结果预测分析器、测试用例执行器、回归测试器中得到 使用。另外,为了有效性和可扩展性,g u i 被分解成层次型的部件,即每个部件 就是一个测试单元。 ( 2 ) 测试覆盖评价器:测试覆盖评价器采用基于事件的覆盖准则,即利用事 件及事件序列是否被充分覆盖来评价测试充分性。通过覆盖评价器可以判断测试 用例生成器生成的测试用例的数量是否足够,分布是否合理。 ( 3 ) 测试用例生成器:测试用例生成器采用人工智能规划技术( p a t h s 方法) 。 这种思想来自于测试设计者经常发现软件的使用者易于描述目标而难以指出实 现这个目标的事件序列。具体方法为由测试设计者提供常用任务的初始状态和终 止状态的说明,规划系统为每个指定任务产生规划,每个产生的规划表示一个测 试用例。测试用例生成器根据测试覆盖评价器的结果可以调整产生的测试用例的 数量和分布,生成的测试用例提交给测试用例执行器执行获得实际的运行结果, 同时提交给测试结果预测分析器以产生测试用例的预期结果。 ( 4 ) 测试用例执行器:测试用例执行器设计并实现测试的自动执行。测试用 例输入到测试用例执行器,测试用例执行器执行测试用例中的每一个事件。测试 执行器产生物理事件,比如鼠标和键盘事件,来模拟g u i 软件的使用者。它捕获 1 1 上海师范大学硕士研究生学位论文基于模型的g u i 软件测试框架研究 测试用例实际的运行结果,交于g u i l 4 试结果预测分析器,用于进一步的分析。 ( 5 ) 测试结果预测分析器:g u i 澳j 试结果预测分析器根据g u i 描述方法,为每 个测试用例自动预测测试用例中每个事件执行后的预期状态。g u 软件执行时的 实际状态也用对象和属性的方式表示出来。利用测试用例执行器获得的执行时的 实际状态,测试预测器在每个事件后自动比较预期状态和实际状态以检验g o i 软 件的正确性。, ( 6 ) 回归测试器:在软件修改后需要对软件进行重新测试。回归测试器将原 有的测试用例集分为合法的测试用例和非法的测试用例。合法的测试用例对于修 改后的g u i 软件依然能够产生正确的输入输出,而非法的钡4 试用铡不能产生正确 的输入输出。回归测试器采用新的技术修改并重用非法的测试用例,修改后的测 试用例可能更容易发现软件的错误,因为它们测试到受修改影响的软件部分。 2 3 4 改进的g u i 软件测试框架 虽然原测试框架使用g u i 表示方法将软件测试各个步骤的技术关联起来,大 大提高了测试效率,但在应用此测试框架进行g u i 澳j 试中也存在着不足之处: ( 1 ) g u i 表示方法是根据软件规格说明而得到的,没有对程序内部的逻辑结构 进行研究,所以基于此类模型的测试是一种完全基于界面元素的黑盒测试。 ( 2 ) 测试用例生成阶段,它采用了人工智能规划技术( p a t h s 方法) ,利用规 划产生g u i 测试用例,因此测试用例中不可能包括那些对于规划不起作用的事件, 降低了测试中的事件覆盖率。 ( 3 ) 回归测试阶段,选择性回归测试只能对g u i 结构变化的部分进行测试,无 法检测出由于事件底层代码改变引起的错误。 基于以上不足,本文在深入研究原测试框架的前提下,提出了一个改进的g u i 软件测试框架的设计和实现技术。重点研究了框架中的g u l 分析方法、测试用例 的生成及选择性回归测试的方法,特别是在测试用例的生成策略,回归测试方面, 把对于传统软件的白盒测试思想引入至u g u i 的测试中,改进原框架的不足之处, 提高测试的充分性、准确性及灵活性。改进的测试框架如图2 2 所示。 改进的软件测试框架与原测试框架相比,主要有以下几个不同之处: ( 1 ) g u l 分析器:重新划分测试单元和测试层次,通过研究g u i 软件的规格说 明、g u i 结构、g u i 代码,构造用于g u i 测试的四种不同层次的g u i 表示方法,分别 为描述界面间关系的界面调用关系图、描述界面信息的对象一事件分析图、描述 界面内事件间关系的事件关系流图以及描述程序内部逻辑结构的事件程序控制 流图,这四个g u i 模型不仅研究了g u i 的结构,也研究t g u i 底层代码,以适用于 后面各阶段的技术。 1 2 上海师范大学硕士研究生学位论文 基于模型的g u l 软件测试框架研究 ( 2 ) 测试用例生成器:在p a t h s 方法的基础上加入关联关系测试、结构测试以 及白盒测试思想,提出了复合性测试用例生成方法,提高了程序内部逻辑覆盖率 和测试的充分性。 ( 3 ) 覆盖评价器:定义了适用于复合
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 第九课 我们都能守纪律说课稿-2025-2026学年小学心理健康鄂教版一年级-鄂教版
- Unit2 What's your number(教学设计)-2024-2025学年人教精通版英语四年级上册
- 《第二单元 参考活动2 做出正确的决定》说课稿 -2023-2024学年初中综合实践活动苏少版八年级上册
- 第8课 金鱼饲养教学设计-2025-2026学年小学劳动小学高年级湘教版(广西)
- 2024年秋九年级化学上册 第2单元 课题3 制取氧气说课稿 (新版)新人教版
- Unit 2 No rules,no order Section A 2a-2f 说课稿 2024-2025学年人教版英语七年级下册
- 蔬果种植理论与实践课件
- 《包身工》教学设计 2023-2024学年统编版高中语文选择性必修中册
- 高中信息技术浙教版:2-3 三维模型创作-教学设计
- 2025年浙江省中考语文试题(含答案解析)
- 2025年法宣试题及答案
- 2025年公租房入住合同范例
- 数学问题对小学生深度学习的引领
- 用友财务软件销售合同
- 《运动损伤与康复》课件
- 北师大九年级数学上册图形的相似《相似多边形》示范课教学课件
- 《XXXX煤矿隐蔽致灾地质因素普查报告》审查意见
- 征兵业务培训
- 2025-2030年中国薄膜电容器市场发展状况及前景规划研究报告
- Unit 6 Useful numbers Part C Project(说课稿)-2024-2025学年人教PEP版(2024)英语三年级上册
- 危险废物处置服务协议
评论
0/150
提交评论