




已阅读5页,还剩54页未读, 继续免费阅读
(计算机应用技术专业论文)基于web功能测试的自动化框架实现与应用的研究.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘要 随着计算机网络技术的迅速发展,w e b 正以其广泛性、交互性、 快捷性和易用性等特点迅速风靡全球,并且已经渗入到社会的各个领 域。在市场需求的推导推动下,w e b 应用软件的规模不断扩大,系统 软件复杂性增加,如何保证w e b 应用的正确性和可靠性越来越成为 人们关注的问题。作为保证软件质量和可靠性的重要手段,w e b 测试 已成为w e b 软件开发过程中的一个重要环节。因此如何提高测试效 率,开展自动化测试成为了每个企业都面临的挑战。但是自动化测试 如果没有经过良好设计,不但耗资大,而且后续还有大量的维护工作。 而设计良好的自动化测试框架不但维护成本低,而且效率很高。因此 对自动化测试框架的研究具有很重要的意义。 本文首先介绍了课题研究背景及国内外发展状况,阐述了软件测 试及自动化测试技术的相关知识。接着分析了引入自动化测试框架的 背景,并介绍了五种常用的自动化测试框架。在此基础上,本文针对 w e b 应用系统的特点,在测试库构架和数据驱动的自动化测试框架基 础上,提出了一种基于w - e b 功能测试的自动化测试框架a t f w f t ( a u t o m a t i o nt e s t i n gf r a m e w o r kb a s e d - o nw e bf u n c t i o n a lt e s t i n g ) ,并 应用此框架指导w e b 项目的实施过程。最后,本论文总结了课题研 究的主要工作,并对后续工作进行了展望。 关键词自动化测试,数据驱动,w e b ,自动化测试框架 a b s t r a c t w i t ht h er a p i dd e v e l o p m e n to fn e t w o r kt e c h n i q u e ,w e bi sb e c o m i n g p o p u l a ra l lo v e rt h ew o r l db e c a u s eo fi t su n i v e r s a li n t e r a c t i o n ,s p e e da n d c o n v e n i e n c e i ta l s oh a su n f i l t e r e di nv a r i o u sa p p l i c a t i o na r e a s p r o m o t e d b ym a r k e t i n gr e q u i r e m e n t ,t h es c a l eo fw 曲a p p l i c a t i o ni se x t e n d i n ga n d i t sc o m p l e x i t yi si n c r e a s i n g h o wt oe n s u r et h ec o r r e c t n e s sa n d r e l i a b i l i t y o fw e ba p p l i c a t i o nb e c o m e sm o r ea n dm o r ea t t e n t i v e a sa l li m p o r t a n t m e a n so fa s s u r i n gt h eq u a l i t ya n dr e l i a b i l i t yo fs o f t w a r e ,w r e bt e s t i n g b e c o m e sa ni m p o r t a n tp a r ti ns o f t w a r ed e v e l o p m e n tp r o c e s s s oh o wt o i m p r o v et e s t i n ge f f i c i e n c ya n ds t a r ta u t o m a t i o nt e s t i n gh a sb e c a m et h e c h a l l e n g et oe a c he n t e r p r i s e b u ti ft h ea u t o m a t i o nt e s t i n gi sn o td e s i g n e d w e l l ,i tw i l ln o to n l yc o s tm u c h ,b u ta l s on e e ds o f t w a r et e s t e rt od om u c h m o r ew o r kt om a i n t a i nt e s t i n gs c r i p t s m i l eaw e l ld e s i g n e da u t o m a t i o n f r a m e w o r kc a nd e c r e a s et h ec o s to fm a i n t e n a n c ea n di m p r o v et e s t i n g e f f i c i e n c y s o i ti s s i g n i f i c a n tt od or e s e a r c h e so na u t o m a t i o nt e s t i n g f r a m e w o r k a tf i r s t ,t h et h e s i si n t r o d u c e st h eb a c k g r o u n do fs u b je c ta n dc u r r e n t r e s e a r c h i n gs i t u a t i o no fs o f t w a r et e s t i n g a th o m ea n da b r o a d ,a n d e l a b o r a t e ss o m ek n o w l e d g ea b o u ts o f t w a r et e s t i n ga n da u t o m a t i o nt e s t i n g t h e nt h et h e s i sa n a l y z e st h e b a c k g r o u n do fi n t r o d u c i n ga u t o m a t i o n t e s t i n gf r a m e w o r ka n di n t r o d u c e s f i v ek i n d so fp o p u l a rf r a m e w o r k b a s e do nt h i s ,i tp r o p o s e sa l la u t o m a t i o nt e s t i n gf r a m e w o r kb a s e do nw 曲 f u n c t i o n a l a t f w f t ( a u t o m a t i o nt e s t i n gf r a m e w o r kb a s e d o nw r e b f u n c t i o n a lt e s t i n g ) w h i c hi ss p e c i a lf o rw 曲a p p l i c a t i o na n di sb a s e do n t e s t i n gl i b r a r yf r a m e w o r ka n dd a t a d r i v e nf r a m e w o r k m o r e o v e r , t h i s t 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 ft h i sf r a m e w o r ki nw 曲p r o j e c t a t t h ee n d ,t h et h e s i ss u m m a r i z e st h em a i nr e s e a r c h e dt a s k sa n dp r o s p e c t s t h ef o l l o w i n gw o r k k e yw o r d sa u t o m a t i o nt e s t i n g ,d a t ad r i v e n ,w e b ,a u t o m a t i o n t e s t i n gf r a m e w o r k 原创性声明 本人声明,所呈交的学位论文是本人在导师指导下进行的研究 工作及取得的研究成果。尽我所知,除了论文中特别加以标注和致谢 的地方外,论文中不包含其他人已经发表或撰写过的研究成果,也不 包含为获得中南大学或其他单位的学位或证书而使用过的材料。与我 共同工作的同志对本研究所作的贡献均己在论文中作了明确的说明。 作者签名:圈妫 日期:孕年上月鲨日 学位论文版权使用授权书 本人了解中南大学有关保留、使用学位论文的规定,即:学校 有权保留学位论文并根据国家或湖南省有关部门规定送交学位论文, 允许学位论文被查阅和借阅;学校可以公布学位论文的全部或部分内 容,可以采用复印、缩印或其它手段保存学位论文。同时授权中国科 学技术信息研究所将本学位论文收录到中国学位论文全文数据库, 并通过网络向社会公众提供信息服务。 e la n :珲年月9 硕士学位论文第一章绪论 1 1 课题研究背景 第一章绪论 随着i n t e r n e t 在全球范围内的迅速普及和相应软硬件技术的快速发展,w e b 技术得到了广泛的应用,在各个方面都对人们的生活和工作产生了深远的影响, w e b 己经成为信息的中介和信息发布的平台。但随着网站规模和复杂度的增加, w e b 不仅承担简单的数据发布的任务,而且包括信息平台的构建和复杂的应用逻 辑,出现了很多基于w e b 的大型应用平台,这不仅给w e b 应用的开发提出很高 的要求,而且对w e b 应用的测试也带来了很多问题,尤其是传统的软件测试方 法和技术并不完全适用于w e b 应用的测试、手工测试效率低并且测试的覆盖率 难以保证等问题。近年来,测试界对如何降低测试成本,保证相当的测试覆盖率, 做了大量的研究,一些新的测试技术和方法应运而生。其内容从整体测试项目的 设计,测试的实现到测试的执行,新的测试技术和方法大大提高测试人员的效率。 不言而喻,测试人员都意识到软件测试这项工作走向成熟化、标准化的一个必经 之路就是要实施自动化测试。目前,软件自动化测试主要集中在软件测试流程的 管理和动态测试,如功能测试自动化和性能测试自动化【l 】。 使用测试自动化,对于某些特定的测试任务相比手工测试效率高很多。在进 行回归测试时,可以很大程度上减少测试的投入,进而更好地利用资源,将测试 人员从繁重而重复的测试执行中解脱出来,将更多的精力用于设计测试用例,同 时还可以提高测试人员的积极性。然而,自动化测试也不是一剂包治百病的良药, 一个没有经过良好设计的自动化测试系统会耗费掉高昂的前期构建成本,带来无 休止的维护工作,而一个设计合理的自动化测试机制则能够大大降低测试执行的 成本,并提高测试的效率【2 1 。不但维护成本是影响自动化测试的一个主要因素; 另一方面目前主流的软件开发过程一迭代开发和g u i 快速开发【3 】,也给自动化测 试提出了更高的要求。这两种开发过程都认为应用程序和g u i 的改变将更加频 繁,并且开发周期缩短,测试的周期也相应缩短。因此这要求自动化测试系统不 仅能快速应对测试对象和g u i 的变更,而且有较高的执行效率。 因此,如何设计和实现一个健壮的、易维护、易扩展的自动化测试框架,从 而降低自动化测试的成本,提高测试执行的效率,减少测试脚本后期维护量,并 能快速应对变更的影响是自动化测试中广泛关注的问题,也是本文要研究的内 容。 硕士学位论文第一章绪论 1 2 软件测试的发展及国内外研究现状 1 2 1 软件测试的发展历史 软件测试作为一项专门的技术并不是随着计算机的产生而与之俱来的,它的 发展与软件业的发展密切相关。 在2 0 世纪6 0 年代及其以前,属于程序设计阶段,那时软件规模都很小而且 复杂度低,软件开发被视为程序员的个人行为,软件开发的过程随意。那时没有 专门的测试理论和技能,没有测试流程规范,更没有专职测试工程师,开发人员 在编写代码结束后的d e b u g 过程被认为是唯一的测试活动。其实这并不是现代 意义上的软件测试。 2 0 世纪6 0 年代到7 0 年代,属于程序系统阶段,这个阶段开发的软件仍然 不复杂,但人们已开始思考开发流程问题,并提出“软件工程”的概念。此时的 软件工程把软件生存周期分为需求分析、设计、编码、测试和维护几个阶段。同 时,在软件开发的实践中,人们还认识到,在开发初期发现并排除软件错误所付 出的代价远比在完成编码以后再测试付出的代价小得多。但是这一阶段人们对软 件测试的理解仅限于基本的功能验证和b u g 搜寻,而且测试活动仅出现在整个 软件开发流程的后期,虽然测试由专门的测试人员来承担,但测试人员都是行业 和软件专业的入门新手。1 9 7 2 年,b i l lh e t z e l 博士在n o r t hc a r o l i n a 大学举行了 第一次以软件测试为主题的正式学术会议,这次会议成为软件测试技术发展中的 一个重要里程碑,它标志着软件测试理论和技术开始成为业界的研究对象【4 1 。此 后,各种软件测试理论有如雨后春笋般出现,各种相关的学术会议不断举行。1 9 7 9 年g l e n f o r dm y e r s 出版了( t h e a r to f s o i l - w a r et e s t i n g ) ) 【5 】,这本书总结了众多的 测试经典方法并第一次提出了软件测试的目的在于证伪,而非证真,也就是说测 试就是为了发现错误,这是测试观念的一次突破。 2 0 世纪8 0 年代到9 0 年代中期,软件和i t 行业快速发展,计算机开始进入 p c 时代,软件的规模成指数级增长,软件趋向大型化。同时,随着软件应用的 拓宽,软件种类不断增加,软件已经逐步成为一项产业。软件种类和规模的增长 对软件测试工作提出了更加严格的要求。为适应这一要求,软件企业开始成立 q a ( 质量保证) 或s q a ( 软件质量保证) 部门来保证软件产品的质量,再后来 q a 的职能转变为流程监控,而软件测试则从中分离出来成为独立的岗位,软件 企业为了保证产品质量,提高产品在市场上的竞争力,成立了独立的测试部门, 承担软件测试的任务。 从2 0 世纪9 0 年代中期开始,计算机进入网络时代,基于i n t e m e t 的分布式 2 硕士学位论文第一章绪论 计算技术被广泛应用在各种类型的软件中,软件越来越复杂,软件测试需要解决 更多的技术和理论难题。软件测试工具的出现,测试支持度、测试成熟度等新概 念的提出表明软件测试开始从单纯的技术环节演变为一个需要完整的理论体系 和系统的工程【6 1 。 1 2 2 国内外研究现状 自从2 0 世纪7 0 年代以来,国内外许多学者和组织在软件测试方面进行了大 量的研究工作。1 9 7 2 年6 月在美国北卡罗来纳大学召开首届软件测试正式技术 会议,成为软件测试技术发展中的一个重要里程碑【7 】。自此之后,软件测试作为 软件工程学科的一个重要分支,随着软件的发展而发展,产生了许多经典的软件 测试技术和软件测试流程管理规范。 国外软件测试技术起步比国内早,也更成熟更完善。国外大约在1 0 前就开 始进行软件自动化测试的研究,形成了一套比较成熟的理论,出现了一批比较优 秀的自动化测试工具,近几年又提出了自动化测试框架概念。 美国的i e e e 、a c m 等组织制定了一系列软件测试规范,国外的许多大学( 如 c a r n e g i em e l l o n 、华盛顿大学等) 、研究机构( 如m a t i o n a ls o f t w a r et e s t i n gl a b 等) 和公司( 如s o f t - w a r ef e s e a r c h 、m e r c u r yi n t e r a c t i v e 、 r a t i o n a lc o r p o r a t i o n 等) 进行了大量软件测试的研究和应用工作【8 】o 其中c a r n e g i em e l l o n 大学侧重于 回归测试和c l i e n t s e r v e r 测试技术的研究,g e o r g em o s a n 侧重于规范的测试自动 生成和面向对象测试技术。目前比较流行的软件测试工具集有m e r c u r yi n t e r a c t i v e 的w i n r u n n e r 、q t p 、l o a d r u n n e r ,mr a t i o n a l 的r o b o t ,a 兀o u e s t w a i 也 公司的艄l t e s t 、黼,s o f t w a r er e s e a r c h 的t e s t w o r k s 等【9 1 。目前,典型的 自动化测试框架类型有四种:脚本模块化架构,测试库架构,关键词或表格驱动 架构,数据驱动架构。比较有名的有a u t o m a t e dt e s t i n gs p e c i a l i s t si n c 提出的基 于数据驱动自动化测试方法以及g u i 测试方法;m e r c u r yi n t e r a c t i v ei n c 提出的关 键字驱动自动化测试方法及录制回放式的自动化测试方法【1 0 1 。 国内的软件产品测试技术起步较晚,对软件测试进行研究的组织机构和企业 也比较少,中国软件企业在软件测试方面与国际水准仍存在较大差距。北京大学、 北京航空大学进行了一系列软件分析和测试工具的研究和开发,研制了一系列的 程序理解工具和测试工具,比较有代表性的工具有s a f e p r o c c + + ,s a f e p r o j a v a 。 航空计算机研究所、南京大学在嵌入式系统测试方面进行了较多工作,开发了一 些静态分析工具和测试用例自动生成工到1 1 】。西北工业大学在航空软件仿真测试 以及c s 系统的测试方面进行许多研究工作并取得了一系列成果。 目前软件测试技术的研究主要向网络化、大型化和自动化方面发展,主要研 3 硕士学位论文第一章绪论 究热点有: ( 1 ) 针对软件特点开展的使用软件测试技术和方法的研究,包括针对实时 系统、嵌入式系统等不同类型软件特点开展的软件测试技术的研究。 ( 2 ) 针对新的软件开发技术开展的软件测试技术研究,包括面向对象技术、 i n t e r n e t 结构、j a v a 语言、自动生成软件等软件测试技术的研究。 ( 3 ) 测试自动化技术的研究,即以提高测试各阶段工作的自动化程度,减 轻人工测试负担为目的开展的研究,如回归测试,覆盖测试等。 ( 4 ) 测试工具与测试环境的研究,依据软件测试的技术和方法开发相应的 测试工具与环境,如测试计划工具、测试设计工具、测试管理工具、静态分析工 具、回归测试工具、性能及网络负载测试工具,为提高工具使用的有效性、工具 间互操作性以及信息的共享性而开发的、由若干工具经过有机结合形成的测试环 境等。 1 3 论文的研究内容及组织结构 本文在研究和分析目前流行的自动化测试框架的基础上,提出了一个以测试 库框架和数据驱动测试框架为基础,采用脚本模块化技术和数据驱动测试技术的 w e b 自动化功能测试框架,并利用该框架进行了软件自动化测试的实践。 本文由六个部分组成,论文组织结构如下: 第一章绪论简述了课题研究的背景及意义,介绍了软测试的发展历史以及 国内外的研究现状,最后简单介绍了本文的研究内容及组织结构。 第二章软件测试和自动化测试理论主要介绍了软件测试的基础知识,包括 软件测试的基本概念,目的及分类,特别介绍了w e b 应用软件测试的特点,同 时介绍了软件自动化测试的概念,通过介绍自动化测试的引入阐述自动化测试的 优缺点,并介绍了目前流行的自动化测试工具。 第三章软件自动化测试框架分析介绍了引入自动化测试框架的背景,分析 了目前主流的测试框架的特点。 第四章基于w e b 功能测试的自动化框架设计与实现介绍了框架的设计思 路,提出了一种结合现有自动化测试框架优点的软件自动化测试混合框架,介绍 了框架的总体结构,详细阐述了各个功能模块的设计与实现。 第五章功能测试自动化框架的应用分析了具体项目特点及测试需求,介绍 了自动化测试工具及脚本实现语言,详细描述了框架在w e b 项目中的应用。 第六章总结与展望总结了本文所做的工作,指出了框架有待进一步改进的 地方。 4 硕士学位论文 第二章软件测试和自动化测试理论 第二章软件测试和自动化测试理论 软件测试是保证软件系统正确性的一个重要手段,也是计算机软件工程方 法和技术的一个主要组成部分。据统计,在软件开发总成本中,用在测试上的开 销要占3 0 到5 0 t 1 2 】。即使这样,也不能保证软件之中,不再包含错误。因此, 作为保证软件质量最有效手段的测试技术,已经越来越引起软件用户和开发人员 的关注。而测试自动化是软件测试领域无法逾越的发展阶段,随着软件程序规模 的不断扩大,业务逻辑的不断复杂,以及从业者协作关系的日益重要,在软件的 开发周期引入自动化测试是非常必要的。 本章的主要内容是介绍软件测试和w e b 应用软件测试技术理论,分析自动 化测试技术现状及优缺点。 2 1 软件测试简介 2 1 1 软件测试的定义 软件测试是为了发现错误而执行程序的过程【1 3 】。或者说,软件测试是根据 软件开发各阶段的规格说明和程序的内部结构而精心设计一批测试用例( 即输入 数据及预期的输出结果) ,并利用这些测试用例去运行程序,以发现程序错误的 过程【14 1 。 “软件测试”的经典定义是在规定条件下对程序进行操作,以发现错误,对 软件进行评估【1 5 l 。 根据i e e e 的定义,软件测试是使用人工或自动手段来运行或测定某个系统 的过程,其目的在于检验它是否满足规定的需求或弄清预期结果和实际结果之间 的差别,尽可能发现存在的缺陷【嘲。 随着人们对软件工程化的重视以及软件规模的日益扩大,软件分析、设计的 作用越来越突出,而且资料表明,6 0 以上的软件错误并不是程序错误,而是分 析和设计错误【1 7 】。因此,做好软件需求和设计阶段的测试工作就显得非常重要, 这就是现在流行的测试概念扩大化,提倡软件生命周期测试的概念。 2 1 2 软件测试目的和原则 测试的目的,是想以最少的人力、物力和时间找出软件中潜在的各种错误和 缺陷,通过修正各种错误和缺陷提高软件质量,回避软件发布后由于潜在的软件 5 硕士学位论文第二章软件测试和自动化测试理论 缺陷和错误造成的隐患所带来的商业风险【1 8 】。 软件测试是一个破坏性的过程,其目的是为了尽可能多地发现软件中的错 误,而不是为了演示软件的正确功能。软件测试不能保证软件中不再存在错误, 而且发现错误也不是软件测试的唯一目标,找不出错误的测试不等于没有价值。 软件测试的主要目标是提高被测应用在各种条件下都能正常运行并达到所 要求的概率,从而尽可能发现错误,最终使用户感到满意。测试的目标应在计划 过程中及早提出,并进行明确定义,从而保证测试过程的有效性和软件的质量。 不同的应用软件有不同的测试行为和方法,要根据自己的实际情况制定相应的目 标。 软件测试是为了寻找软件的错误与缺陷,评估与提高软件质量,以下是软件 测试应遵循的基本原则: ( 1 ) 应当把“尽早和不断地进行软件测试 作为软件测试者的座右铭【l 9 】 由于软件的复杂性和抽象性,在软件生命周期各个阶段都可能发生错误,所 以不应把软件测试仅仅看作是软件开发的一个独立阶段的工作,而应把它贯穿到 软件开发的各个阶段中。在软件开发的需求分析和设计阶段就应开始测试工作, 编写相应的测试文档。同时,坚持在软件开发的各个阶段进行技术评审,这样才 能在开发过程中尽早发现和预防错误,把出现的错误克服在早期,杜绝某些错误 和隐患。 ( 2 ) 应把满足用户需求作为软件测试的根本目标 这是因为软件的目的是使用户完成预定的任务,并满足用户的需求,而软件 测试所揭示的缺陷和错误使软件达不到用户的目标,满足不了用户需求。 ( 3 ) 软件测试是证伪,而不是证真【2 0 】 软件测试是为了发现程序或系统中潜在的错误和缺陷,因此不能让程序员测 试自己编写的程序,程序开发小组也应尽可能避免测试本小组开发的程序,要成 立专门的测试部门或机构。同时,测试人员在设计测试用例时,应当包括合理的 测试输入条件和不合理的输入条件。 ( 4 ) 充分注意测试中的群集现象 经验表明,测试后程序中残存的错误数目与该程序中已发现的错误数目或检 错律成正比【2 l 】。根据这个规律,应当对错误群集的程序进行重点测试,以提高 测试投资的效益。 ( 5 ) 软件测试不可能发现程序中所有的错误 软件测试是软件开发生命周期的一部分,它是在有限的时间和资源下进行的 活动,因此想要进行完全彻底的测试,找出所有的软件缺陷和错误,使软件趋于 完美,是不可能的。 6 硕士学位论文 第二章软件测试和自动化测试理论 ( 6 ) 软件测试要有计划、有目的地进行 应该从工程的角度去理解软件测试,它是有组织、有计划、有步骤的活动。 测试之前应仔细考虑测试的项目,制定详细的测试计划和方案,包括被测程序的 功能、输入和输出、测试内容、进度安排、资源要求、测试用例的选择、测试的 控制方式和过程等。 2 2 基于w e b 的软件测试 2 2 1w e b 测试的特点 随着i n t e r n e t 和i n t r a n e t e x t r a n e t 的快速增长,w e b 已经对商业、工业、银行、 财政、教育、政府和娱乐及我们的工作和生活产生了深远的影响。许多传统的信 息和数据库系统正在被移植到互联网上,电子商务迅速增长,早已超过了国界。 范围广泛的、复杂的分布式应用正在w e b 环境中出现瞄】。w e b 的流行和无所不 在,是因为它能提供支持所有类型内容连接的信息发布,容易为最终用户存取。 在基于w e b 的系统开发中,如果缺乏严格的过程,我们在开发、发布、实 施和维护w e b 的过程中,可能就会碰到一些严重的问题,失败的可能性很大。 而且,随着基于w e b 的系统变得越来越复杂,一个项目的失败将可能导致很多 问题。当这种情况发生时,我们对w 曲和i n t e m e t 的信心可能会无法挽救地动摇, 从而引起w e b 危机。并且,w e b 危机可能会比软件开发人员所面对的软件危机 更加严重、更加广泛。 在w e b 工程过程中,基于w 曲系统的测试、确认和验收是一项重要而富有 挑战性的工作。基于w e b 的系统测试与传统的软件测试不同,它不但需要检查 和验证是否按照设计的要求运行,而且还要测试系统在不同用户的浏览器端的显 示是否合适。重要的是,还要从最终用户的角度进行安全性和可用性测试。 软件的发布周期以月或以年计算,而w e b 应用的发布周期以天计算甚至以 小时计算【2 3 1 。w e b 测试人员必须处理更短的发布周期,测试人员和测试管理人 员面临着从测试传统的c s 结构和框架环境到测试快速改变的w e b 应用系统的 转变。 2 2 2w e b 测试的基本内容和功能测试介绍 基于w e b 的系统测试包括以下几个方面【2 4 】【2 5 】: 功能测试 性能测试( 包括负载压力测试) 7 硕士学位论文第二章软件测试和自动化测试理论 用户界面测试 兼容性测试 安全测试 接口测试 本文重点介绍功能测试部分。 ( 1 ) 链接测试 链接是w e b 应用系统的一个主要特征,它是在页面之间切换和指导用户去 一些不知道地址的页面的主要手段【2 6 1 。链接测试可分为三个方面。首先,测试 所有链接是否按指示的那样确实链接到了该链接的页面;其次,测试所链接的页 面是否存在;最后,保证w e b 应用系统上没有孤立的页面,所谓孤立页面是指 没有链接指向该页面,只有知道正确的u r l 地址才能访问。 链接测试可以自动进行,现在已经有许多工具可以采用。链接测试必须在集 成测试阶段完成,也就是说,在整个w e b 应用系统的所有页面开发完成之后进 行链接测试。 ( 2 ) 表单测试 当用户给w e b 应用系统管理员提交信息时,就需要使用表单操作,例如用 户注册、登陆、信息提交等。在这种情况下,我们必须测试提交操作的完整性, 以校验提交给服务器的信息的正确性。例如:用户填写的出生日期与职业是否恰 当,填写的所属省份与所在城市是否匹配等。如果使用了默认值,还要检验默认 值的正确性。如果表单只能接受指定的某些值,则也要进行测试。例如:只能接 受某些字符,测试时可以跳过这些字符,看系统是否会报错。 ( 3 ) 数据校验 如果系根据业务规则需要对用户输入进行校验,需要保证这些校验功能正常 工作。例如,省份的字段可以用一个有效列表进行校验。在这种情况下,需要验 证列表完整而且程序正确调用了该列表( 例如在列表中添加一个测试值,确定系 统能够接受这个测试值) 。在测试表单时,该项测试和表单测试可能会有一些重 复。 ( 4 ) c o o k i e s 测试 c o o k i e s 通常用来存储用户信息和用户在某应用系统的操作,当一个用户使 用c o o k i e s 访问了某一个应用系统时,w e b 服务器将发送关于用户的信息,把该 信息以c o o k i e s 的形式存储在客户端计算机上,这可用来创建动态和自定义页面 或者存储登陆等信息。 如果w e b 应用系统使用了c o o k i e s ,就必须检查c o o k i e s 是否能正常工作。 测试的内容可包括c o o k i e s 是否起作用,是否按预定的时间进行保存,刷新对 硕士学位论文第二章软件测试和自动化测试理论 c o o l 【i e s 有什么影响等。如果在c o o h e s 中保存了注册信息,请确认该c o o k i e 能够正常工作而且已对这些信息已经加密。如果使用c , o o l ( i e 来统计次数,需要 验证次数累计正确。 ( 5 ) 数据库测试 在w e b 应用技术中,数据库起着重要的作用,数据库为w e b 应用系统的管 理、运行、查询和实现用户对数据存储的请求等提供空间。在w e b 应用中,最 常用的数据库类型是关系型数据库,可以使用s q l 对信息进行处理。 在使用了数据库的w e b 应用系统中,一般情况下,可能发生两种错误,分 别是数据一致性错误和输出错误。数据一致性错误主要是由于用户提交的表单信 息不正确而造成的,而输出错误主要是由于网络速度或程序设计问题等引起的, 针对这两种情况,可分别进行测试。 ( 6 ) 应用程序特定的功能需求 最重要的是,测试人员需要对应用程序特定的功能需求进行验证。尝试用户 可能进行的所有操作:下订单、更改订单、取消订单、核对订单状态、在货物发 送之前更改送货信息、在线支付等等。这是用户之所以使用网站的原因,一定要 确认网站能像广告宣传的那样神奇。 ( 7 ) 设计语言测试 w e b 设计语言版本的差异可以引起客户端或服务器端严重的问题,例如使用 哪种版本的h t m l 等。当在分布式环境中开发时,开发人员都不在一起,这个 问题就显得尤为重要。除了h t m l 的版本问题外,不同的脚本语言,例如j a v a 、 j a v a s c f i p t 、a c f i v c x 、v b s c f i p t 或f e d 等也要进行验证。 2 3 软件自动化测试 2 3 1 自动化测试与手工测试的比较 通常,软件测试的工作量很大,测试会占到4 0 的开发时间,一些可靠性要 求非常高的软件,测试时间甚至占到开发时间的6 0 【2 7 】。而在具体的测试实施 中,有手工测试和自动测试之分。手工测试是指软件测试工程师,通过安装和运 行被测软件,根据测试文档的要求,运行测试用例,观察软件运行结果是否正常 的过程。但是在实际软件开发生命周期中,手工测试具有以下局限性: ( 1 ) 通过手工测试无法做到覆盖所有代码路径。 ( 2 ) 简单的功能性测试用例在每一轮测试中都不能少,而且具有一定的机 械性、重复性,工作量往往较大。 ( 3 ) 许多与时序、死锁、资源冲突、多线程等有关的错误,通过手工测试 9 硕士学位论文 第二章软件测试和自动化测试理论 很难捕捉到【2 8 】。 ( 4 ) 进行系统负载、性能测试时,需要模拟大量数据或大量并发用户等各 种应用场合时,很难通过手工测试来进行。 ( 5 ) 进行系统高可靠性测试时,需要模拟系统运行1 0 年、几十年,以验证 系统能否稳定运行,这也是公共测试无法模拟的。 ( 6 ) 如果有大量( 如几千) 的测试用例,需要在短时间内( 如一天) 完成, 手工测试不可能做到。 ( 7 ) 回归测试难以做到全面测试。 自动化测试是指使用各种自动化测试工具软件,通过运行事先设计的测试脚 本等文件,测试被测软件,自动产生测试报告的过程,这样就可以节省人力,具 有良好的可操作性、可重复性和高效率等特点【2 9 】【3 0 】。 手工测试和自动化测试的比较见表2 1 。 表2 - 1 手工测试和自动化测试情况比较 改进百分率 测试步骤手工测试小时自动化测试小时 ( 使用工具) 测试计划制度 2 24 0 2 5 测试程序开发 2 6 2 1 1 75 5 测试执行4 6 62 39 5 测试结果分析1 1 75 85 0 错误状态纠正监视 11 72 3 8 0 报告生成 9 61 6 8 3 总持续时间1 0 9 02 7 77 5 2 3 2 自动化测试的概念 自动化测试就是利用策略、工具以及产出等,减少人工介入到非技术性 ( u n s k i l l e d ) 、重复性( r e p e t i t i v e ) 、冗长( r e d u n d a n t ) 的测试活动里,从而达到 无人监守完成测试,并自动产生测试报告,分析测试结果等一系列活引3 i 】【3 2 】。 其目的在于缩短测试周期,增强对软件性能方面的测试能力等,从而达到保证软 件质量并使软件能够提前上线。 首先,自动化测试是- i j 技术,它充分利用了测试用例,通过多次、反复测 试,能发现软件中的大部分缺陷,并能保障测试的科学性、严密性、组织性。其 次,自动化测试也是一种机制,它不仅是指运用自动化工具进行测试,而且包括 如何管理测试自动化,如何确定自动化测试的方法以及如何组织测试等。 自动化测试在起步阶段是一项耗费人力物力而回报见效很微弱的工程,但如 果实施方法得当,自动化测试能增强软件测试的规范化和标准化,减少浪费在重 l o 硕士学位论文第二章软件测试和自动化测试理论 复性手工测试工作上的时间,创建优良的可靠的测试过程,减少人为错误,增强 测试的覆盖率以及产品质量。然而,自动化测试不能完全取代手工测试,立即降 低测试投入,提高测试效率,保证1 0 0 的测试覆盖率,补偿劣质的测试过程。 因此,我们需要对自动化测试形成正确的认识,切不可好高骛远,脱离实际的认 为实施了自动化测试,就可以克服从前的一切问题。 2 3 3 软件自动化测试的引入原则 对于软件测试自动化的工作,大多数人都认为是一件非常容易的事。其实软 件测试自动化的工作量非常大,而且也并不是在任何情况下都适用,同时软件测 试自动化的设计并不比程序设计简单。在自动化测试实施之前,测试团队应该找 出能自动化的软件测试过程以及应该自动化的软件测试过程;知道自动化测试的 预期结果和列出在正确执行自动化测试后的益处;同时,需要列出自动化测试工 具的备选方案。因此,软件测试的自动化是一个渐近的过程,自动化测试既不能 解决软件测试中的所有问题,也不意味着任何软件测试都可以自动化【3 3 1 。要成 功地实现软件测试自动化,需要周密的计划和大量艰苦的工作,软件测试自动化 的开发人员首先必须清楚认识到该自动化什么。以下几条可以作为自动化软件测 试的标准: ( 1 ) 自动化回归测试 从软件测试自动化的目的知道,软件测试自动化所获得的活出来自于自动化 测试工具的的重复使用,回归测试应该作为自动化的首要目标。软件自动化测试 的设计和开发人员应该自动化那些在每个软件版本中都要进行的测试,也就是仅 仅自动化那些需要重复的测试,一次性的测试是不值得自动化的。 ( 2 ) 自动化重复性测试 如果一个测试经常使用,并且使用这个测试不方便,那么就应该考虑自动化 这个测试。比如,一个运行1 0 分钟的测试,可能需要击键1 5 0 次,打开4 到5 个窗口,切换操作【州。如果将其自动化,就可以提高可靠性。 ( 3 )自动化已经实现的手- r n 试用例 对软件测试自动化之前,通常已经有许多已实现的、详细的手工测试用例, 从中选择可以自动化的手工测试用例进行自动化。 ( 4 ) 自动化对稳定应用进行的测试 在自动化对某一个应用的测试之前,首先应该确定该应用个是否稳定。对一 个在将来可能发生变化的应用进行自动化是没有必要的,因为该应用一旦改变, 相应的自动化测试代码就要随之改变,所以应该只自动化稳定应用的测试。 ( 5 ) 自动化性能测试 硕士学位论文第二章软件测试和自动化测试理论 对软件进行的性能测试,包括在不同的系统负载下进行的测试。这些测试需 要采用工具辅助完成,非常适合自动化。 如果在测试中,运行1 0 的测试需要花费9 0 的时间,那么将这1 0 的测 试自动化是值得的。1 0 0 的测试自动化是不可能的,也不是我们追求的目标。 过大追求自动化的范围只会取得适得其反的后果。软件测试自动化的开发人员应 该在一个合理的可以进行自动化的范围内投入精力,在能力许可的情况下,在足 部扩大测试自动化的范围。 在确定自动化哪些测试之后,要评估自动化测试的时间。据统计,开发一个 自动化测试的时间,是手工测试的3 倍到1 0 倍,对于复杂的测试,甚至更长【3 5 1 。 因此,初次实施自动化测试的时间消耗,要比熟悉工具和测试流程后需要的时间 更长,在评估自动化测试的时间消耗时,一定要将其考虑在内。所以,一般挑选 时间消耗比较大的测试先实行自动化测试。 最后,确定自动化测试的执行顺序。这里最重要的原则就是采用迭代的方式 确定自动化测试的执行顺序。首先确定每个迭代的目标,挑选最能获得投资回报 的测试,例如冒烟测试几乎总是能立即获得时间和资源上的回报;再挑选最容易 开发脚本、最容易理解的测试实行自动化,之后逐渐扩展并迭代。 2 3 4 软件自动化测试生命周期 软件自动化测试是一个复杂的过程,它和软件开发项目一样,有生命周期。 自动化测试的执行应经过需求定义、测试计划、测试设计、测试开发等一系列的 活动,它必须被视为一个完整的软件开发过程。由e l f r e i d ed u s t i n 提出的自动化 测试生命周期方法a t l m 3 6 ( a u t o m a t e dt e s t i n gl i f e c y c l em e t h o d o l o g y ) 为自动化 测试的成功实施指明了方向。a t l m 包括六个主要过程:自动化测试的决定,自 动化测试工具的选择,自动化测试的引入,自动化测试计划、设计和开发,自动 化测试的执行和管理,自动化测试项目评审。具体情况如图2 1 所示。 1 2 硕士学位论文 第二章软件测试和自动化测试理论 图2 1 自动化测 ( 1 ) 自动测试决定 在这一阶段,企业要根据自身的实际情况分析是否应该引入自动化测试,克 服不正确的自动测试期望,认识到自动测试的好处;同时,测试工程师需要列出 自动化测试工具的备选方案,以获得管理层的支持。 ( 2 )测试工具获取 在得到决策者的支持以后,测试工程师要选择合适的测试工具来支持自动化 测试。首先,测试工程师要审查企业系统,制定一个工具的评审标准,确保测试 工具与本企业内部操作系统、编程语言以及其他技术环境由尽可能多的兼容。然 后,要评审可以得到的测试工具,选择一个或多个特定的获选测试工具;最后, 确定测试工具,与工具供应商联系产品演示事宜,如果有可能对全体测试人员进 行测试工具的培训。 ( 3 ) 自动测试引入过程 自动化测试的引入过程主要就是分析测试过程的目标、目的和策略,然后验 证测试工具是否能够支持大多数项目的测试需求。测试过程分析确保整个测试过 程和测试策略适当,必要时可以加以改进,以便成功地引入自动化测试。测试工 具考察阶段,测试工程师根据测试需求、可用的测试环境和人力资源、用户环境、 平台以及被测的应用产品特性,研究将自动化测试工具或使用程序引入测试工作 是否对项目有好处。 ( 4 ) 测试计划、设计与开发 测试计划是高效测试的基础。在测试计划阶段,要特别注重确定测试的文档, 制定能够达到测试目的和支持测试环境的计划,编制测试计划文档。它包括风险 评估、鉴别和确定测试需求的优先级,估计测试资源的需求量,开发测试项目计 1 3 硕士学位论文 第二章软件测试和自动化测试理论 划以及给测试小组成员分配测试职责;测试设计阶段需要确定所要执行的测试数 目、测试方式,必须执行的测试条件,以及需要建立和遵循的测试设计标准;测 试开发,即开发自动化测试脚本,为了使自动化测试可重用、可维护、可扩展, 必须定义和遵循测试开发的标准。 ( 5 )测试执行与管理 在这个阶段,测试人员必须根据测试的日常安排来执行测试脚本,并改善这 些脚本。在这个过程中还必须评审测试的结果,以避免错误的结果。系统的问题 应通过系统问题报告记录在案,并帮助开发人员理解和重现这些问题。最后,测 试团队需要进行回归测试来追踪和关闭这些问题。 ( 6 ) 测试评审和评估 测试项目的评审必须贯穿于整个自动化测试生命周期,以利于测试活动的不 断改进,必须有相应的标准来衡量评审的效果。 a t l m 是一种结构化的方法,它规定了测试方法和执行测试的流程,使得软 件专业人员能进行可重复的软件测试。把a t l m 应用到自动化测试项目中,一 方面规范了测试流程,便于测试的管理。另一方面也使测试团队能在测试资源受 限的情况下有效组织和执行测试活动,达到使测试覆盖率最大的目的。 2 3 5 自动化测试的优缺点及实施中存在的问题
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 关于信任的演讲稿
- 2025甘肃陇南城镇招聘公益性岗位人员13人考前自测高频考点模拟试题及答案详解(易错题)
- 2025湖南省怀化学院高层次人才公开招聘100人模拟试卷及答案详解(夺冠)
- xx市城乡居民大病保险政策解读课件
- 2025年4月四川护理职业学院编外人员招聘14人模拟试卷及答案详解(易错题)
- 2025年郑州二七投资控股有限公司公开招聘9名考前自测高频考点模拟试题附答案详解(黄金题型)
- 2025年辉南县教育系统面向东北师范大学等院校招聘教师及考前自测高频考点模拟试题及答案详解(夺冠系列)
- 2025湖南永州市潇湘兴业集团公司选聘急需紧缺专业人才考前自测高频考点模拟试题附答案详解(考试直接用)
- 2025年芜湖繁昌区教育高层次人才招引25人考前自测高频考点模拟试题有完整答案详解
- 2025江西吉水县某行政单位招聘4人模拟试卷及答案详解(全优)
- 第10课《往事依依》教学课件+2024-2025学年统编版语文七年级上册
- 人教版六年级数学上册第一单元测试卷
- 2024年注册安全工程师生产技术押密试题及答案
- 高标准农田设计实施方案(技术标)
- 医院培训课件:《分级护理制度》
- 2024春期国开电大本科《中国现代文学专题》在线形考(阶段作业1至4+专题讨论1至2)试题及答案
- 大型连锁医药零售企业发展模式
- 安全生产教育培训教材
- 王崧舟“诗意语文”教学艺术剖析
- 师德师风负面清单及整改台账
- 私募基金资金募集服务协议模板
评论
0/150
提交评论