




已阅读5页,还剩61页未读, 继续免费阅读
(计算机应用技术专业论文)gmtaf测试自动化框架的设计与实现.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
浙江大学硕士学位论文 摘要 摘要 随着软件业的不断发展,与软件质量息息相关的软件测试环节也越来越受到 软件用户以及软件开发者们的重视。现在所谓的软件测试不仅仅是在开发结束以 后,对代码的功能性测试;伴随着软件测试技术的不断进步,测试已经逐渐渗透 到了软件生命周期的每一个环节,从软件的需求分析开始,到最后软件成型发布 给用户使用或发布前的软件质量评估,都越来越离不开软件测试。随着测试重要 性的增加,测试量也随之不断增长,项目对测试自动化的需求也越来越强烈,特 别是在对于不断重复的回归测试上,项目相关人员都希望可以通过测试自动化来 降低劳动强度以及手工测试的风险,从而更好的保证在开发后期,发布前做好全 面的,完善的测试工作;在测试自动化同时,项目人员可以更好的优化资源,来 更好的保证所发布的软件的质量。 本文对现有的测试自动化的测试策略,测试框架以及自动化工具进行了研究, 在对现有测试框架的基础上,结合自动化测试工具,从自动化需求特点出发,设 计和开发自动化测试框架。 文章先介绍了测试相关背景与存在的问题,接着阐述了测试自动化的相关知 识。在对已有自动化测试框架分析的基础上,选择合适的自动化工具,建立的测 试自动化框架的功能,以及如何开发和实现这些功能。然后,介绍了本框架在g f x 中的优势及应用。最后,文章将对此测试框架的维护以及改进进行一些探讨和研 究。 关键词测试自动化,测试策略,测试用例,自动化框架 浙江大学硕士学位论文 a b s t r a c t w i t ht h ed e v e l o p m e n to fs o t t w a r ei n d u s t r y , t h es o f t w a r et e s t i n gp h a s e ,w h i c hh a s t i g h t l yr e l a t i o nw i m s o f t w a r eq u a l i t y , h a sb e e nr e c o g n i z e db ym o r ea n dm o r es o f t w a r e u s e r sa n dd e v e l o p e r s n o w a d a y s t e s t i n gd o e sn o tr u na st h ef u n c t i o nt e s t i n ga f t e ra l l t h ec o d er e a d y ;w i t ht h ed e v e l o p i n go fs o f t w a r et e s t i n gt e c h n i q u e ,t e s t i n gh a sb e e n p a r t i c i p a t e di ne v e r ys e c t i o no fs o f t w a r el i f ec y c l e ,b e g i n n i n g f r o mt h es o f t w a r e r e q u i r e m e n ta n a l y s i st oq u a l i t ye v a l u a t i o no ft h es o t t w a r eb e f o r ed e l i v e r i n gt ou s e fo r p u b l i s h i n g ,i tn e e d st e s t i n gm o r ea n dm o r e a st e s t i n gb e c o m e sm o r ea n dm o r e i m p o r t a n t , v o l u m eo f t e s t i n ga l s ob e c o m e sh i g h e ra n dh i g h e ra tt h es 咖et i m e p r o j e c t s a l ll i k et oh a v et e s t i n ga u t o m a t e d ,e s p e c i a l l yf o rt h er e g r e s s i o nt e s tw h i c hn e e d r e p e a t e dn m n i n g a l lp r o j e c tm e m b e r sh o p ei tc o u l dr e d u c et h ec o s ta n d r i s kb y t e s t i n g a u t o m a t i o n , i no r d e rt oa s s u r et h eq u a l i t yb e f o r ed e l i v e r i n g ;a l s oa tt h es a m et i m e , p r o j e c tm a n a g e rc o u l dh a v eag d o dr e s o u r c ea l l o c a t i o nt oh a v eab e t t e rs o f t w a r e q u a l i t y t h i sp a p e rw i l ld or e s e a r c ho nt h ee x i s t i n gt e s t i n ga u t o m a t i o ns t r a t e g y , t e s t i n g f r a m e w o r ka n da u t o m a t i o nt o o l s b a s e do i le x i s t i n gs t r a t e g ya n df r a m e w o r k , c o m b i n i n g 晰t l la u t o m a t i o nt e s t i n gt o o l s ,f r o mt h et e s t i n ga u t o m a t i o na s p e c t ,w ew i l l b u i l du pt h ef r a m e w o r kf o rt e s t i n ga u t o m a t i o n t h i sp a p e ri n t r o d u c e st h eb a c k g r o u n d sa n de x i s t i n gi s s u e so fs o t b , v a r et e s t i n g ,a n d t h ek n o w l e d g eo fs o f t w a r et e s t i n ga n dt e s t i n ga u t o m a t i o n t h e nb a s e do nt h ea n a l y s i s o ft e s ta u t o m a t i o nf r a m e w o r ka n dr e q u i r e m e n t , 1w i l lg i v eo u tt h ed e s i g no ft e s t i n g a u t o m a t i o nf r a m e w o r k ,i n c l u d i n gc h o o s i n gap r o p e rt o o l sf o ra u t o m a t i o n , i n t r o d u c i n g t h ef u n c t i o n so f t h ef r a m e w o r ka n dh o wt oi m p l e m e n tt h ef u n c t i o n s n e x t , i tw i l lh a v e i n t r o d u c t i o no i lh o wt h i sf r a m e w o r ka p p l yi ng f x a tl a s t ,t h i sp a p e rw i l lh a v eab r i e f d i s c u s s i o na n df u r t h e rr e s e a r c ho nt h em a i n t e n a n c ea n de n h a n c e m e n to ft h i s f r a m e w o r k k e y w o r d b s o f t w a r et e s t i n ga u t o m a t i o n , t e s ts t r a t e g y , t e s tc a s e s ,a u t o m a t i o n f r a m e w o r k 浙江大学硕士学位论文图目录 图目录 图1 - 1 测试自动化流程5 图1 2g f x 架构。8 图1 3d p f 开发模式9 图3 1 测试自动化框架描述2 6 图3 - 2 测试用例管理模式。2 7 图3 3 功能测试套件模板2 8 图3 4 框架测试设计策略一2 9 图3 5 函数库调用关系。3 2 图3 - 6 测试驱动架构。3 3 图3 7 测试报告模板。3 7 图4 1 项目管理界面。4 0 图4 - 2 测试套件管理页面4 1 图4 3 测试用例管理页面,4 2 图4 - 4 数据表结构4 3 图4 5 常用函数4 5 图4 - 6 数据驱动类函数关系4 6 图4 7 对象管理界面。5 0 图4 8 测试数据解析流程5 2 图5 1g f x 测试生命周期5 7 i l l 浙江大学硕士学位论文 表目录 表3 - 1 项目表 表目录 表3 2 测试套件表3 4 表3 3 测试用例表3 4 表3 - 4 关键字描述3 5 浙江大学硕士学位论文第1 章绪论 第1 章绪论 1 1 背景 伴随着软件开发技术的进步,软件测试自动化也越来越多的应用于c s 和w e b 架构的软件上。同时,随着软件需求的不断变化和测试周期及时间越来越短,项 目经理,开发人员以及测试人员都发现测试自动化变得越来越有必要。 我们都知道,在一个需求不断变动的软件生命周期中,软件测试的工作量是 很大。据统计,测试时间会占到总开发时间的4 0 ,对于一些可靠性要求非常高 的软件,测试时间甚至占到总开发时间的6 0 。而且有一部分测试却是极有可能 应用计算机本身来进行自动化的工作,原因是测试的许多操作是重复性的、非创 造性的、需要专注的工作,而在这方面,计算机就最适合代替人去完成这些任务。 从这个显而易见的理由开始,每个项目中当有人开始抱怨繁重且重复的测试工作 时,测试自动化就被提上了讨论议程。 使用测试自动化,对于某些特定的测试任务相比手工测试效率高很多;在进 行回归测试的时,可以很大程度上减少测试的投入,进而更好地利用资源,将测 试人员解脱出来投入更多精力于设计测试用例,同时还可以提高测试人员的积极 性;在进行并发测试的时候,当需要多个线程同时进行操作时候,手工的并发测 试明显不能满足现在社会对网络软件并发度的需求,求助于测试自动化就可以很 好的解决这一难题。 目前国内对测试重视不断增强的同时,也开始越来越关注测试自动化的开发, 特别是许多软件大公司在不断提高软件质量的基础上,在其测试环节越来越重视 测试自动化的引入,但是很多公司由于在资金上,技术上,管理上以及人员上的 没有给予测试自动化应有的支持,使得在测试自动化实施上存在着这样那样的问 题,结果就是自动化的投入没有得到相应的产出。 1 2 软件测试自动化介绍 说到测试自动话,我们不得不先提到软件测试,以下将首先对软件测试的基 本概念进行介绍,进而对测试自动化的基本概念,进行测试自动化的前提,测试 自动化建立的流程及工具的选择进行介绍和分析。 浙江大学硕士学位论文第】章绪论 1 2 1 软件测试的基本概念 软件质量保证( s o f t w a r eq u a li t ya s s u r a n c e ) 是包含在软件开发整个过程中, 参照一定的质量衡量标准、所制定的目标及不同的软件开发流程以及规范来管理 和监督所开发的软件的质量,并对整个开发流程进行改进的过程。 软件测试是在软件开发结束,交付使用前,对用户的需求、功能设计规格说 明及已存在的代码进行评测,保证其达到用户所提出的要求,是软件质量保证的 重要手段。软件测试不等于程序测试,它贯穿于软件定义和开发的整个生命周期。 需求规格说明、概要设计规格说明、详细设计规格说明、源程序都是软件测试的 对象【1 】。研究资料表明,软件开发中花在测试上的时间一般占软件开发总时间 的4 0 一6 0 以上,对于一些特别的项目有可能会更多。 软件测试从分类上来看可以分成,按测试方式分类与按测试不同阶段分类, 下面对两种不同分类进行介绍。 按测试方式分类,测试可以分为“黑盒测试”和“白盒测试”两类: “黑盒测试”是基于用户需求和软件功能,而不关心内部实现和代码设计的 测试,它需要有软件的提供接口才可以进行。 “白盒测试”是基于代码的内部设计以及逻辑的测试,它对软件的代码架构 和编程逻辑的细节进行测试。 按不同的测试阶段分类,测试可分:单元测试、集成测试、系统测试、验收 测试、回归测试、a l p h a 测试、b e t a 测试【2 】。 单元测试:单元测试是对软件中的基本组成单位进行的测试,其目的是 检验软件基本组成单位的正确性。 集成测试:集成测试是在b e t a 测试软件系统集成过程中所进行的测试, 其主要目的是检查软件单位之间的接口是否正确。 系统测试:系统测试是对已经集成好的软件系统进行彻底的测试,以验 证软件系统的正确性和性能等是否满足其规约所指定的要求。 验收测试:验收测试旨在向软件的购买者展示该软件系统满足其用户的 需求。它的测试数据通常是系统测试的测试数据的子集。 回归测试:回归测试是在软件维护阶段,对软件进行修改之后进行的测 试。其目的是检验对软件进行的修改是否正确。 a l p h a 测试:在系统开发接近完成时对应用系统的测试;测试后,仍然 会有少量的设计变更。 2 浙江大学硕士学位论文第1 章绪论 b e t a 测试:当开发和测试根本完成时所做的测试,而最终的错误和问题 需要在最终发行前找到。 除以上所描述的测试外,性能测试也是软件测试中十分重要的一块,它主要 针对已经开发完成的模块或整个系统进行性能评估,主要包括负载测试,压力测 试,并发测试等。 1 2 2 测试自动化的基本概念 测试自动化就是通过已有的自动化测试工具或自行开发的测试工具,按照我 们预定的测试计划来验证各种软件测试的需求,最终生成测试报告的过程。其主 要目的是为了减轻手工测试的劳动量,从而达到节约时间和人力,从而提高软件 质量的目的。测试自动化主要分两种,一种面向功能测试,另一种则面向性能测 试,虽然改善系统性能不是单单依靠性能测试就能完成的,但性能测试至今仍是 控制性能的非常有效的手段。因此,测试自动化在软件的功能验证、结构规划、 性能调优、缺陷修复等方面都发挥着重要作用。 1 2 3 测试自动化的前提 要实施自动化测试的公司或组织需要存在一套正规的手工测试流程。这个流 程至少需要包括以下两个要素: 详细的测试用例:根据功能规格说明或者设计文档设计出来的测试用例,这 个案例中需要包括具体流程以及可预见的”预期结果”。 独立的测试环境:包括可以恢复测试配置和测试数据库,以便在测试用例执行 后可以回复到执行前,为在修改过程序后的重新执行提供一个干净的环境。 除了以上两个要素外,进行自动化测试还需要以下几个要素: 具有良好定义的测试计划 拥有一个能够被识别的测试框架 能够确保多个测试运行的构建策略 拥有运行测试的硬件 拥有关注在自动化过程上的资源 当然要更有效的建立或运用自动化测试工具,至少需要一位受过良好训练的 技术人员,即一位程序员。 浙江大学硕士学位论文第1 章绪论 1 2 4 测试自动化流程 在以上前提都满足的情况下,就可以开始软件测试自动化的进程了,建立测 试自动化的流程【5 】如下( 图1 - 1 ) : 测试自动化小组的建立:在管理部门的指导下建立自动化小组,并开始进行 软件测试自动化的可行性分析及手工测试现状分析,给出可行性分析报告及 手工测试现状分析报告。 测试自动化策略的制定:由自动化小组初步确定工作周期并从多方面对测试 自动化风险进行评估,包括工具,技术,环境和人员各项要素:同时建立自 动化需求评判标准,测试结构评估标准等,给出自动化测试策略的相关文档, 包括策略说明,评估标准,风险评估过程和结果等。 测试自动化的需求分析:根据测试过程中对自动化的需求,按照已制定的自 动化需求评判标准,对所有自动化需求的测试过程按照优先级进行划分,给 出最终的需求分析文档;并且每一次迭代都需要进行增加的功能的需求分析 测试自动化计划的确定:根据自动化策略与需求分析文档,确定和描述要实 施和执行的测试。设计测试自动化的过程,包括时间安排,执行先后顺序, 开发计划等,最后制定测试自动化计划;并且每一次迭代都需要对计划进行 必要的更改,增加对新功能的测试自动化计划。 测试自动化的设计:这是通过生成包含测试需求和测试计划的设计文档来完 成的。针对每一个自动化过程,每一个自动化组件,设计数据传递方法,输 入输出,执行步骤,验证方法等,最后给出自动化设计文档;同时,对每一 次迭代都需要进行新增加的功能的设计。 测试自动化的实现:根据自动化测试文档中的要求,使用恰当的开发工具来 实现所有自动化测试的过程和组件。 测试自动化的执行:按照测试自动化计划的时间安排,运行在上一过程中开 发好的测试自动化过程和组件,执行计划里规定好的测试过程或组件的自动 化测试,从而确保整个系统按功能规格说明运行;并且每一次迭代都需要测 试增加的功能,并重复执行以前版本测试过的所有测试用例。 测试结构的分析:以测试自动化策略中制定的测试结果评估为准则,根据测 试自动化测试用例执行完毕后得到的测试结果,分析自动化测试的测试需求 的覆盖率,自动化测试结构等,进行自动化测试的评估,最后生成并交付测 试评估摘要。 4 浙江大学硕士学位论文 第1 章绪论 图1 1 测试自动化流程 1 2 5 自动化工具介绍及选择标准 目前普遍流行的自动化工具主要包括:r a t i o n a lr o b o t ,g r p ,x d et e s t e r , 等,以下会对这些工具进行简要介绍: r o b o t 支持功能测试和性能测试 使用语言:v 8 ( 功能) c ( 性能) 通过v b 支持d a t a b a s e 支持d a t ap o o l ,可以实现内置d a t ad r i v e n ,不过不可以在运行时修改 数据,支持v p ( v e r i f yp o i n t ) 可以和t e s tm a n a g e r ,c q 继承 比较好地支持v b ,d e l p h i ,n e t ,但是对j a v aa p p l i c a t i o n 支持差 对s w i n g 中t a b l e 中的控件支持不好 抓取控件机制:给每个界面的控件一个唯一字符串 5 浙江大学硕士学位论文 第l 章绪论 a i 。p 支持功能测试,具有k e y w o r d - d r i v e n 功能 使用语言:v b 支持d a t a b a s e 连接 在q t ps c r i p te d i ti d e 中,q t p 支持两种视图,其实一种视图可以使用 k e yw o r dd r i v e n ,另一种专家视图可以直接使用v b 编写脚本 支持v p ,支持图像v p ,支持动态v p 通过a d d - i n 支持j a v a ,n e t ,a j a x 等较新的技术 抓取控件机制:和r o b o t 一致,给每个界面的控件一个唯一字符串 支持d a t ap o o l ,可以实现内置d a t ad r i v e n ,不过不可以在运行时修改 数据 x d et e s t e r 支持功能测试,不支持性能测试 语言:j a v a 通过j a v a 支持d a t a b a s e ,可以发挥各类成型j a r 包的优势 可以和t e s tm a n a g e r ,c q 集成 支持v p ,支持动态v p 仅支持j a v a ,w e b ,可以很好地支持j a v a s c r i p t ,这一点要比r o b o t 好 抓取控件机制:通过对控件的属性和实现的类型区分控件,使用者可以 为控件的属性设置加权值,通过内置算法映射控件 支持d a t ap o o l ,可以实现内置d a t ad r i v e n ,不过不可以在运行时修改 数据 关于自动化工具的选择,与公司或组织所能提供资金密切关联,目前流行的 自动化测试工具绝大部分商业正版的l i c e n s e 都非常的昂贵,而且工具的选择直 接会影响自动化测试的效果,甚至于成败。因此在决定使用何种工具前,必不可 少的都要对已经发布的自动化测试工具进行研究和试用。 e l i s a b e t bh e n d r i c k s o n 在他的文章“m a k i n gt h er i g h tc h o i c e ”给出了选 择自动化测试工具的参考【6 】: 6 浙江大学硕士学位论文第1 章绪论 脚本语言能够支持用户的日常用途:包括数据类型,逻辑类型的支持,是用 户能够对已录制的脚本进行编辑。 拥有元素识别器:工具能够识别j a v a 、c # 、v b 、h t m l 等多种语言产生的u i 控件。 可重用的库文件:工具中能够提供库文件功能,并可以加入和使用自己创建 的库文件 外部库文件:提供对外部库文件的支持,如可以引入w i n d o w s 中d l l 库文件, 以及数据库的库文件等 抽象层机制:可以将建立的代码层的测试用例用一个抽象层来作为接口 分布式测试:提供分布式机制,可以进行分布式测试。 文件输入输出:工具应具备对文件的输入输出功能 错误处理:当运行过程中出现错误,可以继续运行下一个用例 调试器:提供较为强大的调试器,可以分步、断点调试。 代码控制器:提供版本控制功能。 命令行脚本:可以使用命令执行任一个脚本。 用户社区:提供一个用户交流的平台。 1 3g f x 介绍 g f x 中的项目主要是与外汇交易相关的系统,包括多个与外汇交易的系统。 具体业务涵盖: 1 ) 为客户提供实时的相关货币的汇率变动 2 ) 提供根据实时汇率下订单的系统 3 ) 提供对不同订单的管理系统 4 ) 根据历史数据提供对订单的风险评估 整个项目组的架构关系如下图( 图卜2 ) : 7 浙江大学硕士学位论文第1 章绪论 图i - 2 g f ) 【架构 上图各系统简介: c 系统能够在最初阶段监控风险高的合作伙伴,从分析客户历史交易模 式入手,有助于公司更好的控制合作风险。 黝,泵如监控冲突订单和交易,从而达到控制风险的目的。 s 麒从汇率发布的机构获取汇率,提供给相关交易系统。 占系够毵保存来自客户的订单,并根据实时汇率决定订单是否被接受和执 行。 0 象笏j 对外汇交易进行校验,在成功后发给后台系统做最后的操作。 矿系9 蠡后台交易管理系统,它的主要功能是根据从前台系统传来的交易 数据进行匹配和分发,从而达到交易处理的最优化。 励勇矽蠡数据库管理系统,用于存储和备份来自w 系统的交易和订单数 据。 ,系j 缴此系统是s s 公司的一个对外的银行系统。 浙江大学硕士学位论文 第l 章绪论 1 3 1 架构及开发模式 在开发模式上,g f x 都是使用o p f 开发模式。d p f 是某金融公司内部定义的一 套开发模式,在此模式里,软件开发活动顺序进行,类似于传统的瀑布模式。 同时在d p f 中参杂了迭代因素。随着需求的不断加入和更新,新的迭代就随 之出现,对于每个迭代周期的测试,由于要保证一个迭代周期的开发工作,并且 要验证以前版本中的功能没有被破坏,这时候就需要将现有的以及更新的测试用 例重新执行遍,从而保证每个迭代周期开发的正确性,同时,由于迭代周期中 的b u g 的不断发现,对于修复周期内的版本也要进行测试,这就决定了,在这种 模式下需要进行迭代测试( 图卜3 ) 。 图1 3d p f 开发模式 9 浙江大学硕士学位论文 第1 章绪论 在d p f 模式的基础上,由于项目是由美国某金融公司和浙大技术中心的共同 合作开发。由金融公司方面主要负责项目管理、并提供用户需求、项目的总体设 计和开发测试等所必须的软硬件支持。技术中心主要的工作职责是在金融公司内 部,有经验的开发和管理人员的指导下针对用户案例进行设计和开发,以及测试 工作等。这种异地协作的开发模式要求两边的开发和测试团队需要更多的沟通和 更紧密的合作,这个情况不仅仅给项目的开发和测试带来了一定的挑战,也对我 们在进行软件质量的过程及标准上保证提出了更高的要求。相对应与d p f 的开模 式,技术中心的测试部门也在不断的实践和磨合中,形成了一套有效可行的,符 合这种开发模式的测试策略,并在实践中不断对测试策略进行改进,增加入新的 元素,让我们的测试更好更快捷。 1 3 2 项目背景介绍 1 3 2 1 需求多样化 在g f x 架构中,包括了9 个相互关联的系统,其中前6 个系统在技术中心有 相关的开发和测试项目。它们的需求各不相同,其中c 系统是浙大技术中心按照 全新的用户需求来进行设计开发的项目,很多的需求直接来自b o s t o n 的客户; 而p m 和g 系统是浙大技术中心按照在老系统需求的基础上,按照新的用户需求 来进行设计开发的项目;最后,0 系统和s 系统则是属于移植及再工程性质的项 目,两者都是在原有已存在的结构和基础代码上的改进及增强。 1 3 2 2 技术多样化 除了需求各不相同外,项目开发中所使用的架构也是不同的,g 系统属于c s 架构,它使用d s s 提供的框架来搭建客户端及服务端;p m 系统,c 系统,0 系 统则是使用w e b 架构,使用j s p 来搭建客户端,而在后台的设计上,0 系统使用 了e j b 和以及j m s 来提供对外的接口服务;s 系统则属于单一的服务处理模式, 没有提供用户界面,只为用户提供了数据输入输出的接口。 1 0 浙江大学硕士学位论文第1 章绪论 1 4 本文的主要工作 本文的主要工作是,在对现有软件测试自动化策略,框架以及测试自动化工 具进行了分析和研究的基础上,综合g f x 的开发、测试模式及技术特点,形成一 套符合目前实际的自动化测试策略,并在实践中建立一套可行的,稳定的自动化 框架为以后g f x 项目的发展自动化做准备。同时,优化后的策略引入了软件生命 测试周期的管理概念,加强了对测试用例和自动化脚本的跟踪和管理,为项目管 理人提供了更好的支持,并对自动化框架的改进和扩展做了一定的研究。 第一章介绍本文的背景及相关工作;第二章,对测试自动化进行介绍和分析 后,并根据目前项目自动化现状,引入现有的测试自动化框架;第三章介绍了 g m t a f 测试自动化框架设计思路及各部分的功能设计;第四章阐述了测试自动化 框架的实现过程;第五章,测试自动化框架在g f x 中的应用;最后一章,总结工 作并对今后的研究工作进行展望。 浙江大学硕士学位论文第2 章测试自动化框架的需求及分析 第2 章测试自动化框架的需求及分析 本章节主要介绍了,手工测试中的问题的需求及自动化提供的支持,以及通 过对目前项目组中测试自动化的现状引出测试自动化框架,并对目前软件测试行 业内使用的各种框架进行介绍和分析。 2 1g f x 测试自动化的实施 首先,与手动测试相比,自动化测试可以有效的降低测试成本和提高测试效 率以及将重复性强的测试由手工转为可以独立开来自动实现的,主要体现在【3 】: 提高新版本发布的速度和质量:每一个新版本的发布,其中大部分功能和界 面都和上一个版本相似或完全相同,这部分功能特别适合于自动化测试,从 而达到测试每个特征的目的。 实现快速的回归测试:由于回归测试的动作和用例是完全设计好的,测试期 望的结果也是完全可以预料的,将回归测试自动运行,可以极大提高测试效 率,缩短回归测试时间。 更多更频繁的测试:每款产品面向市场前都会有个发布周期,在测试期间 是每天或者每两天都要发布一个版本供测试人员测试。如果一个系统的功能 点有几千甚至上万个,手工测试就显得非常耗时和繁琐,这样必然会使测试 效率低下。同时自动测试可以避免,人工测试容易犯的错误:错误测试、漏 测试、多测试和重复测试等 替代困难的手工测试:如果用户有些非功能性方面的测试:如:压力测试、并 发测试、大数据量测试、崩溃性测试,用手工测试是不可能达到的。可以执 行一些手工测试困难或不可能进行的测试。比如,对于大量用户的测试,不 可能同时让足够多的测试人员同时进行测试,但是却可以通过自动化测试模 拟同时有许多用户,从而达到测试的目的。典型的应用,例如多用户并发注 册、并发交易请求和并发交易应答,这种情况用人工测试几乎是办不到的, 而自动测试却很容易。 具有一致性和可重复性:由于每次自动化测试运行的脚本是相同的,所以每 次执行的测试具有一致性。手工测试是很难做到的。由于自动化测试的一致 性,很容易发现被测软件的任何改变。测试的复用性。由于自动测试通常采 用脚本技术,这样就有可能只需要做少量的甚至不做修改,实现在不同的测 试过程中使用相同的用例。 1 2 浙江大学硕士学位论文 第2 章测试自动化框架的需求及分析 更好的利用资源:理想的自动化测试能够按计划完全自动的运行,在开发人 员和测试人员不可能实现2 4 小时轮流工作的情况下,自动化测试可以胜任 这个任务。这样充分的利用了公司的资源,也避免了开发和测试之间的等待。 同时,将繁琐的任务自动化,可以提高准确性和测试入员的积极性,将测试 技术人员解脱出来投入更多精力设计更好的测试用例。 解决测试与开发之间的矛盾:通常在开发的末期,进入集成测试阶段,在每一 个版本的发布初期,测试系统的错误比较少,这时开发人员有等待测试人员测 试出错误的时间事实上在迭代周期很短的开发模式中,存在更多的矛盾, 但自动化测试可以解决其中的主要矛盾。 增加软件信任度。由于测试是自动执行的,所以不存在执行过程中的疏忽和 错误,完全取决于测试的设计质量。一旦软件通过了强有力的自动测试后, 软件的信任度会随之会增加。 2 1 1 项目测试中存在的问题 在软件生命周期中,由于采用了d p f 的迭代模式,需求的不断改动和增加, 代码量的不断增长,b u g 的不断修复,测试就会变得工作量越来越大。q a 人员在 编写更新测试用例来与需求变动及问题修复的同步,还需要将所有的测试用例都 执行过一遍,从而保证新功能的增加不会破坏原有系统的功能,并且新的功能还 可以按照需求所要求的正常工作。 除了测试用例不断更新增加的问题外,有些项目需要经常性的进行回归测试, 这就需要更多的时间和人力。如在测试中,当开发系统所在环境变更时候,也需 要新的回归测试来保证环境的变更不会对系统产生影响,这时q a 人员就需要把所 有的测试用例重新执行一遍,而且很多时候由于进度的影响不能覆盖到所有的测 试数据,q a 人员只能根据经验和常识来判定那些数据是必须的那些数据可以不要 测试,这样在有些时候就会由于对专业业务逻辑的不熟悉,导致忽略了一些重要 数据的测试。 在做并发测试的时候,当需要很多并发事件同时发生,这个时候只能做到调 动项目组内的人员在一定的时问段里面参与到并发测试中,并且并发度很小,最 多只能达到组内的人员个数,这样许多与时序、死锁、资源冲突、多线程等有关 的错误很难被发现。 在项目进度很紧迫的时候,很多时候都会要求开发人员加入参与测试,由于 浙江大学硕士学位论文 第2 章测试自动化框架的需求及分析 开发人员对测试用例的熟悉程度不比开发测试用例的测试人员,以及在发现问题 上,使用开发的思维去思考,不能很好的做好测试,这样就会在系统中留下隐患。 对于以上这些问题,通过一些讨论和研究,q a 都一致认为其中很大部分测 试都可以借助测试自动化工具来执行,从而将q a 从重复劳动中解放出来,投入 更多精力于设计测试用例的改善,和新功能的测试。 2 1 2 自动化的支持 对于项目中碰到的问题,采用测试自动化,在一定程度上可以解决目前碰到 的一些困难和问题。 首先是由于需求的变动,新功能的增加需要不断进行新旧功能的测试,在进 行原有功能的测试时,引进测试自动化可以很大的减轻测试人员的劳动强度,把 他们从无聊,重复的工作中解脱出来,投入更多的精力在测试新功能上,来更好 的保证新开发功能的正确性。 对于b u g 的修复的迭代测试,使用测试自动化也可以很好的减轻测试人员的 工作强度,只需要关注那些真正被影响到的功能。还有在系统环境变更的时候, 为了更好的保证变更没有影响系统的功能,测试自动化可以很快的,正确的执行 所有已经自动化的测试来保证变更的影响。 在做并发测试的时候,运用自动化的多线程工具,可以模拟成千上万线程, 达到真正可能的使用者的线程数,解决了使用手工并发测试所不能达到的数目。 同时,由于有足够多的并发线程存在,对于代码中存在与时序、死锁、资源冲突、 多线程等有关的错误就更易于被发现。 使用测试自动化,开发人员可以不要使用复杂的测试用例,也不要去考虑到 底应该如何理解测试用例,用何种方法去思考,只需要学会如何执行自动化的测 试脚本,给出结果就可以了。 使用了测试自动化,可以很大程度上减轻测试员负担,同时也可以减少测试 所需要的时问,大大缩短了软件开发周期,使系统能够尽早的发布。 以下是在实践中总结出的自动化测试优势: 降低人力成本,提高测试效率。项目中有一次大的改动,内容主要就是增加 一个新的接口,主要测试是比较原先接口返回的结果和新接口返回的结果。流程 非常的简单,但是需要验证很多测试数据,手工测试的话,容易出错,而且效率 低下。第一次q ac y c l e ( 手动测试) 需要两个人,但在实施了自动化测试后,后 1 4 浙江大学硕士学位论文第2 章测试自动化框架的需求及分析 面两轮测试同样的时间就仅仅需要一个人就可以完成测试了。而且在测试的范围 上,第一次仅仅只能测试新增的功能,而后面的几次c y c l e s 就直接运行开发的 自动化工具,大大提高了测试数据的覆盖率以及降低了投入的人力。 可以说,实施测试自动化是软件行业一个不可逆转的趋势,如果在这个领域 走在了前列,无论从企业的核心竞争力还是个人的工作技能来说,都有巨大的优 越性【4 】。 2 1 3 自动化工具的选择 在自动化测试工具的选择上,根据e l i s a b e t hh e n d r i c k s o n 的文章“m a k i n g t h er i g h tc h o i c e ”中的标准,选择x d et e s t e r 作为我们的自动化工具: 脚本语言:r a t i o n a lx d et e s t e r 基于e c l i p s e ,它使用目前项目中通用的 j a v a 语言,可以为用户提供以下基本功能: 0 使用户能够编辑已录制的脚本 0 支持变量和数据类型 0 支持矩阵、列表、结构或其他复合的数据类型 0 支持条件式的逻辑( i f 和c a s e 语句等) 0 支持循环( f o r 、1 】h i l e ) 0 可以创建和调用函数 o i 元素识别器( e l e m e n ti d e n t i f i e r s ) :r a t i o n a lx d e t e s t e r 可以识别j a v a 、 h t m l ,j a v a s c r i p t 等多种语言产生的u i 控件,它是针对j a v a 程序开发的测 试工具,可以识别标准s w i n g 和a w t j f c 控件。 可重用的库文件:x d et e s t e r 本身提供了强大的库文件功能,同时由于是基 于j a v a 的工具,你可以随意引用来至j a v a 的库。你同样也可以在指定的某 个文件夹下创建自己的库文件,或者使用其他人提供的库文件。 外部库文件;通过j a v a ,x d et e s t e r 可以使用一系列关于w i n d o w sa p i 或者 o d b c 等外部接口的库文件。 抽象层:x d et e s t e r 可以将每一个控件从代码层面映射到自己可以定位的字 符串,使u i 控件完全可以忽略代码层面上标志符的变化。 分布式测试:x d et e s t e r 结合r a t i o n a lt e s tm a n a g e r 就可以实现分布式测 试。 文件i o :x d et e s t e r 提供对各类文件操作接口。 错误处理:x d et e s t e r 使用e r r o rd e f i n e 定义每一个预定义的错误。 1 5 浙江大学硕士学位论文第2 章测试自动化框架的需求及分析 调试器:x d et e s t e r 提供较为强大的调试器,可以分步、断点调试。 代码版本控制:基于e c l i p s e 的x d et e s t e r 集成了c v s 的版本控制功能。 命令行脚本:可以使用“x d e ”命令执行任一个脚本。 用户社区:无 目前我们拥有x d e t e s t e r 的1 i c e n s e ,而且r a t i o n a lx d e t e s t e r 脚本以j a v a 编码,我们的项目都是基于j a v a 开发的,在技术平台上相符合易于上手,综上 述,我们选用x d et e s t e r 作为测试自动化中使用的工具平台。 2 1 4g f x 测试自动化现状 由于项目的测试过程中所存在的问题,g f x 的成员已经不断开始关注测试自 动化的研究和应用。采用测试自动化,在一定程度上可以缓解目前碰到的一些困 难和问题。 从测试自动化的前提出发,目前g f x 项目已经建立起正规的手工测试流程, 并应用于每个项目,它包括详细的测试设计策略,测试用例和独立的测试环境。 满足自动化前提的基础上,g f x 已经实现了在多个项目组进行部分测试的测试自 动化,其中包括: 对p g 系统的主要功能的测试自动化 c 系统在每日数据传输上的测试自动化 s 系统的主要功能的测试自动化 g 系统性能测试的部分自动化 同时,我们还继续在其他项目引入自动化测试,加强自动化测试工具的使用 和开发,从而更好的利用资源。 在进行测试自动化过程中,我们遇到了很多的困难和障碍,以及也有此产生 了很多的想法,主要包括关于自动化测试工具的学习和维护,测试工具的更新对 脚本变更的影响,如何评估自动化测试脚本的维护及更新,如何提高自动化脚本 的利用率,如何获得自动化测试的覆盖率等问题。 经过对这些问题的分析,我们认为如果对自动化测试用例,自动化过程以及 测试脚本有一个同一的管理平台,这样很大程度上就可以对解决问题以上问题有 很大的帮助。通过研究,测试自动化框架作为自动化钡4 试的管理平台可以很好的 规范自动化测试工具的开发和使用,在这个框架中包括了定义好了由一些规范, 1 6 浙江大学硕士学位论文第2 章测试自动化框架的需求及分析 想法和制定工作平台或为自动化钡4 试提供支持的实践组成,同时,还可以加入对 于测试用例的管理,这样可以为目前对测试结果覆盖率很难或者无法度量的问题 提供有效的数据和支持,同时可以很好的对各个自动化测试用例和测试工具进行 统一管理,提高测试自动化脚本阿利用率。 2 2 现有测试自动化框架对比及分析 测试自动化框架( t e s ta u t o m a t i o nf r a m e w o r k ) 是由一些假设,概念和为自 动化软件测试提供支持的实践组成的一个集合。目前,软件业中主要存在的几种 测试框架是根据用例和测试集合的重用性进行分类的,主要包括以下五种【7 】; 测试脚本模块化框架 测试库架构框架 数据驱动测试框架 关键字驱动或表驱动测试框架 混合的测试自动化框架 2 2 1 测试脚本模块化框架 测试脚本模块化架构,是最基本的框架。就是在一个部件前面构建一个抽象 层以掩藏应用程序其他的部件方面,它把应用程序从在部件的修改中隔离开来并 规定了在应用程序设计中的模块性。 当进行测试用例的开发时候,与应用程序的模块、部件、功能相对应的独立 的小用例被生成。然后这些小用例会被按级层结合在一起组成一个大的测试。使 用这个框架会产生高度的模块化,有利于所有测试脚本的维护。 同时,为了提高自动化测试套件( t e s ts u i t e ) 的可维护性和可测量性,测 试脚本模块化框架应用了抽象或封装的原则。当某一个控件或功能被修改,所需 要改变的只是底层调用这个控件或功能的脚本,而不是测试这个控件或功能的所 有测试用例。 1 7 浙江大学硕士学位论文 第2 章测试自动化框架的需求及分析 2 2 2 测试库架构框架
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025版企业培训需求分析与实施合同
- 2024年西安市长安区教育局公办中学招聘真题
- 2024年四川省经济和信息化委下属事业单位考试真题
- 2025版房地产售后服务合同范本集
- 2025版房地产开发项目多方合作协议范本
- 2025版公共设施PPP项目合同第三、四章风险评估与管理指南
- 二零二五年度纺织品原料采购与销售一体化合同范本
- 独居沙发改造方案范本
- 护坡施工方案分包出么
- 尼龙办公地毯施工方案
- GB/T 9729-2007化学试剂氯化物测定通用方法
- MA控台基本知识和技巧
- 三视图及尺寸标注课件
- 东芝空调用户使用手册
- BVI公司法全文(英文版)
- 住房公积金投诉申请书
- 众辰变频器说明书3400
- 《世说新语》乘船 完整版课件
- 施工现场安全检查记录表(周)以及详细记录
- 《财务管理》课程教学实施方案
- 煤矿地质基础知识课件
评论
0/150
提交评论