【毕业学位论文】(Word原稿)基于Selenium的自动化测试框架的研究与应用-软件工程_第1页
【毕业学位论文】(Word原稿)基于Selenium的自动化测试框架的研究与应用-软件工程_第2页
【毕业学位论文】(Word原稿)基于Selenium的自动化测试框架的研究与应用-软件工程_第3页
【毕业学位论文】(Word原稿)基于Selenium的自动化测试框架的研究与应用-软件工程_第4页
【毕业学位论文】(Word原稿)基于Selenium的自动化测试框架的研究与应用-软件工程_第5页
已阅读5页,还剩74页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

硕士学位论文 基于 自动化测试框架的 研究与 应用 姓 名: 学 号: 所在院系:软件学院 学科门类:计算机科学与技术 学科专业:软件工程 指导教师: 副 指导教师 : 二 一 三 年 九 月 I A in he 2013 基于S e l e n i u m 自动化测试框架的 研究与应用 同济大学 I 学位论文版权使用授权书 本人完全了解同济大学关于收集、保存、使用学位论文的规定,同意如下各项内容:按照学校要求提交学位论文的印刷本和电子版本;学校有权保存学位论文的印刷本和电子版,并采用影印、缩印、扫描、数字化或其它手段保存论文;学校有权提供目录检索以及提供本学位论文全文或者部分的阅览服务;学校有权按有关规定向国家有关部门或者机构送交论文的复印件和电子版;在不以赢利为目的的前提下,学校可以适当复制论文的部分或全部内容用于学术活动。 学位论文作者签名: 年 月 日 同济大学学位论文原创性声明 本人郑重声明:所呈交的学位论文,是本人在导师指导下,进行研究工作所取得的成果。除文中已经注明引用的内容外,本学位论文的研究成果不包含任何他人创作的、已公开发表或者没有公开发表的作品的内容。对本论文所涉及的研究工作做出贡献的其他个人和集体,均已在文中以明确方式标明。本学位论文原创性声明的法律责任由本人承担。 学位论文作者签名: 年 月 日同济大学 硕士学位论文 摘要 I 摘要 随着软件行业的发展 和更新的 速度越来越快, 对软件质量的要求越来高,软件测试行业面临着前所未有的挑战 。面对大量重复的执行的工作, 传统手工测试的执行效率低,对测试人员的主观因素依赖程度大等缺点越来越多的凸现出来。自动化测试的产生的适时地弥补了手工测试不足 , 但在 实际操作中 , 仅仅依靠单一的自动化工具去完成自动化测试并不现实 。 自动化测试的开发复杂度高,相关脚本编写和维护 成本大的客观 因素 阻碍了自动化 测试的广泛使用。 在这种背景下,自动化测试框架变成为当下软件测试行业非常关注的一个方向,特别是对于基于开源软件的自动化测试框架 因其初期工具成本为 0,更是被寄予了极大的期望。 提供了一整套自动化测试解决方案的 自动化测试框架弥补了自动化测试的先天不足,从而充分发挥自动化测试的优势, 进而 提高软件 的整体质量。 本课题主要研究 在 自动化测试框架中数据驱动和关键字驱动的有效结合 并且 同时满足自动化测试批量执行以及无人监管等要求,使用当前流行的开源自动化工具 成熟的 发程序 语言,从而使框架具有一定的通用性和便捷性。 本文 详细阐述了课题产生的背景, 国内外研究现状, 深入研究软件自动化测试的基本理论,介绍分析开源自动化工具 细阐述基于 个模块的 设计 和具体实现过程 。最 后 结合某保险系统的测试,介绍此自动化测试框架的在实际生产上的应用情况 。 关键词 : 自动化测试 , 自动化测试框架 , 关键字驱动 , 数据驱动 , I of is of s is is on as of on of in is of it is to if on a is of In a in on of . a of up of of is on of of so of of of of in of of of an 硕士学位论文 目录 录 第 1 章 概述 . 1 题研究背景 . 1 内外研究现状 . 2 要研究内容及开发工作 . 2 文结构 . 3 第 2 章 软件自动化测试的基本理论 . 5 件自动化测试的概述 . 5 件自动化测试的优缺点 . 6 件自动化测试的优点 . 6 件自动化测试的缺点 . 6 件自动化测试的准入条件 . 7 动化测试的流程 . 8 动化测试框架的提出背景和种类 . 10 动化测试框架提出的背景 . 10 动化测试框架的种类 . 11 章小结 . 12 第 3 章 绍 . 13 介 . 13 工作机制 . 13 面及页面对象的操作与控制 . 13 试数据的控制 . 14 试验证的实现 . 16 要 绍 . 18 应用 . 18 章小结 . 19 第 4 章 基于 动化测试框架的需求分析和设计 . 20 能性需求分析 . 20 别参与者与用例 . 23 功能性需求分析 . 26 架的总体设计 . 27 据表设计 . 29 试用例流程数据搭建表 . 29 测试场景数据库: . 30 试用例运行配置表 . 31 同济大学 硕士学位论文 目录 V 章小结 . 32 第 5 章 基于 动化测试框架的实现 . 33 处理脚本执行模块 . 33 处理脚本执行模块流程 . 33 处理脚本执行模块主要方法 . 36 试脚本主驱动模块 . 37 试脚本主驱动模块流程 . 37 试脚本主驱动模块主要方法 . 38 据引擎模块 . 39 据引擎模块工作实现流程 . 39 复用自动化测试业务组件的设计 . 41 试报告模块 . 43 试报告模块分类 . 43 试报告产生流程 . 45 试报告模块主要方法 . 47 持函数 库模块 . 48 章小结 . 51 第 6 章 基于 动化测试框架在保险系统中的应用 . 52 目背景 . 52 统业务背景 . 52 目测试背景及要求 . 54 动化测试实施 . 54 动化测试估算 . 54 算 . 55 动化测试实现 . 57 际 . 59 章小结 . 60 第 7 章 总结与展望 . 61 结 . 61 望 . 62 致谢 . 63 参考文献 . 64 个人简历、在读期间发表的学术论文与研究成 果 . 66 1 第 1 章 概述 1 第 1 章 概述 题研究背景 测试是基于给定的准则对系统的执行进行抽样的一个过程 20。 作为软件工程不可或缺的一环, 软件测试是软件开发过程的一个完整部分 2,其 在软件开发整个流程中已经所扮演的脚色已经日益重要 ,发现测试对象中的缺陷是软件测试的一个重要目的,缺陷发现和修复得越早,其需要的成本越低 3。 而当今高质量的软件变得越来越重要了 23,所以测试 在保证软 件质量,降低软件交付风险,提高客户满意度等方面作用使得越来越多 的 软件企业开始加大对软件测试的成本用以提高软件自身的质量和客户的对软件的信心。 但是,由于测试的不确定性、事件和预算的限制,要想彻底的对一个复杂系统进行测试是不可能的。应运而生的是使许多软件测试技术迅速发展 14。 在目前软件测试当中,作为测试主力的手工测试也有其明显不足之处, 当第一个可测试的版本产生后,测试人员开始对这个版本的系统进行测试,很快第二个版本在第一个版本的技术上产生了,测试人员需要在第二次测试时重复上次的测试工作,还要对新增加的功能 进行测试,每经过一个迭代测试工作量会逐步累加 22。 测试用例执行效率低,测试人员的主观因素(比如:态度,细心程度)会直接影响到测试的结果以及测试产品的质量。同时由于测试人员不得不深陷大量的重复的测试任务中,使其无暇去考虑更好的测试解决方案,从而更好的提高软件产品的质量。在当今软件更新迅速的今天,这些不足凸现的业越来越明显。 针对手工测试的不足,自动化测试的产生适时对其进行了弥补,其模拟手工测试的特性使其可以迅速客观的完成软件测试中的重复工作,从而提高测试执行效率和测试产品的质量。同时由于其对测试执行效率的 提升,在长期的测试执行过程中,相关的测试执行成本也会随着执行次数增多而相应的下降,而当司推出开源集成测试软件 更是将自动化工具的购买成本降低为 0。 但自动化测试的较手工测试高昂的开发和维护成本以及开发复杂度,阻碍了自动化测试发展进而阻碍了软件测试的进一步提升。事实上紧紧依靠自动化工具本身很难解决这些自动化测试天生的缺点,当前唯一可行的,并被很多公司所使用的便是开发一套与自身相匹配的自动化测试框架从而使自动化测试能够更好的扬长避短。在充分发挥自动化测试的执行方面的优 势的同时,降低其开发维护成本及相应的开发难度,使自动化测试更具有强大的吸引力和竞争力。 同济大学 硕士学位论文 基于 自动化测试框架的研究与应用 2 内外研究现状 在国外,软件测试的大量有组织的研究工作的开展可以追溯到上个世纪 70年代。 1972 年 6 月在美国北卡罗来纳大学召开首届软件测试正式技术会议,成为软件测试技术发展中的一个重要里程碑 9。由此次会议为起点,软件测试作为软件工程的一个重要组成部分成为软件业关注并研究的新的方向和领域。 由于软件测试在国外的起步大大早于国内,所以其在软件测试特别是自动化测试方面的技术发展要更加成熟完善。在自动化工具的研发上诸如 发的发的 发的 当今流行的自动化测 试 商业工具都是出自国外企业之手,并且也在根据形势定期发布新版本更新。从 21 世纪开始之后,国外的对自动化测试研究逐渐开始自动化测试工具的研究转向了自动化测试的整体运行和具体实施方面的研究。一套自动化测试的顺利实施需要包含从开发到测试团队 各 个方面的配合10。使用合理的自动化测试脚本开发和驱动模式达到不仅在测试阶段降低执行 成本的目的,同时使自动化测试自身的开发复杂度和周期下降。为了达到这个目的,国外各个企业组织提出并且设计了各种开发驱动模式并且在实际中得很好的应用,其中 出的 2003 年提出的21 , 第三次国际自动化测试研讨会提出的4,之前被广泛使用的自动化组件测试 (25, 目前非常流行的 是在实际的生产过程中得到验证有非常良好效果的方式。 相比国外,国内的自动化测试发展就相对还处于比较初级的阶段,在自动化测试工具的大多数还是使用现有国外的成熟产品,或者对现有的开源自动化工具进行二次开发。而在自动化测试的推广实施上,畏惧与自动化测试的较高的前期投入,大多数企业公司 还处于比较保守的尝试阶段 , 但同时随着软件业的迅猛发展,软件测试的价值越来越大的体现,而实施自动化测试成为软件测试的必由之路已经毋庸置疑,很多国内大企业开始针对自己企业的实际情况开发实施相应的自 动化测试框架甚至工具,比如淘宝的 动化测试框架, 出的自动化测试 7: 2: 1 的比例都为国内自动化测试发展开启了一个良好的开端。 要研究内容及开发工作 本文 主要 收集分析当前软件测试自动化测试的普遍需求,深入研究 自动化测试的目的及特点 ,基于开源自动化测试工具 计开发一套通用的针对第 1 章 概述 3 统的自动化测试框架,从而 最大程度的发挥自动化测试的优势。 论文 的核心研究内容包括以下几个方面。 (1) 收集分析目前普遍的自动化测试需求,结合相关理论知识的深入研究和理解,设计出整体的自动化 测试框架模型 (2) 对整个自动化测试流程进行分析和了解,设计自动化测试框架模型基本开发流程的流程驱动模式 (3) 对整个自动化测试框架流程进行总体设计 (4) 根据普遍的自动化测试需求及相应的测试流程进行功能模块的设计与 具体实现 ,设计出适合当下普遍使用的自动化测试模式的系统模块,满足测试人员对自动化脚本的搭建的速度和简便性要求以及测试脚本执行的详细和稳定性的要求。 论文的研究内容中包含了以下几个亮点。 (1) 允许测试人员 根据不同测试类型配置相应的测试用例集合,并一键式完成批量执行 。 (2) 复合驱动的实现,发挥数据驱动和关键字驱动各自的优点 ,实现自动化脚本高复用性和降低自动化测试用例的搭建难度 (3) 引入对象库概念,改善开源软件无法对页面对象进行管理的缺点,将所有对象集中管理,降低维护难度及成本 (4) 使用 新核心技术 高对浏览器及脚本语言的兼容度。 文结构 论文共六章,各章的基本内容如下 第一章,概论。包括对自动化测试框架的研究背景 ,研究的内容 以及 相应的开发工作。 第二章,软件自动化测试的基本理论介绍。包括自动化测试优缺点,准入和准出条件,自动化测试的流程 ,自动化测试框架的提出背景和种类 。 第三章, 技术介绍。包括对 本工作机制, 相关应用。 第四章,基于 动化测试框架的需求分析和设计。 包括 需求分析,总体设计和相关表结构的设计。 第五章,基于 动化测试框架的实现。对于所设计的各个模块进同济大学 硕士学位论文 基于 自动化测试框架的研究与应用 4 行详细分析设计及具体开发实现。 第六章, 基于 动化测试框架在保险系统中的应用。主要包括结合某保险系统的自动化测试任务对该框架进行检验 。 第七章,总结与展望。对框架进行总结, 提出不成熟的地方,展望下一步的发展。第 2章 软件自动化测试的基本理论 5 第 2 章 软件自动化测试的基本理论 件自动化测试的概述 在整个软件开发的过程中,软件测试一般会占有 40%60%的比重 ,这就决定了软件测试高强度的工作量。而在这些大量的工作中,重复的测试又占有很大的比重,无论是迭代的开发模式,使新版本功能的发布,都会大量的重复回归测试的工作。而如果一直依靠测试人员手工去完成这些重复的,大量的,又需要执行者用于高度注意力的工作,不但会使测试人员不堪重负,也会对软件测试质量产生影响。 基于这种情况, 用机器代替测试人员手工去 自动 完成 大量重复的测试执行工作成了必然的选择。 自动测试相对于手工测试而言,其主要进步在于自动 测试工具的引入。自动 化测试的定义为: 各种测试活动的管理与实施 ,包括测试脚本的开发与执行,以便使用一种自动测试工具来验证测试需求 1。 自动化测试 的本质就是通过工具模拟手工测试的一切的操作,包括手工测试整个流程以及 测试方式,其中主要包括自动完成测试用例的前提条件,模拟手工测试对被测系统进行流程的操作,自动化验证比较实际值和预期值的,完成整个测试中对检查点情况报告,同时整个的自动化测试流程必须与手工测试的各个阶段路程 相 一致 。 自动化测试 主要 目的是在保证质量的前提条件下为企业节省成本和时间。 稳定的自动化测试是 现代软件开发的一个重要组成部分,它除了能够代替部分手工测试,还能够完成许多手工无法完成的一些测试工作,从而提高软件质量,缩短产品发布周期,提高测试效率 5。 除此之外,由于自动化测试将承担大量的手工测试工作,相应的测试人员得以有时间和精力的更深入的研究软件的业务路程和相应的测试技术,设计 出新的更有价值的测试用例,从而提高和改善软件的整体质量,最终达到保证软件产品质量,提高客户信心,加强企业市场竞争力的最终目标。 自动化测试的初期准备成本要远远大于手工测试,因为脚本本身不仅需要经过创建 ,调试,更要根据系统 的修改要进行及时的变化。但只要规划管理得当,同时增加脚本的复用性,那么其在测试执行时所带来的回报也大大超过手工测试,一般而言,在同等条件,自动化测试的 执行效率要比手工测试快上 23倍,同时所有的结果具有绝对的客观性。 同济大学 硕士学位论文 基于 6 件自动化测试的优缺点 件自动化测试的优点 自动化测试的优点主要包括以下几点: (1) 速度快: 自动化测试是使用某些特定的自动化测试工具进行测试执行的,其页面操作和期望值对比的速度要远远大于测试人员手工操作。一般来说其速度是手工测试的 23 倍。 (2) 循环执行: 在硬件及环境允许的前提条件下,自动化测试 的执行工作可以无限次的重复的执行同一套脚本。 (3) 可复用性: 自动化测试的测 试用 用例 ,其物理表现形式便是一套脚本代码,其继承了代码可以复用的 基本特征,并更好的在测试领域进行了拓展。每套自动化测试脚本只要划分得当,都可以被其他的自动化测试用例所复用,从而节省了自动化测试用例的准备和维护成本。 (4) 可信性: 自动化测试的主要执行者是自动化测试工具, 在执行过程中,不可能存在执行者的主观因素对测试结果的影响的可能 。它的优势是借助于计算机的计算能力,可以重复地、不知疲倦地运行,对于数据,能进行精确的、大批量的比较,而且不会出 错 6,在同等的情况下,可信度要比手工测试更为可信。 件自动化测试的缺点 自动化测试的缺点主要包括以下几点: (1) 成本高: 自动化测试的成本主要包括以下三个方面 自动化测试工具的购买成本 自动化测试工具是某个特定的软件,若使用商业的自动化测试工具,必须在事先对工具的使用权进行额外的购买。 自动化测试工具及其脚本语言的培训成本 自动化测试工具及其相关的脚本语言的使用和被测系统本身没有任何的关系,在使用自动化测试之前,对于这方面的培训的成本必须额外进行考虑。 第 2章 软件自动化测试的基本理论 7 自动化测试脚本的创建和维护成本 自动化测试脚本的创建和 维护相对于手工测试用例的创建和维护而言难度要大很多,所需花费的时间和成本也要更为巨大。一般而言,自动化测试脚本的创建和维护成本要比手工测试用例的创建和维护高 达 70%以上。 (2) 测试准备周期长: 自动化测试的执行速度要比手工测试快很多,但相对的其测试的准备周期则要比手工测试要长很多。撇开事先的自动化工具和脚本语言的培训时间不算,由于自动化测试创建的过程事实上是代码开发的过程,从代码方法的设计,代码的创建,调试等步骤一样都不能少,所以其花费的时间要远大于手工测试用例的设计。 (3) 灵活度不够: 自动化测试的主体是自动化测 试工具,所以在测试执行前,所有的测试路径必须都预制与脚本内,脚本会忠实的执行这些路径,若遇到执行过程中,预制路径发生变化,脚本也无法辨识从而导致最终结果的失败。 件自动化测试的准入条件 基于自动化测试自身的优点使很多软件公司对他青睐有加,但其显著的缺点也预示这对自动化测试的引入并不是无门槛的, 软件测试的自动化是一个渐近的过程,自动化测试既不能解决软件测试中的所有问题,也不意味着任何软件测试都可以自动化 7。 据统计,利用测试工具只能发现 15左右的缺陷,而通过手工测试可以发现大约 85的缺 陷 27 。 购 买软件测试工具包并不意味着实现了软件测试过程 16。 一般而言,若 想 引入自动化测试需要具备以下的几个条件 (1) 对自动化测试有一个统一的正确的认识 认清使用自动化测试的目的。自动化测试是在帮助测试人员从大量的重复的测试执行工作中解放出来的同时为企业节省相应的执行成本和时间。 自动化测试并不是万能,并不是所有的测试的都适合使用自动化测试, 100%自动化测试覆盖率是不可能实现的。 自动化测试的初期成本是大大高于手工测试的,同时若在初期没有很高规划好自动化测试的结构和方法,其之后的维护成本会成几何的上升,大大超过手工测 试的成本。 同济大学 硕士学位论文 基于 8 自动化测试是以手工测试为基础的,一套优秀的自动化测试脚本必然源于一套优秀的手工测试用例。自动化测试无法完全提到手工测试。 (2) 已存在一套标准的软件测试流程 自动化测试的整个必须依靠于现有的软件测试流程而实现,相对而言,自动化测试的每个阶段都是滞后于软件测试的相应阶段的,软件测试流程的混乱势必造成自动化测试的混乱的,从而导致自动化测试无法达到预期的效果。 (3) 确保测试部门有足够的资源从事自动化测试 相对于手工测试,自动化测试对相关的测试人员的有一定代码编写能力的要求,特别是在自动化测试初期,对自动化测试的 策略,计划,实现方式,架构设计等各个步骤地确认和实现对相关人员的技术是极大的考验的,这直接关系到之后的自动化测试在整个测试部门的使用。 动化测试 的 流程 自动化测试 的流程是完全依附于整体的测试流程的,图 自动化测试的流程及其在整体测试流程中的运行情况。 第 2章 软件自动化测试的基本理论 9 自 动 化 测 试 在 整 体 测 试 流 程 中 的 运 行设计测试用例准备测试计划执行测试用例递交测试报告单 元 测 试 集 成 测 试 系 统 测 试 验 收 测 试 回 归 测 试自 动 化 测 试 计 划准 备自 动 化 工 具 评 估自 动 化 工 具 可 行性 研 究确 定 自 动 化 测 试 用例设 计 和 开 发 自 动 化测 试 脚 本试 运 行 自 动 化 测 试脚 本执 行 自 动 化 测 试脚 本自 动 化 测 试 报 告递 交图 动化测试在整体测试流程中的运行 情况 如图所示在整个自动化测试流程中一般需要经历以下 8 个阶段: (1) 自动化测试计划准备 制订一个合适的目标计划对自动化测试的成功实施至关重要 30。 测试计划包含了测试工作的全部内容,上到测试方法,下至制订所有独立的测试用例 13。 和项目计划和测试计划一样,自动化测试的计划也是非常重要的。用于防止测试团队直接进行自动化脚本编写,而未考虑以下重要因素:提供准确的项目评估,运用正确的框架,选择正确的方法,自动化的长期维护,以及项目早期的 资回报率)。 (2) 自动化工具评估 自动化测试需要使用各种自动化测试工具, 估)是一个重要的决策阶段,如果选错了工具,自动化测试实施起来就十分吃力15。所以必须 根据 项目的成本,长度和人员的技能评估 出合适的候选自动化测试工具。 (3) 自动化工具可行性研究 对候选的自动化测试工具逐一进行相应的可行性研究,最终确定可同济大学 硕士学位论文 基于 10 以支持测试系统的合适的自动化测试工具。 (4) 确定自动化测试用例 确定需要被自动化的测试用例列表从而确定相应的自动化测试范围。 (5) 设计和开发自动化测试脚本 搭建 或修改自动化测试框架并在其基础上设计和开发自动化脚本,从而完成自动化脚本的开发工作 。 (6) 试运行自动化测试脚本 在正式运行自动化测试脚本前,必须对所有的脚本进行试运行从而判断脚本是否可以递交到正式执行阶段。 (7) 执行自动化测试脚本 正式执行自动化测试脚本,分 析执行的结果,判断失败的步骤是脚本问题造成还是系统问题造成,如果是脚本问题则修改相应脚本,如果是系统问题则提交缺陷。最后将所有的测试结果备份。 (8) 自动化测试报告递交 测试结果分析是测试中至关重要的步骤 17。 根据执行结果及执行过程中所收集的数据评估自动化测试是否达到预期目标,若没有达到需要分析相应的原因,最终完成自动化测试报告的递交 。 动化测试框架的提出背景和种类 自动化测试框架提出的背景 尽管自动化测试相当强大,但大多数使用中的自动化测试还相当脆弱 11。 最初的自动化测试技术大多是基于简单的捕捉回 放技术来完成。这些测试方法虽然最容易应用,但是维护性复用性比较差,因此逐渐被功能和灵活性更

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论