




已阅读5页,还剩78页未读, 继续免费阅读
(计算机软件与理论专业论文)自动化测试平台的设计与实现.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
- 夕 独创性声明 i i i ii ii t11 1111 1 11 1 111l 18 0 2 4 9 2 本人声明所呈交的学位论文是本人在导师指导下进行的研究工 作及取得的研究成果。据我所知,除了文中特别加以标注和致谢的地 方外,论文中不包含其他人已经发表或撰写过的研究成果,也不包含 为获得电子科技大学或其它教育机构的学位或证书而使用过的材料。 与我一同工作的同志对本研究所做的任何贡献均已在论文中作了明 确的说明并表示谢意。 签名:_ 鱼妻日期: l o 年多月7 日 论文使用授权 本学位论文作者完全了解电子科技大学有关保留、使用学位论文 的规定,有权保留并向国家有关部门或机构送交论文的复印件和磁 盘,允许论文被查阅和借阅。本人授权电子科技大学可以将学位论文 的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或 扫描等复制手段保存、汇编学位论文。 ( 保密的学位论文在解密后应遵守此规定) 签名:盘查 导师签名:盟玄 日期:冽口年月7 日 4 j 摘要 摘要 科学技术的巨大发展,使软件产品已经成为人们生活中不可或缺的。软件产 品的广泛使用使人们对软件产品质量的要求不断的提高。做为保证软件质量的方 法之一,软件测试越来越显示出它的巨大优势。然而软件设计规模的增加,软件 产品复杂程度的提升,使软件自动化测试成为软件测试的必要条件。因此,开发 更有利于实施维护和操作的自动化测试平台,并在该测试平台上实现一定的自动 化测试成为了很有意义的事情。 本文首先对软件测试自动化理论进行研究,分析了自动测试的优势和局限 性。然后简单介绍了实际工作中使用的应用软件无线通讯设备配置软件( 简 称w c d c s ) ,并根据自己对该软件的手动测试经验,分析了该应用软件测试自 动化的可行性,并指出了w c d c s 手动测试中可自动测试部分。 随后,本文分析了w c d c s 自动测试过程中遇到的问题和自动化测试工具的 问题。为了解决这些问题,本文以关键字驱动自动化测试框架为基础,并结合作 者w c d c s 手工测试经验,研究和实现了解决这些问题的w c d c s 自动化测试系 统的测试平台。关键字驱动自动化测试框架的使用,使自动测试工具和应用程序 本身成为各自独立的部分,将自动化测试抽象到一个不依赖具体测试设计的级别 上。将该自动测试平台应用于w c d c s 的系统回归测试中,大大地提高了测试效 率,保证了软件质量。该平台的功能特点主要有以下方面: 1 ) 该自动测试平台可以自动完成w c d c s 系统测试的整个过程,包括从测 试用例的设计,测试脚本的生成,测试脚本的执行直到测试结果的记 录,使自动测试变的更加方便,更加高效; 2 ) 用关键字表示的指令序列来设计测试用例,每条指令语义明确,避免了 自然语言描述的二义性问题; 3 ) 实现了基于d e p e n d e n c y 测试用例的自动生成; 4 ) 测试脚本的生成过程对测试人员是透明的,测试人员可以不用再关注脚 本库的开发和使用,把自己从脚本里面解脱出来; 5 ) 以数据库的形式存放关键字映射信息和w c d c s 控件信息,最小化软件 自身的变动对测试带来的影响,使脚本的维护更加容易; 摘要 6 ) 利用插件式技术设计整个系统架构,使每个子模块成为独立的个体,使 子模块间的耦合度降到最低; 7 ) 将脚本函数以控件的方式封装,扩大了可测目标软件的范围,使得目前 基于w i n d o w s 平台开发的所有w c d c s 都可以在该平台上实现自动测 试,具有较强的通用性; 8 ) 该平台中可以集成多种商业测试工具,并为不同的测试工具预留了接 口,具有很强的扩展性。 最后,作者以w c d c s 中的部分测试用例为实验对象,对自动测试平台进行 了实现,并给出了实现结果。证明了该自动测试平台的优越性。 关键词:自动化测试,自动化测试平台,软件测试,测试用例 i i a b s n 己a c t a b s t r a c t t h eh u g e n e s se v o l u t i o no ft e c h n o l o g ym a k e st h es o f t w a r e p r o d u c t sb e c o m e n e c e s s i t yi np e o p l e sl i f e a c c o r d i n g l y ,p e o p l e sr e q u i r e m e n tf o rt h eq u a l i t yo fs o f t w a r e i sh i g h e ra n dh i g h e r a so n eo ft h e s o f b v v a r ea s s u r a l l c ew a y s ,s o f t w a r et e s t i n gi s b e c o m i n gm o r ea n dm o r ei m p o r t a n t h o w e v e r w i mt h ee n h a n c e m e n to f s o f t w a r es i z ea n dt h ei m p r o v e m e n to fs o f t w a r e c o m p l e x i t y , a u t o m a t i o nt e s tb e c o m e st h ec i r i t i c a lp a r ti ns o f t - w a r et e s t i n g t h u s ,i ti sa m e a n i n g f u lw o r kt od e v e l o pa na u t o m a t i ct e s tp l a t f o r ma n di m p l e m e n ts o m ea u t o m a t i o n t e s t so nt h ep l a t f o r m t h ef i r s tp a r to ft h i st h e s i sm a i n l yf o c u s e so nt h es t u d yo ft h ec u r r e n tt e c h n o l o g y a n dt h e o r yb e i n ga p p l i e do na u t o m a t i o nt e s ta n dt h ea n a l y z i n go ft h ea d v a n t a g e sa n d l i m i t a t i o n si na u t o m a t i o nt e s t t h e nt h et h e s i si n t r o d u c e st h ea p p l i c a t i o no fs o f t w a r e w c d c s a n dw i t ht h ee x p e r i e n c eo fm a n u a ls y s t e mt e s t i n go nw c d c s ,w ea n a l y z e t h ef e a s i b i l i t yo fw c d c s s y s t e mt e s t i n ga u t o m a t i o na n df i g u r eo u tt h ep a r t sw h i c h c a l l b et e s t e db ya u t o m a t i o nt e s t t h e n ,t h i st h e s i sa n a l y z e st h ep r o b l e mo ft h ea u t o m a t i ct e s tt o o l sa n da u t o m a t i o n t e s tf o rw c d c s a n dw i 也t h ee x p e r i e n c eo fm a n u a ls y s t e mt e s t i n go nw c d c s ,a l l a u t o m a t i ct e s tp l a t f o r mh a sb e e nd e s i g n e db a s e do nt h ea u t o t e s t i n gf r a m e w o r ko f k e y w o r d d r i v e n ,t h ea u t o t e s t i n gf r a m e w o r kh a ss t r o n gg e n e r a l i t ya n de x p a n s i b i l i t y t h eu s i n go fk e y w o r d d r i v e ns o f t w a r e t e s t i n g f r a m e w o r ks e p a r a t e st e s t sf r o m c o m m e r c i a lt e s t i n gt o o la d o p t e dw i t h i nt h et e s t i n gp l a t f o r m a n di tm a k e st e s t st ob e i n d e p e n d e n tw i t ht h ec h a n g e so ft h ea p p l i c a t i o n t h eu s i n go ft h ea u t o m a t i ct e s t f r a m e w o r ks h o r t e n st e s tp e r i o d ,i m p r o v e st e s te f f i c i e n c y , r e d u c e st e s tr e s o u r c e sa n d c o n s o l i d a t e st h ew c d c ss o f t w a r eq u a l i t yw h e ni ti sa p p l i e di nw c d c ss y s t e mt e s t t h ec h a r a c t e r i s t i c so ft h i sp l a t f o r ma r el i s t e db e l o w : 1 ) t h ea u t o m a t i ct e s tf r a m e w o r kc a nt e s ta l lt h ep r o c e d u r e so fw c d c ss y s t e m t e s ta u t o m a t i c a l l y , i n c l u d i n gt e s tc a s ed e s i g n ,t e s ts c r i p tc r e a t i o n ,t e s ts c r i p t e x e c u t i o na n dt e s tr e s u l t sl o g t h i si n t e g r a t i o nm a k e si tf e a s i b l et oi m p l e m e n t a u t o m a t i o nt e s tc o n v e n i e n t l ya n de f f e c t i v e l y i a b s t r a c t 2 ) t e s tc a s ei sd e s i g n e du s i n gk e y w o r dc o m m a n d s ,e v e r yc o m m a n dh a si t se x a c t s e m a n t i cm e a n i n ga n dt h i sa v o i d sp r o b l e m st h a tn a t u r el a n g u a g em a y b r i n g 3 ) i na u t o m a t i c t e s t f r a m e w o r k ,d e p e n d e n c yt e s t c a s ec a l lb eg e n e r a t e d a u t o m a t i c a l l y 4 ) t e s ts c r i p ti sp r o d u c e da u t o m a t i c a l l y ,w h i c hm a k e st e s te n g i l l e e r $ n on e e d t o c a r ea b o u tt h ed e v e l o p m e n to fs c r i p tl i b r a r y ,f r e e st e s te n g i n e e r sf r o mt h eb i n d w i t ht e s tt o o l sa n d c o r r e s p o n d i n gs c r i p t 5 ) k e y w o r d sm a p p i n gi n f o r m a t i o na n dw c d c sc o n t r o li n f o r m a t i o na r es t o r e di n d a t a b a s e t h eu s eo fd a t a b a s el o w st h ei m p a c to nt e s tt h a tc a s eb yu p d a t e so n w c d c si t s e l ft oam i n i m a ll e v e l 6 ) t h es t r u c t u r eo ft h ep l a t f o r mi sb a s e do np l u g i n t h es u b m o d u l eo ft h e p l a t f o r mi st h ei n d e p e n d e n tm o d u l e 7 ) t h e t e s ts c r i p tf u n c t i o ni sc a p s u l a t e da sc o n t r o l ,w h i c hm a k e st h ea u t o m a t i ct e s t p l a t f o r mc a l lt e s ta l lw c d c sp r o d u c t i o n sv e r s i o no nw i n d o w sp l a t f o r m 8 ) m a n yk i n d so fc o m m e r d a lt e s tt o o l sc a nb ec a p s u l a t e di nt h ep l a t f o r m ,a n d i n t e r f a c e sa r ek e p tf o rd i f f e r e n tk i n d so fc o m m e r c i a lt e s tt o o l s f i n a l l y , t a k i n gs o m et e s t i n gc a s e so fw c d c s a st e s to b j e c t ,w ew i l lc o m p a r et h e t e s tr e s u l to fm a n u a lt e s t i n ga n da u t o m a t i o nt e s tt op r o v et h ea d v a n t a g eo ft h ea u t o m a t i c t e s tp l a t f o r m k e y w o r d s :a u t o m a t i o nt e s t ,a u t o m a t i ct e s tp l a t f o r m ,s o f t w a r et e s t i n g ,t e s tc a s e i v 目录 目录 第一章绪论1 1 1 课题研究背景和意义l 1 2 软件测试的国内外研究现状1 1 3 自动化软件测试技术研究2 1 4 课题内容和组织5 第二章自动测试平台概述6 2 1 应用软件w c d c s 简介6 2 2w c d c s 自动化测试可行性分析6 2 3 自动测试平台开发背景8 2 4 章节总结1 0 第三章自动测试平台架构设计1 1 3 1 自动测试平台开发目标11 3 2 自动测试平台的框架设计1 2 3 3 自动测试平台系统结构设计思想1 6 3 。4 自动测试平台的逻辑结构设计一1 8 3 5 本章总结。1 9 第四章自动测试平台详细设计与实现2 0 4 1 自动测试平台的系统结构2 0 4 2 系统模块详细设计和实现2 2 4 2 1 配置模块2 2 4 2 1 1 模块功能设计2 2 4 2 1 2 模块界面设计2 4 v 目录 4 2 2 数据库模块2 4 4 2 2 1 模块功能设计2 5 4 2 2 2 数据库功能实现2 8 4 2 3 测试用例开发模块3 0 4 2 3 1 测试指令集设计31 4 2 3 2 模块功能设计3 5 4 2 3 3 模块界面设计3 7 4 2 3 4d e p e n d e n c y 测试用例的自动生成3 8 4 2 4 测试用例解析模块4 7 4 2 4 1 模块结构设计4 7 4 2 4 2 模块功能设计4 9 4 2 4 3 模块界面设计5 2 4 2 5 脚本执行模块5 3 4 2 5 1 模块功能设计5 3 4 2 5 2 脚本批量自动执行的实现5 4 4 2 5 3 模块界面设计5 5 4 2 6 自动测试脚本库模块5 6 4 2 6 1 模块功能设计5 7 4 2 6 2 模块结构设计5 8 4 3 测试实现及结果分析6 3 4 3 1 测试实现6 3 4 3 2 自动测试和手动测试结果比较6 4 4 4 本章总结6 6 第五章总结与展望6 7 致谢6 9 参考文献7 0 攻读硕士学位期间的研究成果7 3 v i 第一章绪论 1 1 课题研究背景和意义 第一章绪论 科学技术的巨大发展,使人们生活的各个领域都充斥着软件产品的“身 影”,软件产品已经成为人们生活中不可或缺的。软件产品的广泛使用使人们对 软件产品质量的要求也在不断的提高。提高软件质量,保证软件产品的可靠性成 为软件产品优劣的重要参数。 软件测试作为保证软件质量的有效方法,在保证软件质量,提高软件可靠性 的过程中发挥着越来越重要的作用,它占软件开发成本的5 0 一7 5 t 1 1 。随着软件 产品规模的扩大,复杂性的提高,手工测试花费的成本很高,但效率却达不到预 期的要求 2 】。而自动化测试技术以其高效,快速的测试方式,缩短了软件测试周 期,降低了软件成本。自动化测试在软件测试过程中扮演着越来越重要的角色。 然而自动测试的发展,使自动测试工具多样化,专业化。用多个自动测试工 具实现一款软件的测试会大量的人力物力。因此,开发更有利于实施维护和操作 的自动化测试平台,并在该测试平台上实现一定的自动化测试成为了很有意义的 事情【3 】。主要原因有以下几个方面: 测试数据库的更新使已有的软件自动化测试工具失去效用;由于产品生产分 工的细化,每个测试工程师只熟悉几个固定的功能模块,如果要求每个测试人员 都能将自己熟悉功能模块的测试用例翻译为自动测试脚本,是非常耗费资源和时 间的;不同的自动测试工具采用的标准有可能不同。如果能用一个平台开发出适 用于不同标准下的测试代码,将大大提高自动化测试效率。 具有通用性测试平台的开发,以及在新的测试用例自动生成理论和测试用例 筛选理论的提出,为自动化测试技术的发展起到了有力的推动作用。 1 2 软件测试的国内外研究现状 从2 0 世纪6 0 年代中期开始,人们已经对软件开发过程开始思考,并在潜意 识中已经出现了软件测试的概念。到2 0 世纪7 0 年代,测试理论和技术步入了正 式发展阶段。1 9 7 2 年首次以软件测试为主题的学术会议在美国北卡罗来纳大学的 电子科技大学硕士学位论文 召开,宣告了软件测试理论和技术已经开始成为计算机领域研究的主要方向之一 【4 】。自此,计算机领域在软件测试方向有了长足的发展。 软件测试技术在软件产业中的应用,使软件失误的预计费用降低,减少了项 目开发的风险【5 1 。自9 0 年代以后,面向对象技术的迅速发展使得软件测试技术同 软件开发技术一起上升到了一个新的高度。当前,国内外对软件测试的研究主要 集中在软件测试过程的改进、自动化测试工具的开发、自动化测试平台、测试用 例生成等方面。很多专业化自动测试工具已经被开发出来,例如i b m 公司开发的 r a t i o n a lr o b o t ,可以对使用各种集成开发环境( i d e ) 和语言建立的软件应用程 序,创建、修改并执行自动化的功能测试、分布式功能测试、回归测试和集成测 试【6 】;q t p ( m e r c u r yq u i c k t e s tp r o f e s s i o n a l ) 采用关键词驱动测试的理念,是 款具有很强的功能测试的自动化测试工具。 在自动测试方面,w e g e n e r sj 早在1 9 9 7 年就提出了将遗传算法运用于实时软 件的测试中来提高测试的效率【j 7 】;随后,c c m i c h a e l 在2 0 0 1 年提出将改进的 遗传算法应用到动态测试数据自动生成系统中i s 】。d i a ze 在2 0 0 3 年发表的论文 中阐述了在测试用例生成系统中使用禁忌搜索算法可以大大减少测试时间和测试 成本【9 】;m c m i n np 在2 0 0 4 年提出将元启发式搜索技术( m e t a h e u r i s t i cs e a r c h t e c h n i q u e s ) 应用于测试用例自动生成系统中 io 】;tm a n t e r e 在2 0 0 5 年研究了进化 计算方法在软件测试中的应用【l l 】;ms a r m a 在2 0 0 7 年提出了将一个u m l 用例图 转变一个测试用例图表( u d g ) ,同时,将时序图转变为时序图表( s d g ) ,然 后将u d g 和s d g 整合为一个系统测试图( s t g ) ,最后用s t g 生成测试用例的 方法【1 2 】;ea l b a 在2 0 0 8 年提出将并行和顺序进化算法应用到自动测试数据系统 中,这种算法大大提高了测试效率【i 3 1 。 目前,自动化测试在国内正慢慢开始“热 起来,并在国家的宏观调控措施 下逐渐发展起来,使得我国在自动化测试方向也取得了一定的成果。例如北京大 学在黑盒测试技术方面的研究【l4 1 。 1 3 自动化软件测试技术研究 自动化测试是使用测试工具执行测试代码来模拟测试人员测试过程做所作的 操作,完成测试过程。它是管理与实施各种测试活动的方法,即测试用例的设 计,测试脚本的开发与执行,并借助自动测试工具来验证测试需求。 2 第一章绪论 1 3 1 自动化测试的优势与局限性 自动测试显而易见的优势就是能够提高测试效率,这是手工测试无法企及 的,并且它的好处还不止于此【16 】: 1 ) 跨越语言的障碍。随着软件国际化进程的加速,一个软件可能被翻译成 十几种语言,同时也增加了软件测试时的语言障碍。但自动化测试可以 通过替换引用在测试脚本中的目标语言词汇表解决这个问题。 2 ) 摆脱时间的限制。与手动测试相比的一个明显优势就是自动化测试不受 时间的限制,任何时候都可以执行。 3 ) 回归测试的利器。在迭代式增量开发过程中,新版本软件的大部分功能 和界面都相似或完全相同于上一版本,手动回测全部原有功能和界面会 造成大量资源的浪费。成功构建高效的自动化测试,成为了实现高效回 归测试的关键。 4 ) 可保证测试执行过程的一致性和准确性。自动测试是按照测试程序语句 来执行的,一旦测试程序编写完成,每次执行时都不会有偏差。 5 ) 实现手工测试无法做到的测试。有些测试如:压力测试、并发测试、大 数据量测试已经崩溃性测试,靠人力来完成是不可能的。但是,自动测 试可以通过模拟终端的程序轻松做到这一点。 6 ) 较高的功能测试覆盖率。自动测试程序可以用数据驱动的方式,把任意 多组的数据用于测试,可以比较轻松地达到穷尽各种输入数据的目的。 自动化测试自身的优点使它越来越受到测试人员的青睐,但自动化测试也存 在很多局限性。例如【1 。7 】 1 ) 并非所有的测试都可以用自动化来实现,例如使用性能测试、操作系统 或网络的设置测试和兼容性测试等。 2 )自动测试工具不具备创造性,不能处理程序中设计不到的意外事件。 3 ) 受具体项目资源的限制。自动化测试编程是一项很费时间和资金的工 作,安排很多测试人员去做自动化测试是很不现实的;而且购买市面上 现有的商用测试软件需要很多费用。 综上可以看出,自动化测试的优势使很强的,能在繁琐机械的回归测试中极 大地减少人力、物力的消耗,提高软件测试的效率。但自动化测试也不是完美 的,它与手动测试各有优缺点,应该是互补、并存的。只有合理实施自动化测试 才能从中得到益处【1 8 】。 3 电子科技大学硕士学位论文 1 3 2 自动化测试的发展及框架 研究人员在9 0 年代起就已经开始了堆自动化测试技术的研究,那时候研制 出来的测试工具用硬件的方式录制键盘的输入操作并对这些操作进行回放。这些 测试方法易于理解和掌握,但缺少检查点( c h e c k p o i n t ) 功能,维护困难。 上世纪9 0 年代末,自动化测试已经由使用硬件录制的方式转变为通过软件 录制播放( c a p t u r e p l a y b a c k ) 的方式产生测试脚本( s c r i p t ) ,并且增加了检查点 的功能,可以对软件做验证,测试的范围也比硬件方式的自动化方式大了许多 【l9 1 。但当软件有变动时测试脚本也需要同步更新,整个测试脚本需要重新录制。 这一问题的存在使软件测试科技人员进行了长期的研究,于是在2 0 0 1 年自 动化测试的第三个阶段测试框架( t e s tf r a m e w o r k ) 阶段来临了,该方法主要 是把测试脚本抽象化,可以让即使不懂测试脚本甚至不会写程序的非技术人员, 也可以使用自动化测试工具建立自动化测试个案 2 0 1 。例如r a t i o n a lr o b o t 。 在这个阶段之前,大多数公司对自动化测试不够重视,当意识到自动化测试 重要性的时候,由于公司前期投入不够,只能从市场上选择商业工具进行尝试。 然而市场上的商业化工具价格很高,测试用例库的重用性很低,以及这些工具不 能扩展开发的缺点阻碍了自动化测试的进行。第三阶段中需求和供应矛盾的存 在,一些开源的、适合于中小企业应用的自动化测试工具及模式逐渐被开发和使 用。互联网的普及大大提升了软件业者的沟通效率,更加促进开源自动化测试的 发展,于是自动化测试进入了第四个阶段。 在自动化测试发展的过程中,出现了多种形式的自动化测试框架。主要有 【2 1 】: 1 ) 模块化测试脚本框架:在该自动化测试框架中,需要创建很多独立的小 脚本来描述被测软件的功能块、部件和函数。这些小脚本以层次机构组 合起来,以构成更大的测试,来实现一个特定的测试用例。 2 ) 测试库结构框架:该自动化测试框架与模块化测试脚本框架类似,也具 有同样的优越性。所不一样的地方是,它并不是将被测程序分为小脚 本,而是过程和函数。 3 ) 关键字驱动或者表驱动测试框架【2 2 】:在一个独立于应用程序的自动测试 框架,关键字驱动测试和表驱动测试是可以互换的术语。在这个框架 中,需要开发独立于自动测试工具的数据表和关键字。执行它们和测试 4 第一章绪论 脚本代码可以驱动被测程序和数据。在关键字驱动测试中,被测程序的 功能和测试的每个步骤一起被记录在一个表中。 4 ) 数据驱动测试框架【2 3 】:在这个框架中,测试的输入值和输出值是从数据 文件中被取得,并经过捕捉或者手工编写脚本被存放在变量上。这些变 量可以被存放输入值,也可以被存放输入验证值。 5 ) 混合自动测试框架:一般的测试框架是由上述所有或某几个测试框架的 有机组合,这样就可以发挥各个框架的长处,而弥补它们的缺陷。 1 4 课题内容和组织 本课题的内容主要是在研究软件测试和自动化软件测试技术的基础上,以应 用软件无线通讯设备配置软件( w c d c s ) 为需求来源,以关键字驱动自动化测 试框架为基础研究与实现了一套具有通用性,便于操作和维护的测试平台,并以 w c d c s 的部分测试用例为实验对象,证明了自动测试平台的优越性和有效性。 本文内容安排如下; 第一章:引言。首先介绍了课题研究背景以及国内外研究现状,然后简单介 绍了自动化测试技术和理论,并介绍了本课题研究的主要内容和组织结构。这一 章是自动化测试平台设计的理论基础。 第二章:自动化测试平台概述。简单介绍了应用软件w c d c s ,并根据作者 对该软件手动测试的经验分析了其自动化测试的可行性并阐述了自动化测试平台 开发的背景。该章节是开发自动化测试平台的依据。 第三章:自动化平台架构设计。从宏观上介绍了自动测试平台的开发目标、 框架、结构设计思想及平台的逻辑结构,使大家对自动测试平台系统有了一个总 体架构的认识。 第四章:自动化测试平台的设计和实现。详细讲解了自动测试平台的系统架 构,对组成自动测试平台的各个部分进行了详细介绍,并以应用软件w c d c s 的 部分测试用例为实验对象,得到了自动测试结果,以及自动测试平台和手工测试 的比较结果。 第五章:总结与展望。对本课题的研究进行了总结,分析了自动测试平台的 局限性。并对自动化测试平台以后的功能提出了自己的一些看法。 5 电子科技大学硕士学位论文 第二章自动测试平台概述 自动测试平台是以应用软件w c d c s 的手动测试中提取的自动测试部分为需求 来源,基于关键字驱动自动测试框架研究和设计的。在这一章作者首先简单介绍 软件产品w c d c s ,并简单描述了该软件的手工测试,以及手工测试中可自动化实 现的部分及其自动化测试可行性。然后讲述改进后的自动测试平台的开发背景。 2 1 应用软件w c d c s 简介 应用软件无线通信设备配置软件( w i r e l e s sc o m m u n i c a t i o nd e v i c e c o n f i g u r a t i o ns o f t w a r e ,简称w c d c s ) 是基于w i n d o w s 平台的用于配置数据的软 件,它是以v i s u a ls t u d i o 为开发环境,用c + + 语言开发的软件产品【2 4 1 。在配置无 线设备的过程中,w c d c s 是通过配置文件( c o n p l u g ) 与无线通信设备建立联 系的。配置文件c o n - p l u g 以配置项( i t e m ) 为元素,定义了无线通信设备应该具 有的功能,设备中使用的频段和频率以及其他信息。w c d c s 首先配置数据文件 的相关数据,然后配置完成的数据文件与固件一起实现无线通讯设备的行为操 作。其操作过程可以用下图来表示: 、 无线通讯设备 配置软件 一 例三二羔i ( w c d c s ) 固件 _ _ 一 无线通讯设备 图2 。1w c d c s 配置无线通讯设备过程图 2 2w c d c s 自动化测试可行性分析 6 第二章自动测试平台概述 大家都知道,对于一般软件的测试一般都包括单元测试、集成测试和系统测 试,w c d c s 也不例外【2 5 】。在实际的测试过程中,w c d c s 的系统测试主要是功 能测试,而测试过程中使用的方法是黑盒测试。作为计算机专业的研究人员,大 家都知道,在黑盒测试过程中,整个系统被视作为一个黑盒子,无法知道系统内 部的详细设计模块,测试者只是在程序接口进行操作、输入数据、观察输出数据 。而对于被测软件w c d c s 来说,软件用户界面( g u i ) 就充当着黑盒中程序接 口的角色。 g u i 界面是软件与用户交互的最直接的层,用户可以在g u i 界面上操作完成 被测软件的主要功能。g u i 界面测试有界面显示测试和界面功能测试两部分【2 6 1 。 在对被测软件w c d c s 的测试过程中,9 6 的工作属于界面功能测试部分。而在 一般的自动测试工具中,界面的功能测试可以通过记录回放的自动化方法实现。 这种方法在测试过程中的具体实现过程是:首先使自动化测试工具进入记录状 态;然后测试人员操作被测软件w c d c s 执行有效的测试动作,这时测试工具将 记录每个用户操作,并将这些操作转化为测试脚本,测试人员按照被测软件的需 求对自动测试脚本进行修改;最后测试工具重放这些测试脚本来实现自动化驱动 【2 7 】 o 上面指出,应用软件w c d c s 的g u i 功能测试部分可以通过记录回放的自 动化方法实现,但在具体实施自动化测试的过程中还是存在很多问题,让我们对 自动化测试的实施产生了疑虑: 1 ) 自动化测试工具并不是万能的,应用软件使用的编程语言在很大程度上 影响着测试工具对软件g u i 中所有对象的识别能力,这就使得测试脚本 维护变得困难闭; 2 )自动化测试工具在记录过程生成的测试脚本并不能直接使用,必须在经 过大量的修改和编辑之后才能重复利用; 3 ) g u i 上的改动可能会使已经生成的测试脚本完全报废,这时就要大量修 改测试脚本或者重新录制,降低测试效率。 上面提出的问题会使我们觉得实现自动测试比手工重新测试更加费时。然 而,作者在跟踪调查应用软件w c d c s 手工测试执行的过程中,找到了解决方 法: 1 ) 对于自动化测试工具的局限性,我们使开发的自动测试平台支持多种测 试工具,例如:r a t i o n a lr o b o t ,q u i c kt e s tp r o 等。上面我们讲过, w c d c s 在开发时使用的控件9 6 都是标准控件,在手动测试过程中,对 7 电子科技大学硕士学位论文 w c d c s 的g u i 功能测试集中在对这些标准控件的操作,而这些商业测 试工具完全能实现对标准控件的测试。 2 ) 应用软件w c d c s 的开发已经历时已久,新版本中g u i 和功能的变化已 经趋于平稳,这就保证了自动测试脚本不会因为新版本的发行而进行大 量改动,使测试脚本的维护变得容易。 3 ) c + + 是很多软件开发都用到的语言,它的使用,使w c d c s 的g u i 对象 更加容易识别。 以上对自动测试实施过程中需要解决问题的解决方案,证明了w c d c s 实施 自动化测试的可行性。 2 3 自动测试平台开发背景 通过前面的介绍我们可以知道,对那些回归性的、非智力创造性的测试工 作,自动化测试充分显示了它的优越性。其跨越语言障碍、摆脱时间限制和测试 独特性限制的优点,它与手工测试配合在一起就能使软件测试更加全面、有效, 为软件产品的质量提供了更有力的保障 2 9 1 。既然手工测试和自动测试的配合有如 此好的效果,那么为什么又要开发自动化测试平台那? 下面几节,作者通过总结 工作实践中的经验,来介绍开发自动化测试平台的可行性和必然性。 2 3 1 被测软件w c d c s 的自动化测试需求性 当前很多软件开发过程都是迭代式增量模式,w c d c s 也不例外。在短时间 内可能有多个版本的w c d c s 被开发出来,而对每个版本,测试组都要进行完全 仔细地测试,使该版本的软件产品中的b u g 数目减少到最少。然而新发布的软件 版本有可能只是在原有版本上新添加或修改了一部分功能,完全测试新的软件版 本使测试小组成员将大量地浪费在对已经在上一版本被测试过的功能的回归测试 上。但这些功能又不能不在新的软件版本中进行测试,以免漏掉那些因新增功能 而影响了原有功能的b u g s 。选择回归测试策略应该兼顾效率和有效性两个方面, 常用的回归测试策略包括0 0 】:再测试全部用例、基于风险选择测试、基于操作剖 面选择测试和再测试修改的部分。 在被测软件w c d c s 手动测试过程中,采用的是第一种策略对新版本软件进 行回归测试。以前,被测软件w c d c s 的回归测试9 2 是由手工进行的。而已经 进行过很多次测试的功能,再出现错误的可能性很小,而反复重复同样的没有错 r 第二章自动测试平台概述 误的测试,会使测试人员感觉很枯燥,甚至厌倦,从而导致测试效率的下降。另 外,由于时间的限制和设备的不足,手动完成全部测试用例的回归测试实现起来 比较困难。这些因素就会大大延长软件测试周期,延误软件产品的发布。 而我们在上一章提出,自动化测试是回归测试的利器,自动化测试自身的优 势使得在被测软件w c d c s 上使用自动化测试成为必然。 2 3 2 当前自动化测试工具的问题 在软件测试过程中,手工测试用例的描述一般是用自然语言,而自动化测试 却使用的是脚本语言。这就需要双倍的成本分别去开发和保持测试用例和脚本。 另外,在系统测试的自动化过程中,将手工测试用例转换为自动化测试脚本语言 是一个复杂的开发过程,需要耗费更多的开发成本。当前自动化测试过程中存在 着以下问题p l j : 1 ) 开发和保持自动测试软件很昂贵 自动化测试用例是用测试脚本进行描述的,它本身有自己的语法结构。一般 情况下,测试用例开发出来以后是让很多测试工程师使用的,而不仅仅是开发该 测试用例的工程师,这样,那些不具备测试脚本语言经验的工程师们使用这些测 试用例的时候就很困难。 2 ) 被测目标实现的更改造成自动化测试用例的不适用 在当前的软件开发过程中,一般使用的是迭代式增量开发模式。而当前的软 件测试技术一般使用的是记录回放技术。这种技术分为记录和回放阶段。在记录 阶段,测试工具将对键盘和鼠标的操作进行记录,并将这些操作转化为脚本;而 在回放阶段,测试工具将转化而来的脚本作为输入,并把程序的状态信息和输出 结果与原始数据进行比较,并报告比较情况【3 2 1 。这种情况下,测试用例的生成就 很依赖于被测软件的图形用户界面( g u i ) 。但是在迭代式增量开发模式中,软 件产品的图形用户界面随着新功能的增加会有一定的变化。但即使很小的变化, 都会造成自动化测试用例的失败。 3 )自动测试工具的复用性很低 一般来说,一个软件产品都有不同用途的开发版本,对其中一个版本开发的 自动化测试用例就不能被应用于其他版本上。 2 3 3w c d c s 自动化测试过程中遇到的问题 9 电子科技大学硕士学位论文 在上一节中我们提到,应用软件w c d c s 实现了部分功能的g u i 自动化测 试。在对该测试软件进行自动化测试的过程中,使用r a t i o n a lv i s u a lt e s t6 0 进行 测试用例的开发,测试人员根据v i s u a lt e s t6 0 设计脚本库【3 3 1 。被测软件w c d c s 功能测试中的所有测试动作都可以由脚本库里的函数来实现。换句话就是,测试 w c d c s 过程中,很多界面的手工测试操作都可以通过调用脚本库里的函数来模 拟。 这种自动测试架构非常有利于将来新的测
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年4月重庆医科大学附属第三医院招聘医师、医技、护理、行政、其他岗位模拟试卷有答案详解
- 2025嘉兴市保安服务有限公司招聘2人考前自测高频考点模拟试题附答案详解(考试直接用)
- 2025年攀枝花市盐边县事业单位春季引才考核的模拟试卷及1套参考答案详解
- 2025河南郑州智能科技职业学院招聘考前自测高频考点模拟试题附答案详解(模拟题)
- 2025湖北武汉大学中南医院咸宁医院咸宁市第一人民医院招聘15人模拟试卷有答案详解
- 2025年福建省龙岩市武平县招聘教育卫生干部10人模拟试卷有答案详解
- 2025安徽蚌埠市《固镇县任桥镇2025年面向全县公开招聘村级后备干部》考前自测高频考点模拟试题及1套参考答案详解
- 山西省【中职专业高考】2025年中职高考对口升学(理论考试)真题卷【农林牧渔大类】模拟练习
- 2025广东珠海市香洲区招聘卫生健康系统事业单位人员10人及完整答案详解一套
- IBI-325-生命科学试剂-MCE
- 2025-2030中国单轴激光陀螺行业市场发展趋势与前景展望战略研究报告
- 热射病护理病例讨论
- 软装事业部成本控制计划
- 2025年江苏二级造价工程师考试《建设工程造价管理基础知识》真题(含答案)
- 光伏土建培训课件
- 爱心义卖班会课课件
- 化验员职业技能培训考试题库及答案(含各题型)
- 2025年广东省中考历史试题卷(含答案详解)
- 大米直播促销活动方案
- 阴挺的中医护理
- 2025-2030中国便携式卫星通信终端行业前景动态与投资战略研究报告
评论
0/150
提交评论