




已阅读5页,还剩41页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
西安建筑科技大学硕: 论文 自动化测试技术在软件项目中的应用 专业:计算机应用技术 研究生:武秦欣 导师:董丽丽副教授 摘要 随着软件测试的研究发展,自动化的测试管理和洲试技术的水,p 也得到了很 大提高。其优点主要体现在:软件测试管理对测试工作的实施有重要指导作用, 为软件企业提供一个系统的、分阶段逐步递进的测试方案,而自动化测试的引入 则可以提高测试效率,方便地对新版本执行回归测试、执行史多更频繁的测试; 也可以替代一些有困难的手工测试。并具有迭代测试的一致性和可重复性、解决 测试与开发之问的矛盾的特点等等。因此采用何种工具进行测试管理,以及如何 利用工具实现测试的自动化,已经成为软件测试领域中研究的新课题。 本文从中国银行个人网上银行项目的软件测试实践出发,阐述了测试管理和 自动化测试的基本原理和意义,对自动化测试中的录制一回放技术、脚本技术进行 了,详细分析,介绍了i b mr a t i o n a l 测试工具集,并结合实际工作重点对缺陷管理 和自动化的g u i 测试进行了分析和实现。主要内容包括: 1 ) 软什测试管理工具在软件测试过程中的应用:使用r a t 1o n a c e a r q u e s t 进行缺陷管理,通过缺陷管理: 具进行测试流程的定制,收集和分析缺陷数掘, 实现缺陷在软件_ _ 【二程中的统计和追踪,从而在缺陷数据中得到很多与软件质量相 关的数据,为项目的优化提供:必要支持。 2 ) 自动化:l :具在g l 【功能测试上的应用:使用r a t i o n a lr o b o t 工具实现功 能洲试,录制g u ( 公共肖j 户接口) 脚本,分析路径,通过脚木凹放实现自动化的功 能测试,调用r a t l o n a l j r e s t l a n a g e r 对脚本进行分析,引入数据池实现不同测试 数据的迭代测试,完善测试自动化。 关键词:缺陷,测试管理,录制一圈放,脚本,数据池 砥安建筑科技大学t i d = 论文 t h e a p p l i c a t i o no f a u t o m a t i o nt e s t i n gt e c h n o l o g yi n s o f t w a r ep r o j e c t s s p e c i a l t y :c o m p u t e ra p p l i c a t i o n & t e c h n o l o g y n a m e :w uq i n x i n t u t o r :a s s o c i a t ep r o f d o n gl i l i a b s t r a c t s o f t w a r et e s t i n gm a n a g e m e n ta n ds o f t w a r et e s t i n ga u t o m a t i o nt e c h n o l o g yh a v ea g r e a tp r o g r e s si ns o f t w a r ee n g i n e e r i n g s o f t w a r et e s t i n gm a n a g e m e n tt e c h n o l o g yp l a y s a ni m p o r t a n tr o l eo nt e s t i n gi m p l e m e n t a t i o n a tt h es 1 1 f t i et i m e ,i to f f e r sp r o j e c tt e a m s w i t has y s t e m i c ,s t e p w i s et e s t i n gs c h e m e s o f t w a r et e s t i n ga u t o m a t i o nt e c h n o l o g y s u p p l i e sf l ua u t o m a t i c ,c o n s i s t e n ta n dr e p e t i t i v em e c h a n i s mf o rs o f t w a r et e s t i n g i ti sa g o o dw a yt os o l v et h ed i f f i c u l t i e si nm a n u a lt e s t i n g ,a n di sag r e a th e l p f u lt oi m p r o v e s o f t w a r et e s t i n ge f f i c i e n c y s oh o wt oa p p l ys o f t w a mt e s t i n gm a n a g e m e n ta n ds o f t w a r e t e s t i n ga u t o m a t i o nt e c h n o l o g yt op r a c t i c a lp r o j e c t si sad e wt o p i ci nt h ef i e l do f s o f t w a r e t e s t i n g a c c o r d i n gt ot h ew o r kp r a c t i c eo nt h es q ao ft h eb o c ( b a n ko fc h i n a ) o n l i n e p r o j e c t ,t h et h e s i se x p a t i a t et h eb a s i ct h e o r yo ft e s tm a n a g e m e n ta n da u t o m a t i o n , a n a l y z et h er e c o r d - p l a y b a c ki nd e t a i l ,i n t r o d u c et h ei b mr a t i o n a lt o o l ss u i t e ,i m p l e m e n t t e s t i n gm a n a g e m e n ta n dt e s t i n ga u t o m a t i o n t h em a i nc o n t e n t si n c l u d et h a ta p p l y r a t i o n a lc l e a r q u e s tt or e a l i z et h es t a t i s t i ca n dt r a c ko ft h ed e f e c ti nt h es o f t w a r ep r o j e c t , c o l l e c ta n da n a l y z et h ed e f e c td a t a ,o f f e re s s e n t i a ls u p p o r tf o ro p t i m i z a t i o no ft h e p r o j e c t b e s i d e s ,a p p l yr a t i o n a lr o b o tt oi m p l e m e n tt h ea u t o m a t i cf u n c t i o nt e s t i n g , r e c o r dt h et e s ts c r i p t ,a n dm a k eu s eo fp l a y b a c kt or e a l i z ef u n c t i o nt e s t i n g f u r t h e m m r e , b ym e a n so fi m p o r t i n gt h ed a t ap o o l ,w h i c hc a ni m p l e m e n tt e s t i n gw i t hv a r i o u st e s t d a t a ,i m p r o v et h eq u a l i t yo f t h et e s ta u t o m a t i o n k e y w o r d :d e f e c t ,t e s t i n gm a n a g e m e n t ,r e c o r d - p l a y b a c k ,s c r i p t ,d a t ap o o 声明 本人郑重声明我所早交的论文是我个人在导师指导下进行的研究j 。作及取得 的研究成果。尽我所知,除了文中特别加以标注和致谢的地方外,论文中不包含 其他人已经发表或撰写过的研究成果,也小包含本人或其他人在其它单位已申请 学位或为其他用途使用过的成果。与我一同工作的同志对本研究所做的所有贡献 均已在论文中做了明确的说明并表示了致谢。 申请学位论文与资料若有不实之处,本人承担一切相关责任。 论文作者签名 掰反 日期:删, 关于论文使用授权的说明 本人完全了解西安建筑科技大学有关保留、使用学位论文的规定,即:学校 有权保留送交论文的复印件,允许论文被查阅利借阅;学校可以公布论文的全部 内容和部分内容,可以采用影1 = _ j 、缩印或者其它复制手段保存论文。 ( 保密的论文存论文觯密后应遵守此规定) 论文作者签名:锥处导师签名: 注:请将此页附在论文首页。 舔面 同期:归移二 西安建筑科技大学硕士论文 1 1 背景介绍 第1 章绪论 1 9 8 3 年,i e e e 提出了软件工程标准术语,其中对软件测试的定义为:“使用人 :亡和自动手段来运行或测试某个系统的过程m ,其目的在于检验它是否满足规定的 需求或是弄清预期结果与实际结果之间的差别”,这一定义明确提出软件测试是以 检验是否满足需求为目标。软件测试管理就是基于这一目标建立的一套完整的、 理论的、高效率的系统活动。包括设计、管理各阶段的测试计划、测试用例、测 试流程、记录、反馈测试人员发现的缺陷,跟踪并统计其结果,防调、组织测试 人员和开发人员等内容。同时,软件自动化测试作为软件测试中一个重要的组成 部分,它可以完成许多手工测试无法实现或者难以实现的测试。从而提高软件质 量,节省经费,缩短产品发布周期。 所以在测试工作中引入测试管理和自动化测试技术,可以为软件企业提供一个 多阶段、高效率、逐步递进的实施方案。通过此管理方法,软件企业还可以用有 限的时间和成本完成软件开发,确保软件产品的质量,进一步提高计算机软件在 市场上的竞争能力。因此,近年来软件测试管理和自动化测试技术的应用愈来愈 受到i t 行业的关注。 但是由于国内对软件测试的研究起步较晚,加上对测试的一些误解以及测试 人力资源的缺乏,造成我国在测试领域与国外软件行业的差距。主要存在以下三 个方面的问题: ( 1 ) 认识问题:重开发、轻测试,将测试置于从属地位;没有认识到软件项 目的如期完成不仅取决于开发人员,更取决于测试人员。 ( 2 ) 管理问题:随意化、简单化,未建立有效的、规范的测试管理体系。 ( 3 ) 工具问题:缺少自动化工具的支持,对于验收阶段的依赖人力。 所以,对国内软件企业来说,不仅要提高对软件测试的认识,同时要在实际 的测试工作中引入测试管理和自动化测试技术。企业在这方面的投资,会对整个 开发工作的质量、成本和周期带来非常明显的效果。中国的软件产业要健康发展, 软件测试管理体系和测试技术的发展势在必行。 西安建筑科技大学硕士论文 1 2 国内外的研究现状 在软件业较发达的国家。“3 1 ,软件测试不仅早已成为软件开发的一个有机组成 部分,而且在整个软件开发的系统工程中占挢;着相当大的比重。以美国的软件 开发和生产的平均资金投入为例,通常是:“需求分析”和“规划确定”各占百分 之三,“设计”占百分之五,“编程”占百分之七,“测试”占百分之十五,“投产 和维护”占百分之六十七。 软件测试管理也已成为软件产业中的一个独特市场。在美国硅谷地区,凡是 软4 f - 7 = 发企业或是设有软件开发部门的公司,都有专门的软件测试管理中心,引 入了自动化的测试管理设施和工具、并完全按照软件测试管理体系来进行测试。 i - i 前国外测试p _ - i 动化的工具多种多样“1 ,例如: ( a ) m e r c u r yi n t e r a c t i v e 公司的w in r u n n e r 是一种企业级的功能测试工具, 用于检测应用程序是否能够达到预期的功能及正常运行。通过自动录制、检测和 回放用户的应用操作,w i n r u n n e r 能够有效地帮助测试人员对复杂的企业级应用的 不同发布版进行测试,提高测试人员的工作效率和质量,确保跨平台的、复杂的 企业级应用无故障发布及长期稳定运行。 ( b ) l o a d r u n n e r 是一种预测系统行为和性能的负载测试: 具。通过以模拟上 千万用户实施并发负载及实时性能监测的方式来确认和查找问题,l o a d r u n n e r 能 够对整个企业架构进行测试。通过使用l o a d r u n n e r ,企业能最大限度地缩短测试 时间,优化性能和如1 速应用系统的发枷周期。 ( c ) t e s t d i r e c t o r 是业界第一个基于w e b 的测试管理系统,它可以在公司内部 或外部进行全球范围内测试的管理。通过在一个整体的应用系统中集成了测试管 理的各个部分,包括需求管理,测试计划,测试执行以及错误跟踪等功能 ( d ) i b mr a t i o n a ls o l u t i o n s 是在r u p 测试方法论的基础构建的软件自动化测试 : 具集,它有多种测试: 具组成,例如:管理平台工具t e s t m a n a g e r ,测试需求管 理:亡具r e q u i s i t e p r o 、缺陷追踪工具c l e a r q u e s t ,自动化测试工具r o b o t 等,并通过 t e s t m a n a g e r , r e q u i s i t e p r o 、c l e a r q u e s t 、r o b o t 的完美集成,实现了对整个软f - b 澳0 试生命周期的管理,可以帮助软件测试团队快速建立软件测试平台和测试管理流 程。 不过在我国软件企业不断提高产品质量,积极推动测试发展的趋势下5 1 ,我国 的测试技术也得到了发展,主要的研究成果如下: 1 基于c i s 的测试用例生成方法 c a s ew e s t e r nr e s e r y eu n i v e r s it y 的l e ew h i t e 博士在2 0 0 0 年,提出基于 c l s 脚本转换器来生成完整交互序列测试用例。优点:能记忆平l i 回放用户操作,减 西安建筑科技大学硕二i :论文 少重复劳动。缺点:只能被动捕获执行信息,缺乏交互性。 2 基于对象建模的g u i 测试 :i 匕京大学的王立福教授在2 0 0 0 年,提出一种界面类对象建模技术,体现了 对象的封装、通信、动态特征。优点:使得界面对象易于识别。缺点:( 川测试用例 的覆盖程度不够理想。 3 基于界面构件关联图的测试方法 浙江大学的谭建荣教授,2 0 0 2 年提出界面构件关联图,利_ = i j 构件的相互关 系,提出测试覆盖准则和测试用例生成方法。优点:有较好的交互关系和覆盖 准则。缺点:关联提取复杂,导致关联图冗余。 同时,萌芽中的测试管理工具市场正开始起步”1 。例如,b m s ( 缺陷跟踪管理系 统) 2 0 0 3 和,l c mc 测试用例管理系统) 2 0 0 3 的发夼填补了国内软件公司目前在测试 管理软i - t q f 场上的空白。这些测试工具的研发也通过与国外企业的交流与合作, 逐步成为各软件企业竟相开发的目标。 1 3 本文的主要工作 本论文主要依托网银新平台( e f s ) 的集成测试工作实践,利用r a t i o n a l 工具 进行测试管理,主要是缺陷管理,并应用r a t i o n a lr o b o t 对系统进行功能方面的 测试。e f s 是中国银行个人网上银行服务的新扩展,项目由神州数码公司和s y b a s e 公司的全资予公司f f i 合作完成,现已投入使用,本人于2 0 0 4 - - 2 0 0 5 年参与了神 州数码公司中行网银项目组的测试工作,根据该项目的测试工作和管理实践,撰 写了本论文,主要内容如下: 1 、研究软件测试管理和测试自动化的理论知识,以及对软件测试工作的意义。 2 、从中行网银系统入手,根据测试管理的过程、内容、功能,选择管理工具 并与其i 三_ - i - 具进行比较。 3 、通过缺陷管理工具r a t i o n a lc l e a r q u e s t 实现缺陷在软件: 程中的统计和 追踪缺陷数据的收集和分析,从而在缺陷数据中得到很多与软件质量相关的 数据,为项目的优化提供必要支持。 4 、针对e f s 系统主要模块和业务流程,应用r a t io n a lr o b o t :亡具实现功能 测试,录制( :u 【( 公共用户接口) 脚本,分析路径,通过脚本回放,实现系统功能的 自动化测试。 5 、引入数据池实现测试数据的建立和多组数据自动测试,完善测试自动化。 西安建筑科技大学硕二| 二论文 第2 章测试管理与自动化测试 缺陷管理的目标是要收集缺陷、统计缺陷、处理缺陷,而自动化测试则是要 发现缺陷,用脚本代替人去执行繁琐重复的工作。特别是g u i 功能测试。如果说 缺陷管理是整个测试管理的核心部分,那么自动化测试则是实现这个核心过程中 的手段。 2 1 测试管理内容 软件的测试管理包括多方面的内容,从不同的角度划分,可以有不同的集合。 从实施阶段上软件测试管理可以分为软件测试团队组织管理、软件测试计划 管理、软件测试用例管理、软件缺陷( 错误) 跟踪管理这四个部分”1 。 ( a ) 软件测试团队组织管理:就是应该如何分配测试活动中的角色、组织相 关人员以及促进团队人员之间的知识交流和沟通等。 ( b ) 软件测试计划管理:这部分内容具体涵盖软件测试策划、软件测试技 术、测试进度管理、成本管理等几个部分。其中测试策划工作主要是 指具体测试活动实施之前做好策划工作,如制订测试计划;软件测试 技术工作主要是指测试团队应根据软件项目的具体实际制订出所要采 用的测试技术;测试进度管理工作主要是指排出各项测试的时间进度 及人员安排;测试成本管理工作的内容日l j y t j 出测试活动中所涉及到的 资源需求。 ( c ) 软件测试用例管理目的是建立测试人员的用例库。它是测试团队在长 期实践过程中逐步积累起来的测试经验、测试工具、规格文档。测试 用例库管理工作做得越好,测试团队在实际测试过程中就能越少走弯 路,测试团队内部的知识交流和传递就越充分,测试用例或规格文档 的重复开发工作也就能被有效地避免。 ( d ) 软件缺陷跟踪管理就是要确保找到新的缺陷并报告给缺陷管理系统、 检查缺陷的状态、所发现的缺陷是否都已经被开发团队纠正或处理过, 并且没有引入新的缺陷错误等等。通常这个过程称为回归测试。回归 测试如发现问题,继续通过交流平台报告给开发团队,按上述流程循 环,直至回归测试最终通过。 从测试阶段上来分,测试管理包括”“”: 西安建筑科技大学硕:i 二论文 ( a ) 测试计划:根据项目的:i :期和成本的要求来给测试分配时问和资源,是 对整个测试过程的把握和对测试阶段所需时问的估计。 ( b ) 测试方案:根据软件质量应该达到的要求和测试计划的要求确定测试的 方法、步骤和周期,规定测试环境,设计测试用例和准备测试数引等。 ( c ) 测试实施和缺陷跟踪:依照测试方案进行测试并填写测试记录以便缺陷 跟踪。 ( d ) 测试总结与报告:对测试过程中发现的问题的总结,使项目管理人及时 发现问题、解决问题的前提,同时也是测试经验的积累。 从设计的角色上分,包括六种角色的人员:项目管理人员、测试负责人员、测 试用例编写人员、配置管理人员、测试实施人员和软件,f 发人员。项目管理人需 要掌握测试的质量和控制测试的时问。测试负责人需要制定测试方案和编写测试 报告。测试用例编写人需要编写测试用例。配最管理人需要完成实际的测试工作 并填写测试报告。软件开发人需要根据测试发现的问题列表来维护编码。 2 2 测试管理的过程 测试管理过程主要包括:测试方案管理、用例管理、流程管理、缺陷管理和 测试报告管理等部分“,如下图所示: 图2 1 测试管理的过程 西安建筑科技大学顶士论文 其中测试方案管理的内容为:单元测试、集成测试和系统测试的测试计划的录 入、修改、删除、查询和打印“”1 。设计测试用例,准备测试数据。 需求变更管理:修改测试用例和测试数j l :,记录测试| ;= i 志。 测试用例管理:建立用例库,对测试用例的增、删、改、拷贝和查询以及对缺 陷的追踪,例如查询测试状态包括:已提交,已分配,修改中,待验证等,除此 之外还包括测试用例的输入、编号和归档等操作。 测试流程管理:测试进度管理,测试流程标识,记录测试日志及状态报告。以 及对一些边界模糊的用例达成通过失败标准。 缺陷管理:测试中的缺陷处理流程、缺陷登记、缺陷分配、缺陷修复、缺陷 复测、缺陷查询、缺陷统计分析以及缺陷与测试用例的关联。 测试报告管理:追踪统计缺陷,生成单元测试、集成测试和系统测试的测试报 告。 此过程中的关键环节为测试用例管理和缺陷管理,它们的实施对于项目测试 的实施、测试质量、效率的提高有着重要的作用。 2 3 缺陷管理 缺陷管理是测试管理过程中的一个核心部分,测试的目的是为了尽早发现软 件系统中的缺陷,因此,对缺陷进行跟踪管理,确保每个被发现的缺陷都能够及 时得到处理是测试工作的一项重要内容。 2 3 1 缺陷的描述 软件缺陷( 也称“b u g ”) 是任何可以影响到程序完整而有效地满足用户要求的 错误的总称“。例如语法错误、拼写错误、标点错误,或者是一个不正确的、冗 余的程序语句或有缺陷的程序段。 缺陷可能出现在程序中、设计中,甚至出现在需求规格说明或其他文档中。 软件缺陷不仅影响用户使用,而且是经费超支和时问延期的主要原因。但软件缺 陷是客观存在的,没有哪个软件产品是没有缺陷的。 从来源上讲“”,软件缺陷3 6 3 9 来自软件实现阶段,6 1 一6 4 来自软 件分析设计阶段,也就是说编程阶段并不是软件缺陷的唯一来源,甚至不是主要 来源。为什么软件分析设计阶段会引起很多的缺陷呢? 主要有以下几个原因: ( a ) 设计错误。虽然对问题深思熟虑,却做出了错误的设计决定。 ( b ) 知道怎样做设计,但由于疏忽大意,出现了一些简单的错误。 西安建筑科技大学硕二卜沦文 ( c ) l :i f 于不理解需求,而不知道要做什么,设计虽然正确地实现了你认为需要 完成的功能,但所完成的功能并不是系统所需要的。 软件测试就是有计划、有设计、有实现的去发现软件缺陷、改j i 这些缺陷, 从而提高软件可靠性,提高软件质量的活动。 2 3 2 缺陷的生命周期和管理流程 缺陷可以按照生命周期基本分为以下的状态“: ( a ) 已提交( s u b m i t t e d ) :缺陷的初始状态。 ( b ) 已分配( a s s i g n e d ) :缺陷的等待状态,己分配表示缺陷已有项目经理分配给 相关的开发人员,缺陷周期开始。 ( c ) 修改i = i = j ( o p e n e d ) :缺陷的修改状态,正在修改中。 ( d ) 待验证( r e s o l v e d ) :缺陷的已修改待验证状态,缺陷已经修改了,需要再次 测试验证。 ( e ) 问题重现( r e o p e n e d ) :缺陷的问题重现状态,缺陷经过回归测试后,尚存在, 需重新修改。 ( f ) 结束( c l o s e d ) :缺陷的问题已解决。 ( g ) 拒绝( r e j e c t e d ) :不认为是缺陷。 图22 缺陷的生命周期 西安建筑科技大学硕士论文 缺陷的生命周期中还应有以下的角色组成: 测试人员:进行测试的人员,缺陷的提交者: 测试经理:对整个测试_ - e f i :负责,制定测试计划,并确认羽1 分配缺陷: 开发人员:执行修复缺陷的人员: 评审委员会:对缺陷进行最终确认,在项目成员对缺陷达不成一致意见时,行 使仲裁权力,一般由需求人员组成。 测试人员使用执行用例进行系统测试后( 或外部人员在使用系统中) ,若发现 缺陷则记录下来“,并登记在缺陷管理系统中,项目经理对其进行审核。如果不 是缺陷,则拒绝,缺陷状态设置为r e j e c t e d :如果确认是缺陷,分配给相应的开发 人员,设置缺陷状态为a s s i g n e d ,得到确认的缺陷被“激活”,缺陷进入了生命周 圳,此时的状态为待解决,缺陷得到解决后,设置缺陷状态为r e s o l v e d ,测试人员 这时会检查缺陷管理系统,并重新验证,根据问题是否重现,设置缺陷状态,对 于不能解决和延期解决的b u g ,不能由开发人员自己决定,一般要通过某种会议( 如 评审会) 通过才能认可。 2 3 3 缺陷管理系统的意义 缺陷能够引起软件运行时产生的一种不希望或不可接受的外部行为结果,软 件测试过程简单说就是围绕缺陷进行的,对缺陷的跟踪管理具有以下现实意义“”: ( a ) 确保每个被发现的缺陷都能够被分配处理( 即使在此迭代周期内没有修 正,也要修改该缺陷的状态) ; ( b ) 收集缺陷数据、并根据缺陷趋势曲线识别测试成果,来确定测试过程是否 结束。 ( c ) 收集缺陷数据并在其上进行数据分析,作为组织的过程财富。一个运行良 好的组织中,缺陷数据的收集和分析是很重要的,从缺陷数据中可以得到 很多与软件质量相关的数据。 缺陷管理系统不仅实现了缺陷生命状态的控制与转换,使每个缺陷都能够被 全程跟踪和管理,而且采取种种措施加快了缺陷处理的速度,进而提高了开发人 员和管理人员对缺陷生命周期的控制能力。通过缺陷管理系统设置缺陷的级别、 优先级别、重现性、缺陷类型等参数”,可以分清软件缺陷的轻重缓急,对于重 要的软件缺陷,优先进行处理:软件缺陷类型和修改类型参数,能帮助分析错误所 在,修改后分析错误原因,记录修改类型有利于问题的| 亘】放和经验的积累。缺陷 管理系统可以监控管理每个缺陷的生命过程,直至解决这个缺陷:而测试人员可以 参加缺陷的讨论,提出处理意见和方法。这样可以最大限度地发挥每一个人的智 西安建筑科技大学硕二l 沦文 慧,使缺陷处理进程不至于被难题耽搁,提高缺陷处理的速度。 2 4 自动化测试 手工测试是一个劳动密集型的工作,出错率高,成本也较高,不支持那些可 能 l j 自动测试工具完成的相同种类的质量检查。软件自动化测试作为软件测试的 一个重要组成部分,它可以替代许多手工测试繁琐的测试过程,实现手工测试无 法实现或者难以实现的测试”“。正确、合理的实施自动化测试,能够快速、彻底 的对软件进行测试,从而提高软件质量,节省经费,缩短产品发布周期。基于工 具的软件测试技术的自动化,也是软件测试的发展趋势。引入自动测试工具能够 用更有效、可重复的自动测试环境代替传统的手工测试活动。减少测试开销,增 加有限时间内的测试。更加快速地开发出高质量的软件产品。 在这种形势下,传统的人工测试己经很难满足要求,发展自动化测试成为必 然的趋势,因而基于工具的软件自动测试在软件工程中的应用将会越来越广泛。 2 4 1 动态测试方法的分类 软件测试的方法和技术是多种多样的。对于软件测试技术,可以从不同的角度 加以分类”:从是否需要执行被测软件的角度,可分为静态测试和动态测试。从测 试是否针对系统的内部结构和具体实现算法的角度来看,可分为白盒测试、黑盒 测试和灰盒测试。 ( a ) 黑盒测试 黑盒测试也称功能测试或称数据驱动测试的测试,是一种重要的测试方 法,在进行黑盒测试时,仅把软件当作一个黑盒,并不涉及程序的内部 构造。一般己知产品所应具有的功能,通过测试来检测每个功能是否都 能正常使用,在测试时完全不考虑程序内部结构和内部特性的情况下, 测试者对程序接口进行测试,它只检查程序功能是否按照需求规格说明 书的规定正常使用,程序是否能适当地接收输入数据而产生正确的输出 信息,并且保持外部信息( 如数据库或文件) 的完整性。因此黑盒测试是 从用户的观点出发的测试,它是从软件需求出发,根据软件需求规格说 明设计测试用例,并按照测试用例的要求运行被测程序的测试方法。黑 盒测试方法主要有等价类划分、边界值分析、因果图、缺陷推测等,主 要用于软件确认测试。黑盒法着眼于程序外部结构,不考虑内部逻辑结 构,针对软件界面和软件功能进行测试。黑盒法是穷举输入测试,只有 把所有可能的输入都作为测试情况使用,爿能以这种方法查出程序中所 西安建筑科技大学硕:i 二论文 有的缺陷。实际上测试情况有无穷多个,人们不仅要测试所有合法的输 入,而且还要对那些不合法但是可能的输入进行测试。 传统意义上的黑盒法是在程序的接口上进行的测试,主要是为了发现以 下j l 类缺陷: 1 ) 是否有不正确的或遗漏的功能: 2 ) 在接口上,输入能否正确的接受,能否输出正确的结果( 界面缺陷) : 3 ) 是否有数据结构缺陷或外部信息( 如数据文件) 的访问缺陷: 4 ) 性能上是否能够满足要求: 5 ) 是否有初始化或终止性缺陷。 黑盒测试和白盒测试一者的测试侧重点不同,使用场合也有差别。在进行单 元测试时大都采用白盒测试,而在功能测试和系统测试时一般采用黑盒测试。 ( b ) 白盒测试 白盒测试也称结构测试或称逻辑驱动测试。采用这种测试方法,测试者 必须有被测程序的源代码,在进行白盒测试时,它需知道软件( 程序) 的 内部机制,通过测试来检测软件( 程序) 内部机制是否按照规格说明书的 规定正常进行,按照程序内部的结构测试程序,检验程序中的每条通路 是否都有能按预定要求正确工作,而不管它的功能。白盒测试要分析程 序的内部结构,并根据内部构造结构设计测试用例。因此白盒测试是一 种按照程序内部的逻辑结构和编码结构设计并执行测试用例的测试方 法。白盒测试的主要方法有逻辑驱动、基路测试等。“白盒”法全面了解 程序内部逻辑结构、对所有逻辑路径进行测试,是一种穷举路径测试。 在使用这一方案时,测试者必须检查程序的内部结构,从检查程序的逻 辑着手,得出测试数据。“不太起眼”的非主流逻辑路径上可能始终存在。 在白盒测试过程中,要求针对程序在特定条件、特定路径下执行的特殊 结构做到尽可能的覆盖,即做到所有独立路径至少执行一次、所有逻辑 判定取“真”和“假”两种情况至少执行一次、在循环的边界和边界内 执行循环体、所有内部数据结构被测试,以确保这些特殊结构执行的有 效性和可靠性。动态白盒测试根据静态测试得到的软件复杂度,推算出 代码中独立路径的条数,并依据独立路径设计测试用例,然后手工或自 动地运行被测代码,得到实际代码运行中的各项结构覆盖率。 ( c ) 灰盒测试 灰盒测试是对软件的规格说明和它的底层实现都进行测试的测试,灰盒 测试的一个目标就是找出软件中的一些独有的奇怪的缺陷。它是将白盒 测试和黑盒测试结合起来形成的一种测试方法,吸收了两种方法的优点。 综合上述,白盒测试主要针对,于发人员的单元测试和集成测试,而黑盒测试 1 0 西安建筑科技大学硕二i :论文 主要针对功能测试,在系统测试中需要进行大量的黑盒测试才能完成检验系统功 能,找出系统缺陷的任务,但同时,开发人员在修复缺陷时,仍然需要对代码进 行自盒测试。 2 4 2 功能测试的过程 软件测试从软件工程的项目生命周期上可以分为:单元测试、集成测试、系 统测试和验收测试。其中在集成测试和系统测试阶段、按测试的对象不同又可以 分为两种:g u i 功能测试和性能测试。 软件功能测试是用来测试软件是否具有满足用户需求的功能,主要使用动态 黑盒测试技术。黑盒测试技术注重于软件的功能错误和遗漏、界面问题、数据计 算或外部数据库访问错误、性能错误、初始化和终止错误等,通过划分程序的输 入和输出域来确定测试用例,功能测试在软件开发的各个阶段甚至在软件发布后 的维护或升级中都相当重要“3 1 。现在对大型软件的测试一般都使用自动化测试技 术。 自动化功能测试的过程主要有脚本的录制、修改和回放三个环节。,如下图 所示: 图2 3 功能测试的过程 设计测试案例。主要包括:确定用例执行前所需要的测试环境和先决 条件:确定所要测试的目标:确定对输入数据的要求和期望的输出。设 计测试案例时应:努力提高覆盖率,尽量减少执行、调试和结果分析 的工作量:减少测试案例的数量、加强其独立性、并精确地文档化等 西安建筑科技大学硕二e 沦文 ( b ) ( c ) 来加强可维护性。 录$ i j i n 试脚本。录制测试脚本之前,严格按照测试用例录制测试心j 本。 配置数据和优化脚本。大型软件依赖和共享的数据较多,业务流程较 复杂,因此配置数据时要用一份文件详细描述:哪些数据需要引入数 据池,如何对全局的、过程问的参数命名,数据怎样放置和联系。优 化脚本时往往要设置分支和循环,设置对象的属性,设置检查点和数 据的输出等,以使脚本能按照测试案例的要求适应各种情况。 执行测试任务,分析并报告测试结果。 2 4 3 录制一回放技术 一、实现级别 录制一回放技术是在窗口系统的基于消息管理机制的基础上实现的,通过对被 测系统的监控,获得被测系统的运行信息,把用户在被测试的系统上所做的操作 和输入按照时间顺序全部记录在指定的测试脚本中。 以w i n d o w s 操作系统为例,通常这一操作是通过实现w i n d o w s 底层消息处理 函数来完成的。用户在被测试的g u i 上的各种操作实际上最终可以归结产生了 键盘消息和鼠标消息。这样测试工具就可以对这些消息进行捕获,从消息信息中 获取被测系统的窗口或控件句柄,根据获得的句柄,进一步获得窗口或控件的详 细信息,然后将这些信息记录到指定的测试脚本中,完成用户操作的记录。例如: 输入文字的时候取得键盘消息k e y b o a r d m e s s a g e ,鼠标按下的时候取得鼠标消息 m o u s e m e s s a g e 。对于用户输入的捕获,g u i 录制一回放工具将以三种级别捕获,即 硬件级别、操作系统级别和进程级别。 ( a )硬件级别是最低的级别,主要是采用硬件完成对用户输入的录制和 回放,比如鼠标的双击、键盘输入某个字符等。之所以采用硬件进 行录制和回放,是出于安全的考虑,硬件设备可以捕获键盘敲击的 键值,从而监控该计算机的使用,或者它可以加密键盘扫描码,以 防止底层恶意代码对计算机的监听。 ( b ) 操作系统级别,在这个级别下,录制和回放功能采用软件完成。软 件实现主要是使用本机代码( n a t i v e c o d e ) 方式调用的系统a p i 函 数。操作系统级别的录制和回放工具主要用于在系统级别对键盘或 鼠标的输入进行监控,由于每个g u i 组件都存在一个在系统级别里 可被识别的g l o b a li d ,所以系统级别的录制一回放工具可以从系统 级别的输入队列中提取出所需的g u i 组件的输入。但是,在操作系 西安建筑科技大学硕:i 二论文 统级别下,由于是调用系统 l ,i 完成录制和回放,工具无法做到完 全识别i jk t v a 对象,因为j a v a 刘象在必须在j a v a 虚拟机( j v m ) 之上 被以别和使用:并且使用本机,a i ,i 的i , dj :l j 与操作系统平台棚关,使 得这种级别的录制和回放:i :具无法做到很轻巧。 ( c ) 进程级别是录制和回放工具列特定的进程进行盟控,一般来说,这 个级别的录制一回放工具可以采用叶+ 或者j a v a 语言实现,并且通 过在测试: 具中对不同语言编写的目标程序加挂针对该语言的包, 就可以骼控大多数语言编写的目标程序,其中加挂的不同语言包主 要是针对这种语言编写的o u i 组件的识别信息。特殊地,对于j a v a 编写的目标应用程序,同样采用j a v a 编写的进程级录制一回放工具 来临控会比较简单有效,因为这样目标程序和测试工具都在j v m 解 释下执行,测试工具可以通过、l a v a 语言中的反射机制识别到目标 应用程序内部的j a v a 类、成员函数和成员变量,扩展第一类o u i 录制一回放工具的功能。 二、技术类型 g u i 的录制一回放( r e c o r d p l a y b a c k 是o u i 自动化测试使用的主要手段之一, 也是目前主流测试工具的实施方法,当今的g u 录制一回放技术共有三种类型。6 “2 7 1 : ( a ) 自动提供对用户手:j 二操作的录制和回放: ( b ) 采用脚本语言模拟用户在被测程序上的操作: ( c ) 对类型( a ) 和( b ) 的综合。 第一类录制回放:亡具主要用于被测应用程序( 目标应用程序) 的回归测试中, 这类工具需要测试人员第一次人工地进行对g u i 的操作,来完成测试脚本的录制 过程,在录制过程中这类测试工具会首先记录目标应用程序o u i 的组件层次结构 和组件自身的信息,随后会截获测试人员在目标程序g u i 组件上触发产生的事件, 随后解析该事件,得到事件的各个参数,保存到测试脚本中,作为将来回放的依 据。测试脚本多以文本格式存放,主要记录两部分内容,一是目标程序的g u i 组 件结构以及组件t - - t 身的属性信息:另一部分就是对测试人员手工操作步骤,也可以 理解为对手工操作引发的事件的记录。回放时,会使用某种脚本语言解析该记录 文件,脚本语言可以分为两大类:外部类型和交互类型。外部类型的脚本只能进行 整个被测程序的调j 目( 如某个i a v a 应用程序) ,它无法单独地针对被测程序内部的 某个方法进行调用,因此外部类型的脚本语言经常是用来记录一系列的黑盒测试 步骤:而对于交互类型的脚本语言,它可以访问到被测程序内部的所有属性和方法 并与之交互,例如对于】a v a 程序来说,交互型脚本语言应该能够访问j a v a 的类, 类成员函数以及成员变量。当脚本语言根据记录的事件信息重新构建了一个事件, 随后会通过记录的f l i t :信息找到作为该事件触发源的组件,然后将重新构建的事 1 西安建筑科技大学硕= 匕论文 件操作再次应用到该组件一h 来完成回放功能。 此类录制一回放工具是最基本,同时也是最有效的,大部分为了完成回归测试 的自动化工具都会选择这一种方式。另外,列于脚本录制得比较清晰,结构化比 较好的测试脚本,还可以进行修改和添加,以更好地满足回归测试的需要。大多 数这种类型的g u i 录制一回放工具完成简单的黑盒录制和回放而不需要交互型脚本 语言的介入,它们仅仅是简单地录制用户的操作步骤并回放,被测程序运行时 ( r u n t i m e ) 的内部状态在这种方式下是不可见且无法修改的。 第二类录制一回放工具借助交互型脚本语言,完成录制和回放的功能。这类脚 本语言在一个s h e l l 环境下1 ,以一系列的命令的方式,对特定功能调用,一旦 某个功能调用完毕,进程控制又会返回到s h e l l 命令行,同时,当前程序的运行 时上下文会被保存到脚本的s h e l l 环境下,这样就可以在模拟用户与被测程序g u i 对象的交互时完成“单步”操作。采用交互型的脚本语言模拟被测运行程序单步 执行的过程类似于程序开发中的“调试”过程,用户可以通过在脚本设鼍对被测 应用程序设翟断点,使得被测应用程序在特定情况下的特定地方停止执行( 这取决 于脚本语言本身的功能) ,而这种“单步运行”优与调试的地方在于,采用脚本语 言,用户可以动态地改变运行环境参数。第二种类型的录制一回放工具采用的是交 互型的脚本语言,它们并不是直接录制用户的操作步骤,而是编写出一批脚本以 备回归测试进行回放,采用脚本方式完成录制一回放的6 u i 测试工具包括j v e r i f i e r r e p l a y j a v a ,s u nw o r k s h o pv i s u a lr e p l a y 等。以典型的r e p l a y j a v a 工具为例子, r e p l a y j a v a 采用了j a c l 脚本语言,j a c l 是t c i 。语言( t o o lc o i t l i n a n dl a n g u a g e ) 的 j a v a 实现。最初的i 、c l 解释器( 即t c i 。s h e l l ) 由c 语言编写,属于交互式可嵌入 的命令脚本化语言,“可嵌入”是指把很多应用有效、无缝地集成在一起,“命令” 的意思是指每一条r c l 语句都可以理解成命令加参数的形式。t c l 解释器类似于 u n i x 的s h e l l ,它允许t c l 命令在一个s h e l l 中被交互地使用或者从某个文件读 入( 有可能是录制好需要重放的脚本) 。另外,1 、c l 几乎可以完全编写复杂的图形应 用程序。正因为这些特性,允许t c l 作为一种控制性的语言来运行一个程序( 在j a c l 下运行j a v a 编写的g u i 程序) ,同时允许它用于测试j a v a 对象的状态,不断更新 的j a c l 解释器已经可以做到能够产生j a v a 的a w t e v e n t 并将它们送到事件队歹0 中 去。r e p a y j 3 v a 正是采用它来完成脚本的录制和回放功能。 第三种类型的录制一回放工具集成了前两种类型的优点,既可以录制用户操 作,又可以通过修改脚本完成断点设置、单步进行等操作,属于这种类型的录制一 回放工具有代表性的是:r a t i o n a l 公司的r o b o t 和m e r c u r yi n t e r a t i v e 公司的 w i n r u n n e r ,这类测试工具功能强大,但属于商业录制回放软件,需要不菲的资 金投入。 西安建筑科技大学硕士论文 2 4 4 脚本技术 测试脚本是测试自动化中必要的组成部分,大多数测试执行:l :具提供的脚本语 言是非常有效的编程语言。脚本中的信息十分广泛,信息越多,越容易出错,因 而更需要修改、管理和维护。 脚本的内容格式依赖于所采用的测试工具和脚本技术”。一般而言,商用 化测试工具
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025粮油食品检验人员模拟试题附参考答案详解(巩固)
- 2024-2025学年资料员之资料员基础知识模考模拟试题附参考答案详解(典型题)
- 2024主管护师(中级)题库检测试题打印附完整答案详解【各地真题】
- 2025年政府机关办公家具采购代理合同协议
- 2025解析房屋装修合同样本
- 解析卷-人教版8年级数学下册《平行四边形》同步测试试卷(含答案详解版)
- 2025山东省蓬莱市中考数学达标测试及1套参考答案详解
- 2025年医师定期考核必考题库及答案
- 2025质量员模拟题库含完整答案详解【网校专用】
- 2024-2025学年度自考专业(汉语言文学)自我提分评估【综合卷】附答案详解
- 光伏项目投标方案(技术方案)
- 模块化炼化设备的设计与集成
- 光伏发电功率预测系统
- HY/T 0404-2024潮流能、波浪能发电装置海试过程控制规范
- 设备维护服务方案(2篇)
- 医院检验科实验室生物安全程序文件SOP
- 手术前术前准备未执行的应急预案
- JJG 270-2008血压计和血压表
- T-CARM 002-2023 康复医院建设标准
- 轻质燃料油安全技术说明书样本
- 毕业设计(论文)-水果自动分拣机设计
评论
0/150
提交评论