




已阅读5页,还剩52页未读, 继续免费阅读
(计算机应用技术专业论文)网络管理系统的web自动化测试设计与实现.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘要 本论文研究的对象是网络管理系统的w e b 自动化测试设计与实现。论文在分 析国内外自动化测试研究发展现状的基础上,对自动化测试实现的理论基础、基 本原理和关键技术进行了深入研究,提出了w e b 自动化测试的测试框架,在此框 架基础上得出了测试方案和测试流程,然后借助i b m 公司的商用自动化测试工具 r a t i o n a lf u n c t i o n a lt e s t e r 实现了网络管理系统的w e b 自动化测试。 在对网络管理系统的w e b 自动化测试设计与实现过程中,论文对每一个w e b 自动化测试功能点的程序控制对象,动作词函数,验证函数,动作词函数与验证 函数的接口,测试集,测试逻辑,测试数据等都做了具体的设计,并以“查询设 备资源”的自动化测试用例的实现过程为实例,具体介绍了以上各个部分的实现 方法与需要遵循的规则,最后将整个网络管理系统1 6 8 0 个w e b 测试用例中的7 2 0 个实现了自动化测试,自动化率为4 2 9 ,达到了行业较高水平。 论文的另外一个工作是对自动化测试系统的可延续性设计进行了研究,从常 见的自动化测试体系本身的性能、可维护性,测试执行的独立性以及测试结果的 可分析性四个方面对可延续性设计提出了具体的实施方案,另外还提出了自动化 测试在未来的可扩充性、对多产品多版本的适应性等可延续性设计需要考虑的问 题。 关键词:w e b 自动化测试测试用例测试逻辑测试数据 a b s t r a c t t h i s p a p e rm a i n l y s t u d i e st h ed e s i g na n dr e a l i z a t i o nm e t h o do fw e bt e s t a u t o m a t i o nf o rn e t w o r km a n a g e m e n ts y s t e m b a s e do nt h ea n a l y s i so fi n t e r n a la n d e x t e r n a lr e s e a r c ha n dd e v e l o p m e n ts i t u a t i o no ft e s ta u t o m a t i o n ,t h ep a p e rf h s ts t u d i e d t h er a t i o n a l e s ,b a s i ep r i n c i p l e sa n dk e yt e c h n o l o g i e sd e e p l y ,a n dt h e n p r o p o s e da s u i t a b l et e s ta u t o m a t i o nf r a m e w o r k , o b t a i n e dat e s tr e s o l u t i o na n dt e s tf l o wb a s i n go ni t f i n a l l y , i tr e a l i z e dt h ew e bt e s ta u t o m a t i o nf o rn e t w o r km a n a g e m e n ts y s t e mw i t ht h e c o m m e r c i a lt e s ta u t o m a t i o nt o o lr a t i o n a lf u n c t i o n a lt e s t e rf r o m i mc o r p o r a t i o n i nt h ep r o c e s so ft h ed e s i g na n dr e a l i z a t i o n ,t h i sp a p e rc o n c r e t e l yd e s i g n sp r o g r a m c o n t r o l l e do b j e c t s ,a c t i o nw o r df u n c t i o n s ,v e r i f i c a t i o nf u n c t i o n s ,i n t e r f a c e so fa c t i o n w o r df u n c t i o na n dv e r i f i c a t i o nf u n c t i o n ,t e s tl o g i c s ,a n dt e s td a t af o ra l lt h ef u n c t i o n p o i n t so fw e bt e s t b yt a k i n gt h ea u t o m a t i o nt e s tc a s e “q u e r yt h ed e v i c er e s o u r c e f o r e x a m p l e ,t h ep a p e rs p e c i f i e st h er e a l i z a t i o nd e t a i l sa n dr e g u l a t i o n st of o l l o w f i n a l l y , 7 2 0o fa l lt h e1 6 8 0w e bt e s tc a s e sf o rt h ew h o l es y s t e ma r ei m p l e m e n t e da u t o m a t i o n , t h ea u t o m a t i o nr a t ei s4 2 9 a n dh a sa c h i e v e dt h eh i 曲e rl e v e ro ft e s ta u t o m a t i o nf i e l d a n o t h e rw o r ko ft h i sp a p e ri st os t u d yt h ec o n t i n u o u sd e s i g no ft e s ta u t o m a t i o n c o m m o na s p e c t so fc o n t i n u o u sd e s i g na r ec o m p r i s e do ft h ep e r f o r m a n c ea n d m a i n t a i n a b i l i t yo ft e s ta u t o m a t i o ns y s t e mi t s e l f , t h ei n d e p e n d e n c eo ft e s te x e c u t i o n ,a n d t h ea n a l y z a b i l i t yo ft e s tr e s u l t t h i sp a p e rg i v e st h ec o n c r e t er e s o l u t i o no fa b o v ef o u r a s p e c t s ,a n da l s op r o p o s e so t h e ra s p e c t sn e e dt ob ec o n s i d e r e di nc o n t i n u o u sd e s i g n , s u c ha se x t e n d i b i l i t yi nf u t u r ea n d c a p a b i l i t yt om o r ep r o d u c t sa n dm o r ee d i t i o n s k e yw o r d s :w 曲t e s ta u t o m a t i o n t e s tc a s et e s tl o g i ct e s td a t a 西安电子科技大学 学位论文创新性声明 秉承学校严谨的学风和优良的科学道德,本人声明所呈交的论文是我个人在 导师指导下进行的研究工作及取得的研究成果。尽我所知,除了文中特别加以标 注和致谢中所罗列的内容以外,论文中不包含其他人已经发表或撰写过的研究成 果:也不包含为获得西安电子科技大学或其它教育机构的学位或证书而使用过的 材料。与我一同工作的同志对本研究所做的任何贡献均已在论文中做了明确的说 明并表示了谢意。 申请学位论文与资料若有不实之处,本人承担一切相关责任。 本人签名:j 三基建 日期立弘 西安电子科技大学 关于论文使用授权的说明 本人完全了解西安电子科技大学有关保留和使用学位论文的规定,即:研究 生在校攻读学位期间论文工作的知识产权单位属西安电子科技大学。学校有权保 留送交论文的复印件,允许查阅和借阅论文;学校可以公布论文的全部或部分内 容,可以允许采用影印、缩印或其它复制手段保存论文。同时本人保证,毕业后 结合学位论文研究课题再撰写的文章一律署名单位为西安电子科技大学。( 保密的 论文在解密后遵守此规定) 本学位论文属于保密,在年解密后适用本授权书。 本人签名: 导师签名: 日期选竺z :! :! 日期三! z ! ,- d 第一章绪论 第一章绪论 伴随着“软件产品越来越复杂,用户的要求越来越高,市场竞争的压力越来 越大,利润持续下滑”的趋势,各软件厂商纷纷开始探索自动化测试方法,以期 “缩短测试时间,提商测试效率,减少测试重复,增加测试覆盖”。然而,作为一 个新的研究领域,软件自动化测试还并不成熟,能够成功实施自动化测试,并从 中受益的公司尚在少数。 上述这些就是本章所要重点论述的课题研究的主要背景,另外,本章还对国 内外研究发展的现状进行了分析,对课题研究的目的和意义进行了说明,最后给 出了本论文完成的主要工作及论文的章节安排。 1 1 课题研究的背景 在i t 产业飞速发展的今天,硬件在质与量方面的发展速度给人们留下了深刻 的印象。相对而言,软件在量的方面同样发展迅速,上千万行的大型系统软件及 百万行的应用软件已经屡见不鲜,然而软件的质量却一直是令所有人头痛的问题, 因为随着规模的扩大,对于质量的保证成了一项异常艰苦的工作。而对软件进行 测试就是保证软件质量最重要和最有效的方法。 测试是保证软件质量的重要手段,也是软件开发过程中的一个重要环节。正 如任何生产过程都离不开产品质量检验一样,测试工作也是软件开发过程中必不 可少的质量检验环节,软件测试工作做得怎样,直接决定着软件产品质量的好坏。 大量统计资料表明,软件测试阶段投入的成本和工作量往往要占软件开发总成本 和总工作量的4 0 到5 0 ,甚至更多1 “。随着软件应用范围的扩大,软件复杂度的 提高,以及软件设计技术的不断发展,软件开发规模越来越大,处理的问题愈来 愈复杂,传统的软件测试技术和方法以及测试工具已经无法满足这种大型的、复 杂的软件测试需要。 面对着“产品越来越复杂,用户的要求越来越高,市场竞争的压力越来越大, 利润持续下滑”的严峻形势,必须想方设法来“缩短测试时间,提高测试效率, 减少测试重复,增加测试覆盖”。因此人们想到了自动化测试,想通过脚本程序 的运行让测试工作自动进行。这就是软件自动化测试这一课题研究的背景。 1 2 国内外研究发展的现状 进行软件自动化测试已经成为软件测试行业的一个必然趋势,各大软件厂商 2 网络管理系统的w e b 自动化测试设计与实现 也都纷纷成功应用和推广起了软件自动化测试:与此同时,很多比较成熟的软件 自动化测试工具也开始商用,并为更多的软件公司所采用;同时,这也促使软件 自动化测试作为一种测试技术得到了长足的发展。可以预见,未来几年或者十几 年将是自动化测试技术飞速发展的时期,不开展自动化测试就等于放弃软件领域 的制高点,就有可能在将来的竞争中处于劣势。 软件自动化测试,已经成为国内外软件工程领域的一个众所周知的课题,不 言而喻,软件测试从业者也都已经意识到软件测试这项工作走向成熟化、标准化 的一个必经之路就是要实旌自动化测试。然而软件行业本身就是一个新兴的行业, 软件测试更是一个新兴的领域,因此自动化测试技术总体上来说尚未成熟。当然, 在很多组织对这项工作还未摸着头脑的同时,也有一些企业已经具有了一定的实 施自动化测试的经验。当前国内外的软件企业或研究单位对于自动化测试的研究 发展的现状大致是; 1 ) 一些研究机构专门从事自动化测试理论研究,它们提出了测试逻辑与测试 数据相分离、建立通用自动化测试框架、使用数据驱动测试、建立测试库等自动 化测试基础理论,并结合这些理淦开发出了一些非常优秀的自动化钡9 试框架和自 动化测试工具,如基于数据驱动的自动化测试框架和i b m 的w e b 自动化测试工具 r a t i o n a lf u n c t i o n a lt e s t e r 等。 2 ) 在自动化测试关键技术方面也已经有了很大的进步,相对于自动化测试诞 生之初的“录制一回放”技术,现在已经有了非常成熟的脚本技术,而且在脚本 技术中已经融入了面向对象的思想,基本上可以说比较先进的编程技术在自动化 测试脚本中都已有了体现;另外,针对不同应用输出( 如命令行输出、g u i 界面 输出、数据库输出等) 的测试结果分析技术也已比较成熟。 3 ) 一些大的公司( 如i b m 和国内的几家大公司) 都有专门的自动化测试部分, 它们依托比较成熟的理论,在自动化测试关键技术方面也是投入大量人力进行研 究,并且购买或自发研制了适宜产品特性的自动化测试工具。在这些公司自动化 测试已经轰轰烈烈地开展,企业也已经从中得到了受益,并且准备继续甚至加大 投资,以期在技术和管理方面更加成熟,并最终获得更大受益,他们是开展自动 化测试工作的领跑者,也必将为自动化测试在整个软件测试行业的蓬勃开展起到 更大的推动作用。 1 3 课题研究的目的与意义 软件自动化测试,最根本的意义是解决手工测试的复杂性和重复性,成为替 代某些重复性行为模式的最佳工具8 i 。 软件自动化测试已经在许多机构实现并推广,它们的成功经验也已经证明了 第一章绪论 自动化测试作为相对于手工测试的实现手段,对于大量重复性的测试工作具有巨 大优势。正确、合理地实施自动化测试,具有如下意义? 1 ) 可以提高测试效率,降低测试成本。 2 ) 可以避免人工测试容易犯的错误:错测、漏测和重复测试等。 3 ) 对于很常用的功能性边界测试,相对于人工测试,其速度更快且执行准确; 4 ) 可以实现快速的回归测试,提高新版本发布的速度和质量,尤其适应目前 流行的迭代开发,因为回归测试的频度高而且工作量大,手工测试很难对新的迭 代版本做出快速评估。 5 ) 对于诸如多用户并发注册、并发请求和并发应答等典型的应用,自动化测 试可以轻松实现,而人工测试几乎是办不到的。 可以说,实施自动化测试是软件行业一个不可逆转的趋势,如果在这个领域 走在前列,无论从企业的核心竞争力还是个人的工作技能来说,都将拥有巨大的 优越性,否则在将来的竞争中就会趋于劣势。 1 4 本论文的主要工作 本论文的选题来自实习单位科研工作的需要,主要研究网络管理系统的w e b 自动化测试的设计与实现方法。 全文主要包括六章,四个部分: 第一部分为第一章,主要介绍课题研究的背景、国内外发展的现状以及课题 研究的目的和意义。 第二部分为第二章,首先对软件自动化测试的定义,软件自动化测试的正确 定位和认识上的误区进行概述,然后重点讲述自动化测试过程中要开展的一系列 工作,实施自动化测试的四个理论基础和两大关键技术。 第三部分为第三、四、五章,是论文的重点部分。其中: 第三章论述w e b 自动化测试原理。首先结合w e b 自动化测试的特点介绍软件 自动化测试的基本原理,程序控制对象、动作词函数、测试集、测试逻辑、测试 数据和测试套等重要概念:然后结合r a t i o n a lf u n c t i o n a lt e s t e r 自动化测试工具, 设计出了w e b 自动化测试的框架和基于此框架的测试方案及测试流程,还提出了 系统可延续性设计需要考虑的问题,以及自动化测试用例的选取原则、建设步骤 等。 第四章是对网络管理系统w e b 自动化测试的设计与实现。它对每一个w e b 自 动化测试功能点的程序控制对象,动作词函数,验证函数,动作词函数与验证函 数的接口,测试集,测试逻辑,测试数据等都做了具体的设计,并以“查询设备 资源”的自动化测试用例的设计与实现的过程为实例,具体介绍了以上各个部分 4 网络管理系统的w e b 自动化测试设计与实现 的设计、实现方法与需要遵循的规则,最后将整个网络管理系统i 6 8 0 个w e b 测试 用例中的7 2 0 个实现五自动化测试,。自动化率达到4 2 9 。 第五章主要讲述网络管理系统谛曲自动化测试的实施结果,包括自动化实现 率以及实际测试执行时的应用率,而且还给出了具体的自动化率和自动化应用率 以及它们对于制定测试策略等所起的作用。 第四部分为第六章,对全文进行了简要总结,概括成果的同时也提出了一些 不足。 第二章软件自动化测试概述 第二章软件自动化测试概述 软件自动化测试就是将软件的测试工作由手工执行改为自动执行,其最根本 的意义就是解决手工测试的复杂性和重复性。 本章首先概述了软件自动化测试的定义,软件自动化测试的正确定位和认识 上的误区,然后重点讲述自动化测试过程中要开展的一系列工作,和实施自动化 测试的四个理论基础和两大关键技术。 2 1 软件自动化测试的定义 软件自动化测试就是将软件的测试工作由手工执行改为自动执行,它是通过 使用某一自动化测试工具和一定的自动化测试技术来验证各种软件的测试需求, 包括测试工作的管理与实施。 更本质的说,“自动化测试”是能够使测试过程简单、快捷,并且有效率的一 种测试手段,是通过计算机而非人工的形式完成的。 自动化测试工具能够提高测试效率、覆盖率和可靠性等,在进行功能测试时, 其准确的含义是回归测试工具,这时工具不能发现更多的新问题,但可以保证已 经测试过的部分的准确性和客观性。多数情况下,手工测试和自动化测试应该相 结合,以最有效的方法来完成测试任务,保证测试质量。 2 2 软件自动化测试的定位 在进行自动化测试前,首先要建立一个对软件自动化测试的认识观,也就是 自动化测试的定位问题。自动化测试的定位准确与否,直接关系到自动化测试的 成败,定位过高会导致成本过高,无法实现,定位过低又体现不出自动化的优势。 自动化测试一般应该如下定位: 1 ) 自动化测试的主要目的不是为了发现问题,而是为了验证功能没有问题。 2 ) 自动化测试不是为了取代手工测试,而是替代人工进行稳定特性的回归测 试。新特性及不稳定的特性建议采用手工测试。 3 ) 自动化测试适合于频繁的重复测试,以检验系统的稳定性。 4 ) 自动化测试工具本身并没有想象力和灵活性,通常自动化测试只能发现约 1 5 的缺陷,而手工测试则可以发现约8 5 的缺陷。 5 ) 单元测试、集成测试、系统负载测试、性能测试、稳定性测试、可靠性测 试等比较适合采用自动化测试,而那些不稳定的软件,开发周期很短的软件,以 6网络管理系统的w e b 自动化测试设计与实现 及一次性的软件等均不适合自动化测试。 上述几点是对软件自动化测试正确的认识,而实际当中很多人却存在如下误 区: 1 ) 很高甚至1 0 0 的自动化测试目标 很高甚至1 0 0 只是一个从理论上可能达到的自动化目标,而实际上达到这样 目标的代价是十分昂贵的,而且操作上甚至是不可能实现的。一般来说,一个4 0 一6 0 的自动化程度已经是非常好的了,达到这个级别以上将会增加自动化测试 相关的维护成本,有时甚至会得不偿失。 2 ) 项目已经落后,希望通过自动化测试为项目赶工期 这种想法是很常见的一个误区,认为自动化测试就是拿来就用,而且高效易 用,其不知自动化测试是需要一系列的学习、培训、设计和实现过程的,而非现 成的东西拈来就用。如果项目已经落后,或者已经陷入到了麻烦之中,就不应该 再考虑自动化测试,当然这个考虑是指全新引入自动化测试。 3 ) 认为自动化测试就是捕获与回放 在自动化测试兴起初期,自动化的测试工具只是被看作是一种捕获和回放的 工具,而现在的自动化测试已经远不止捕获和回放这么简单了,或者说简单的捕 获与回放根本称不上是自动化测试。 4 ) 认为自动化测试工作很简单,根本不需要培训 实际上当一个对自动化测试工具还不是很熟悉的组织或者项目团队开始实施 自动化测试时,培训和指导是至关重要的,因为工具的使用和项目的开展都是自 动化测试本身的成本,只有适当的培训和指导才能使自动化测试工作尽快的得到 开展,少走弯路。 2 3 软件自动化测试的实现过程 软件系统自动化测试的实施依赖于一系列的自动化测试工作的开展,而非一 蹴而就,没有这一系列具体的工作支撑,自动化测试的实现只能是妄想。如图2 1 所示,软件系统的自动化测试过程主要分为以下几个部分: 1 ) 定义自动化测试需求,这个阶段的工作主要是要分析出实际实施自动化测 试的需求有哪些,只有有了明确的目标需求才能很好的开展下步工作。 2 ) 设计自动化测试框架,这个阶段的工作主要是要根据自动化测试需求,设 计出适合被测系统特点的自动化测试框架。 3 ) 实现测试脚本、测试数据。这个阶段的工作主要是将分析得到的自动化测 试需求以测试用例的形式,在测试框架中实现,实现的结果包括测试脚本和测试 数据。 第二章软件自动化测试概述 7 4 ) 自动化测试执行,这个阶段的工作主要是在版本测试时执行已经实现的自 动化测试用例,它是整个自动化测试工作的中心目的。 5 ) 自动化测试结果分析,这个阶段的工作主要是对自动化测试执行后得到的 结果进行分析,以确定系统是否存在缺陷,如果没有结果分析,测试执行也就只 是一个形式而已了,并没有实际的意义。 每个测试用例的自动化过程都将贯穿五个不同的自动化测试工作,它们都要 顺序执行这五个自动化系统测试工作,即在进行自动化框架设计前自动化测试需 求必须被确认下来,框架设计也是真正开始实现测试脚本和测试数据的前提。 图2 1 软件系统自动化测试过程 另外,从图2 1 中可以看出,自动化测试执行和自动化测试结果分析两个部 分的工作需要多次重复,就是在多个版本测试中多次进行测试执行和结果分析, 或者在同一个版本的测试中也可以多次进行,这也是实施自动化测试的初衷。当 然,其余几个部分的工作也都有回溯的过程,只要后面发现了前面的问题就要及 时更正。 8 网络管理系统的w e b 自动化测试设计与实现 2 4 软件自动化测试的理论基础 软件自动化测试的设计与实现是一种典型的软件开发行为,一个成功的自动 化测试可能会使测试一劳永逸,而一个失败的自动化测试则可能会使测试陷入泥 潭,得不偿失。本节重点讲述实施自动化测试的四个理论基础:测试逻辑与测试 数据相分离理论,通用自动化测试框架理论,数据驱动测试理论和测试库理论。 2 4 1 测试逻辑与测试数据相分离 测试逻辑与测试数据相分离是自动化测试的基本思想,也是实现自动化测试 的首要基础和根本方法。 测试逻辑是指执行测试操作的步骤,而测试数据是指执行测试时的输入数据 和预期输出数据。就像测试某一系统的查询功能样,实际在测试执行时往往要 查询a 、b 、c 等多种设备,但执行查询的操作过程是一样的,即同样的测试流程 要执行很多遍,而每一遍所不同的只是执行时所输入的数据和期望的输出不同而 已,因此通过测试逻辑与测试数据的分离可以一方面提高自动化脚本的重用度, 另一方面降低由于被测系统变化引发的脚本修改的工作量。所以说这是实现自动 化测试的首要基础和根本方法。 2 4 2 通用自动化测试框架 一个成功的自动化测试必然会选择一种自动化测试框架( t e s ta u t o m a t i o n f r a m e w o r k ) ,在这个框架中可以定义一些概念、接口和驱动函数等,规定一些特 定的输入输出方式。而要想让辛辛苦苦积攒下来的测试理念和工程方法能够在多 个产品或项目间共享,就必须建立独立于被测系统的通用自动化测试框架,这样 单个产品实现自动化测试的平均成本才能降低。如果每一个自动化测试框架都和 特定的产品绑定,那么用于自动化测试设计和实现的成本肯定会远远高于直接采 用手工测试的成本,这就背离了自动化测试的初衷。 2 4 3 数据驱动测试 使用数据驱动进行测试是实现自动化测试的又一重要基础,也是实现测试逻 辑和测试数据相分离的最好方法。 数据驱动( d a t a - - d r i v e n ) 又称为表驱动( t a b l e - - d r i v e n ) 柳,就是把测试数 据写入到数据文件( 数据池,e x c e l 文件等) 中,测试执行时再从数据文件中读取 输入数据和输出数据,载入到测试脚本中置换相应的变量。 数据驱动测试最主要的好处是允许把测试用例写在具有一定格式的数据文件 第二章软件自动化测试概述 9 中,这样可以方便测试用例的扩充和维护,也方便测试用例的调试和有选择的执 行。另外,如果参与测试的是缺少编程经验的业务专家,采用数据驱动测试方法 是很合适的,因为通过数据文件就可以直接看到测试用例,还可以直接在数据文 件中增删记录以达到增删测试用例的目的。 2 4 4 测试库 自动化测试的最后一个重要基础是建立可以在不同测试中应用的测试函数库 ( 简称测试库) ,就像很多的编程语言那样给用户提供一些基本的函数以方便用户 调用。 显然,建立测试库的好处是一次开发结果可以适配多个产品的多个测试版本, 使自动化测试的平均投入明显降低。 2 5 软件自动化测试关键技术 软件自动化测试的关键技术主要包括:脚本技术和测试结果分析技术。本节 重点对这两种技术进行概括性介绍。 2 5 1 脚本技术 测试脚本技术是自动化测试技术的精髓,脚本是一组测试工具执行的指令集 合,也是计算机程序的一种形式。脚本可以通过录制测试过程产生,然后再做修 改,这样可以减少脚本编程的工作量。当然,也可以直接用脚本语言编写脚本。 测试脚本可以分为以下几类: 1 ) 线性脚本嗍 线性脚本是录制手工执行的测试用例得到的脚本,这种脚本包含所有的击键, 鼠标的移动和任何人机交互界面上的操作。如果只使用线性脚本技术,即录制每 个测试用例的全部内容,则被录制的这些测试用例可以被完全重复地回放。然而 实际情况往往是,由于测试环境的稍许改变甚至仅仅是程序界面的小小变动,会 使整段测试脚本完全不能运行。因此线性脚本在实际应用中已经很少使用。 2 ) 结构化脚本 结构化脚本类似于结构化程序设计,具有各种逻辑结构( 顺序、分支、循环) , 而且具有函数调用功能,它使脚本变得结构化,不仅可以提高脚本的可复用性, 而且可以增加脚本的功能和灵活性。充分利用不同的结构控制语句,可以开发出 易于维护的合理脚本,更好的支持自动化测试集地实现。 结构化脚本的主要优点是其健壮性比较好,由于引入了一些条件判断语句, l o 网络管理系统的w e b 自动化测试设计与实现 可以很容易地在脚本内加入一些错误处理功能,降低了脚本对被测系统的依赖性。 同时,由于加入了循环结构,可以使脚本重复执行一些操作,使下一步的数据驱 动脚本技术变得可能。结构化脚本的函数调用技术,使得脚本可以成为一个模块 被其它脚本调用。 3 ) 共享脚本 共享脚本是指一段己编写完成的脚本可被多个测试用例使用,它在结构化脚 本调用结构的基础上又进步了一些。 共享脚本技术的主要优点是:可以节省脚本开发成本,使脚本的易读性变得 更好,脚本的维护费用大大降低,当需要改变某些重复任务时仅仅需要改变一处 即可。 4 ) 数据驱动脚本 数据驱动脚本是将测试输入和预期输出存储在独立的数据文件中,而不是与 测试操作捆绑在一起放在测试脚本中,测试脚本中仅仅包含了一些与软件界面交 互的操作信息,测试执行时所需的数据直接从数据脚本中读取,这样就完成了测 试数据和测试操作的分离。 数据驱动技术的主要优点是数据文件的格式对于测试者而言更直观也更易于 处理。数据的存放形式往往是以电子表格的形式存放,使整个数据文件变得更好 理解和易于维护。从而,测试工程师可以将更多的精力放在自动测试执行和自动 化测试体系的维护上。 5 ) 关键字驱动脚本 关键字驱动技术是较为复杂的数据驱动技术的逻辑扩展。数据驱动技术的限 制是每个测试用例执行的步骤和操作都必须一样,测试的逻辑建立在脚本中而不 是独立的数据文件中,而关键字驱动技术将测试的逻辑再次从脚本中剥离开来, 存放在单独的关键字驱动文件中,这个单独的关键字驱动文件可以是一个与测试 数据文件结合豹测试描述文件。 关键字驱动技术和数据驱动技术相结合可以使自动化测试用例不用关注所有 令人厌烦的细节。将数据文件变为对测试用例的描述,用一系列指令指定要执行 的任务即可。 2 5 2 测试结果分析技术 自动化测试的一个目的就是减少在测试过程中的人为参与程度,同时可以以 较小的成本运行大量的测试用例。而一个测试用例的最主要的组成部分就是测试 输入、测试步骤和预期结果,所以,一个健壮的自动化测试不仅仅包括自动化的 测试输入和执行,还要包括高效的自动化测试结果分析能力,如果自动化测试没 第二章软件自动化测试概述 有一个可靠的测试结果比较分析机制,这样的自动化测试解决方案必定是纸上谈 兵,没有任何的实际运用价值。 测试结果分析比较是检验软件是否产生了正确输出的过程,是通过在测试的 实际输出与期望输出( 软件被正确实现时的输出) 之间完成一次或多次比较来实现 的。当谈到一个测试用例的期望输出时。往往指的是系统界面上的输出以及系统 的一些响应。在自动化测试结果分析比较中,需要比较的期望结果还包括数据库 中的记录以及一些系统产生的文件。对于不同类型的系统输出结果,需要用不同 的分析比较方法。下面将针对不同类型的系统输出结果来讨论不同的分析比较办 法。 1 ) 文件形式的系统输出 文件包括文本文件和非文本文件。对于文件形式的输出一般要借助于一些外 部工具的帮助。这些外部工具可能是自动化测试工具附带的功能,也可能是自动 化测试工程师自己编写的一些比较工具。但无论使用何种工具,文件形式比较的 基本原理是利用工具读取实际文件和目标文件内的数据,然后进行逐字符或逐行 的比较。 2 ) 基于用户界面的系统输出 根据被测系统的性质,需要比较的系统界面输出一般为两种:命令行界面字符 输出,图形化用户界面( o t n ) 的输出。 命令行界面字符输出“1 如果测试基于字符的应用程序,那么比较屏幕输出时必须注意的事情就是文 本和特殊字符以及诸如粗体。闪烁和反白显示应用这样的显示属性。因为屏幕上 的每个字符都用行列号来定址,所以通常指定要比较的字符位置是相当容易的,而 且一般说来,用来实现基于字符系统的自动化测试工具都有完善的函数库来实现 命令行界面的字符定位和比较。 图形化用户界面( g u i ) 的输出 包含g u i 的系统可能会有比基于字符的系统更广泛的输出类型。对绝大多数 用户来说,这些输出包括窗口,图标,菜单,对话框,按钮,复选框,文本框这 样的对象以及它们的属性。在对某一个g u i 对象进行比较之前,确切知道它是一 个什么样的对象对实现比较非常有帮助。主流的自动化测试工具( 例如i b m 公司的 r a t i o n a lf u n c t i o n a lt e s t e r ) 会通过一些对象映射的技术来得知待比较对象的类型, 如一个标准按钮或者一个文本框,然后去访问这个对象的一些标准属性来实现比 较。 3 ) 基于数据库的系统输出 自动化分析比较的一个优点就是,可以很方便地实现实时的数据库比较。在 某个界面操作以后,测试脚本可以立即通过查询数据库的方法来证实该项操作是 1 2 网络管理系统的w e b 自动化测试设计与实现 否引起了正确的数据库操作。 实现基于数据库系统输出的比较,最关键的就是测试设计人员必须在设计自 动化测试脚本以及数据的同时,就能预见到数据库中记录的变化。通常情况下, 这要求测试设计人员对被测系统的数据库设计有相当的了解。从另外一个角度来 说,实现了数据库比较的自动化测试实施方案对被测系统的依赖性又增强了,它 不仅仅依赖于被测系统界面的稳定,还要求系统数据库结构设计的稳定。但是这 样的牺牲是值得的,因为高效准确的数据库比较为自动化测试结果比较分析增加 了不少价值。 第三章w e b 自动化测试原理 第三章w e b 自动化测试原理 本章首先阐述了w e b 自动化测试的基本原理,并通过一个具体的网络管理系 统w e b 自动化测试的例子对其进行详细说明,然后对自动化测试中相关的一些重 要概念进行解释,之后结合实际的自动化测试工具给出了w e b 自动化测试的测试 框架,基于此框架的w e b 自动化测试方案与测试流程,和自动化测试的可延续性 设计需要考虑的问题,最后还对自动化测试用例的选取原则和用例的建设步骤进 行了简要分析,以期指导自动化测试工作的最终实施。 3 1w e b 测试简介 随着网络技术的迅速发展,尤其是w e b 及其应用程序的普及,各类基于w e b 的应用程序以其方便、快速,易操作等特点不断成为软件开发的重点。与此同时, 随着需求量与应用领域的不断扩大,对w e b 应用软件的测试也逐渐成了一个大问 题。 比如网络管理系统,它是对网络设备进行管理、维护的一个应用软件系统, 不仅可以实现多个网元设备的管理,还可提供统一的拓扑管理、告警管理、性能 管理、安全日志管理和网络业务发放管理等。常用功能主要包括: 1 ) 查询网络中的设备。 2 ) 在网络中增加、删除设备。 3 ) 对各设备上报的告警信息进行处理。 4 ) 对故障设备进行维护等。 对于这些功能,手工测试时都是直接进行w e b 界面操作并判断操作结果,但 是当网络中的设备非常之多,又必须进行设备的遍历测试时,任何一个功能点的 测试都是一个非常耗时的工作,尤其当这种遍历测试需要进行多次重复时,手工 测试简直不堪重负。而w e b 自动化测试就是通过测试脚本的运行来模拟对w e b 界 面的操作并进行测试结果检查,它可以很好地解决这个问题。 3 2 基本原理 通过在计算机上运行特殊的脚本程序来模拟测试人员对计算机的操作过程、 操作行为,并且对操作过程和操作行为的结果进行验证,通过对比实际输出结果 与预期输出是否相同来确定测试是否通过,这就实现了单个测试用例的自动化川; 通过实现测试逻辑与测试数据相分离,建立通用自动化测试框架,使用数据驱动 1 4 网络管理系统的w e b 自动化测试设计与实现 测试,建立测试库等方法还可加强自动化测试的批量实现、批量执行能力;通过 记录测试执行时的日志,对测试结果进行统计和上报,又可加强自动化测试结果 的可溯性。以上三点结合起来就是软件自动化测试的基本原理。 下面以网络管理系统中“查询某一设备的运行状态”为例对自动化测试的原 理进行说明。简单的操作流程如下: 1 ) 启动系统,输入管理员用户名、密码登录系统; 2 ) 在系统的主菜单中选择“设备”; 3 ) 在设备类型选择框中选择某一设备; 4 ) 点击“查询”按钮。 手工测试时测试人员先执行几次选择操作,然后执行一次点击“查询”按钮 的操作,最后比较查询出的结果与预期的输出结果是否相同,如果相同则测试通 过,如果不同则测试不通过。自动化测试时则是通过特定的脚本程序,模拟测试 人员的一系列操作,然后从弹出的查询结果页面提取操作结果,通过验证函数比 较提取到的结果是否与预期的结果相同,最后再根据比较结果的真假上报测试人 员测试是否通过。 上面所述为软件自动化测试的基本原理,在理解此基本原理和几个重要的自 动化测试概念基础上,具体的w e b 自动化测试的实现原理还包括: 1 ) 适合产品的w 曲自动化测试工具选取; 2 ) 适合产品的w e b 自动化测试框架的搭建; 3 ) 结合测试工具和测试框架的测试方案和测试流程的制定; 4 ) 自动化测试系统的可延续性设计: 5 ) 自动化用例体系建设。 后续几节将首先讲述这几个重要概念( 程序控制对象、动作词函数、测试集、 测试逻辑、测试数据、测试套) ,然后对以上实现原理的五个方面分别予以阐述。 3 3 重要概念 本节重点讲述自动化测试中的几个重要概念:程序控制对象、动作词函数、 测试集、测试逻辑、测试数据和测试套,以及它们之间的关系。 3 3 1 程序控制对象 程序控制对象( p r o g r a mc o n t r o l l e do b j e c t ,筒称p c o ) ,就是将脚本中所使用 的数据进行结构化和对象化,在数据资源池中形成一致的数据结构描述,它统一 了在脚本中数据的组织方式,也规范了脚本间数据的传递方式。 第三章w e b 自动化测试原理 在自动化测试脚本中,通过p c o 的方式引用数据池中的数据对象,保证了测 试数据向测试逻辑传递接口的一致性,并且除了使用的数据本身,还传递了数据 对象内部的关系,有助于形成标准的公用的数据处理模块,简化测试脚本的复杂 度,提高测试脚本的可读性和可维护性。 例如,网络管理系统中登录系统的用户和被执行查询操作的设备等都可以被 设计成p c o 的形式。 3 3 2 动作词函数 动作词函数( a c t i o nw o r d ,简称a w ) 实际上就是测试过程中的一个或几个 操作步骤。 例如,网络管理系统中查询设备状态时所执行的下拉列表的选择操作、文本 框的输入操作、按钮的点击操作等就可以被设计成动作词函数,它体现的就是某 个p c o 对象的动作。 3 3 3 测试集 如果有多个测试用例需要在相同的环境、配置下执行,就可以将这个环境配 置抽取成一个公共的“测试集”,从而完成环境相关的公共数据抽取。 例如,网络管理系统的所有测试操作都需要先成功登录系统,则对于这些操 作而言,输入用户名、密码成功登录系统的过程就可以被单独抽取出来作为公共 的执行环境,即“测试集”。 3 3 4 测试逻辑 如果有多个测试用例的测试步骤相同,只是输入输出不同,就可以将这些测 试用例的测试步骤抽取成一个公共的“测试逻辑”,把输入输出数据独立出来定义。 测试逻辑就是通过虚拟化的p c o 的a w 函数组合完成的业务抽象,所谓虚拟化是 指当p c o 传入的对象类型不同,a w 的实现可以不同。 例如,网络管理系统中查询某一设备的运行状态时所执行的一系列选择、点 击操作就是执行该查询操作的测试逻辑。 3 3 5 测试数据 如果多个测试用例的测试步骤相同,将测试步骤抽取成测试逻辑后,剩下的 输入输出就是“测试数据”。 例如,网络管理系统中查询某一设备的运行状态时所选择的设备类型、预期 1 6 网络管理系统的w e b 自动化测试设计与实现 的设备运行状态就是“测试数据”。 以实际生活中两个人打电话的例子来解释以上几个基本概念; p c o 为用户实例,如小明的手机,小红的电话等; a w 函数即为用户动作,如摘机、拨号等; 钡8 试集就是用户之间实现通话必备的前提条件,如用户的注册等; 测试逻辑则为用户打电话的过程,只是流程,与具体用户及打电话内容无 关; 测试数据就是具体的主被叫用户的电话号码等信息。 以面向对象( o o p ) 的概念解释就是: 不同的p c o 类型可以看作类,p c o 对象可以看成类的实例; p c o 的参数可以看作类的属性; a w 函数可以看作类的方法; 逻辑可以看作用p c o 的方法a w 描述的业务流程。 3 3 6 测试套 无论自动化用例怎么组织,脚本怎么编写,最后的执行都需要有一个执行引 擎,执行引擎根据执行人员指定的测试用例,读取测试用例配套的数据,加载所 需的测试库,创建测试用例的执行环境,执行测试用例,执行完毕之后恢复环境。 执行引擎接收到的输入应该是测试集、测试用例等相关的配置信息,而非这些信 息的具体内容,将这个配置信息称为测试套。通过测试套这样个文件,在执行 测试用例的时候,就可以在更高一个层面上安排用例的调度执行。 3 4 工具选择 w e b 自动化测试工具的选择主要依赖于被测系统w e b 页面的实现语言,一般 第三章w e b 自动化测试原理 来说一种自动化测试工具会有一种或几种适合的被测系统实现语言。工具的选择 至关重要,选择合适就能使自动化测试顺利开展起来,否则会使自动化测试工作 遭遇很多麻烦甚至最终根本无法实施。 m m 公司开发的商用自动化测试工具r a t i o n a lf u n c t i o n a lt e s t c 一。1 ( 以下简称 砌玎) 是继r a t i o n a lr o b o t 之后又一个非常适合w e b 自动化测试的工具,其功能之 强大、使用之方便已经得到软件自动化测试领域从业者的普遍认可,它适宜于目 前普遍使用的j a v a 、h t m l 等语言实现的w e b 页面,所以一般选择r a t i o n a l f u n c t i o n a l t e s t e r 作为w e b 自动化测试实现工具。 r f t 是在e c l i p s e 基础上开发的,而e c l i p s e 就是一款功能强大的j a v a 编辑器, 所以r f t 继承了j a v a 编辑器的相关功能,比如:命令联想、错误提示、自动生成 函数、快捷键、提供解决错误的方案等,除此之外,r f t 作为一个强大的自动化 测试工具,还提供如下功能: 1 ) 脚本录制 脚本录制是r f t 一个最基本的功能,可以全新录制一段脚本,也可以在已有 的脚本中插入录制脚本,录制的脚本进行回放就相当于执行一遍录制的操作。 2 ) 脚本编辑 各种文件的编辑都是在主编辑器中进行的,r f t 编辑器的详细功能基本符合 目前主流j a v a 编辑器的功能,拥有强大的纠错、查找、编辑和联想功能。 3 ) 脚本资源管理 脚本记录的是对被测系统g u i 控件的操作,比如点击一个按钮,选择一个下 拉菜单,那么,这个按钮、下拉菜单对r f t 来说就是脚本资源,每一个脚本资源 对应的都是被测程序上的控件,通过脚本操作这些脚本资源,就可以模拟用户操 作被测系统上的实际的g u i 控件。r f t 中专门用于管理这些脚本的功能模块称为 脚本资源管理器( g u i 廿) ,它可以管理被测系统中的所有界面元素,以便测试 脚本回放时可以定位到界面控件。 以g u i m a p 中的一个对象 j a v a :t e x t :a c c o u n t :j a v a i n p u t t e x t 为例,它表 示这是一个j a v a 控件,类型为t e x
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025湖北襄阳市中医医院(襄阳市中医药研究所)招聘急需专业技术人才55人模拟试卷及参考答案详解一套
- 2025喀什地区两级法院机关招聘聘用制书记员(43人)考前自测高频考点模拟试题带答案详解
- 2025贵州铜仁市妇幼保健院引进专业技术人才考前自测高频考点模拟试题附答案详解(模拟题)
- 2025年六安阳光电力维修工程有限责任公司招聘85人考前自测高频考点模拟试题及参考答案详解
- 2025河南郑州高新区双桥社区卫生服务中心招聘3人考前自测高频考点模拟试题及答案详解(历年真题)
- 2025河南洛阳市东方人民医院招聘39人考前自测高频考点模拟试题及答案详解(各地真题)
- 2025广东中山市西区集体资产经营有限公司招聘1人考前自测高频考点模拟试题及答案详解(网校专用)
- 2025贵州毕节医学高等专科学校第一批次“人才强市”暨高层次急需紧缺人才引进考前自测高频考点模拟试题带答案详解
- IL-6-IN-3-生命科学试剂-MCE
- Hydroxyfasudil-hydrochloride-Standard-生命科学试剂-MCE
- 2025年9月20日云南省直机关遴选公务员笔试真题及答案解析
- 合同纠纷民事起诉状模板示例
- 2025广东广州市花都区招聘社区专职工作人员50人考试参考题库及答案解析
- 招行ai面试题库大全及答案
- 2025四川蜀道养护集团有限公司招聘15人考试参考题库及答案解析
- 2025年秋季上饶银行招聘考试参考题库及答案解析
- 2025至2030中国汽车模塑件行业项目调研及市场前景预测评估报告
- 投标服务响应应急方案(3篇)
- 自动控制原理课件第九章状态空间分析法
- 2025年安全工程师《安全生产管理》考前模拟卷(一)
- 《中华人民共和国民营经济促进法》培训解读课件
评论
0/150
提交评论