【毕业学位论文】(Word原稿)数字电视应用平台的自动化测试设计与实现-软件工程_第1页
【毕业学位论文】(Word原稿)数字电视应用平台的自动化测试设计与实现-软件工程_第2页
【毕业学位论文】(Word原稿)数字电视应用平台的自动化测试设计与实现-软件工程_第3页
【毕业学位论文】(Word原稿)数字电视应用平台的自动化测试设计与实现-软件工程_第4页
【毕业学位论文】(Word原稿)数字电视应用平台的自动化测试设计与实现-软件工程_第5页
已阅读5页,还剩62页未读 继续免费阅读

下载本文档

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

文档简介

硕士学位论文 ( 软件工程 ) 数字电视应用 平台 的自动化测试 设计与实现 姓 名: 庄子健 学 号: 0921170225 所在院系: 软件 学院 职业类型:软件工程 专业领域:软件工程 指导教师:王介之 , 张惠娟 校外导师: 王忠全 二 一三年九月 A in 2013 0921170225 of V 数字电视应用平台的自动化测试设计与实现 庄子健 同济大学 软件学院 学位论文版权使用授权书 本人 完全了解同济大学关于收集、保存、使用学位论文的规定,同意如下各项内容:按照学校要求提交学位论文的印刷本和电子版本;学校有权保存学位论文的印刷本和电子版,并采用影印、缩印、扫描、数字化或其它手段保存论文;学校有权提供目录检索以及提供本学位论文全文或者部分的阅览服务;学校有权按有关规定向国家有关部门或者机构送交论文的复印件和电子版;在不以赢利为目的的前提下,学校可以适当复制论文的部分或全部内容用于学术活动。 学位论文作者签名: 年 月 日 同济大学学位论文原创性声明 本人郑重声明:所呈交的学位论文,是本人在导师指导下,进行研究工作所取得的成果。除文中已经注明引用的内容外,本学位论文的研究成果不包含任何他人创作的、已公开发表或者没有公开发表的作品的内容。对本论文所涉及的研究工作做出贡献的其他个人和集体,均已在文中以明确方式标明。本学位论文原创性声明的法律责任由本人承担。 学位论文作者签名: 年 月 日同济大学 硕士学位论文 摘要 I 摘要 为了保证所提交的软件产品能够满足客户的需求 ,确保产品 在使用中的可靠性 , 必须对所开发的软件产品进行系统而全面的测试。软件测试是软件质量保证工程的一个重要组成部分 ,也是最重要的质量保证手段。无论是面向对象软件开发还是传统的面向过程软件开发 ,软件测试归根结底要通过一套比较成熟的测试技术和方法来实现 。随着软件规模的不断扩大 ,测试工作的复杂性也不断升高 ,而改善、提高软件易测试性则是降低测试复杂性的有效手段。为达到这一目标 ,首先要 对软件的易测试性进行准确的度量 。 这种度量结果除了作为软件度量的一个量化指标外 ,还应能为改善易测试性提供指导、为测试的设计提供有效帮助。 本文主要从数字电视应用项目的软件测试实践出发 ,阐述了软件测试的基本原理和意义。主要的研究内容有以下 二 个方面 : 第一 ,对数字电视应用系统基础体系进行了研究和分析 ,建立了一整套测试用例 ; 第二 ,针对功能测试 ,开发了一套实用的测试脚本 。 根据系统设计 用例 ,选用合适的测试工具 制定自动化测试脚本 。 这样可有效地提高系统回归测试 质量 ,提升回归测试 效率 ,确保 产品质量稳定 。 关键词 : 软件 测试 ; 自动化测试 ; 测试管理I to be by of a to it in in a or be by a of on of is of is an to of is to a be of be to to my on V on of on of to 1. V to a of 2. a of on of to be to an of so be of 硕士学位论文 目录 录 第 1章 概述 . 5 述 . 5 外研究现状 . 5 内软件测试行业的现状与趋势 . 6 题来源 . 7 究目标 . 7 文组织与结构 . 8 第 2章 软件自动化测试的基本理论 . 9 件自动化测试的概述 . 9 件自动化测试的优缺点 . 10 件自动化测试的优点 . 10 件自动化测试的缺点 . 10 件 自动化测试的准入条件 . 11 动化测试的流程 . 12 动化测试框架的提出背景和种类 . 14 动化测试 框架提出的背景 . 14 动化测试框架的种类 . 15 章小结 . 16 第 3章 . 17 . 17 . 17 . 18 试验证的实现 . 18 . 20 章小结 . 20 第 4章 数字电视平台应用的需求分析 . 21 目背景 . 21 统简介 . 21 作流程 . 21 同济大学 硕士学位论文 目录 项目测试背景及要求 . 22 能性需求分析 . 23 口模块 . 23 口模块 . 29 口模块 . 32 能需求分析 . 36 件系统耗时功能分析 . 36 户访问量 . 36 统业务量和系统处理能力 . 36 章小结 . 37 第 5章 数字电视平台自动化测试框架的设计与实现 . 38 动化测试框架的设计 . 38 试用例流程数据搭建表 . 38 试用例运行配置表 . 40 动化测试框架的实现 . 41 据准备模块实现方法 . 41 线程组模块 . 43 动化测试的结果与分析 . 51 能测试结果 . 51 动化测试估算 . 53 算 . 54 动化测试分析 . 55 际 . 57 章小结 . 57 第 6章 结论与展望 . 58 论 . 58 一步工作的方向 . 58 参考文献 . 60 个人简历、在读期间发表的学术论文与研究成果 . 62 第 1 章 概述 5 第 1 章 概述 述 随着软件产品在各个应用领域的普及 ,软件的质量问题逐渐成为人们关注的焦点。质量不过关的软件产品在使用中可能出现各种意想不到的问题 ,不但影响正常的操作、增加使用成本 ,甚至会产生严重的或灾难性的后果 1。另一方面 ,软件的质量问题也会增加软件开发商的维护费用 , 影响其信 誉和形象 , 甚至导致经济或法律纠纷。因此不论软件用户还是开发商都希望 软件 质优, 可靠性 强 。 然而 ,完美无缺的软件是不存在的 ,有错是软件的必然属性。导致软件错误的原因是多方面的 ,开发商对用户要求认知的不深刻、软件本身的复杂性、软件开发工具存在的局限 性 、软件开发中的人为错误、时间压力等等 ,这些都 影响 着 产品的顺利开发 ,从而导致软件开发成本、进度和质量上的失控。 然而, 经过软件专家和相关人员的研究 分析 ,发现软件的质量问题仅仅通过开发人员的认真和仔细是不能消除的 ,程序语言的更新换代对提高软件的可靠性也收效甚微。随着软件工程 学的兴起和软件开发的工程化 ,人们认识到新的语言、先进的技术和完善的管理仍然不能杜绝软件中的错误 ,而软件测试则在这一工程化的过程中逐渐担负起评价和发现错误的责任 ,成为软件开发的重要部分。 实践 表明在典型的软件开发项目中 ,软件测试的工作量往往占软件开发工作总量的 40%,由此产生的费用要占 总成本 的 30%其重要性不言而喻。 外研究现状 在国外 软件测试 中, 大量有组织的研究工作可以追溯到上 世纪 70 年代。 1972年 6 月在美国北卡罗来纳大学召开首届软件测试正式技术会议,成为软件测试技术发展中的一个重要里程碑 9。由此次会议为起点, 软件测试作为软件工程的一个重要组成部分成为软件业关注并研究的新 方向和 新 领域 4。 由于软件测试在国外的起步大大早于国内,软件测试 技术 特别是自动化测试技术 其 发展要更加成熟完善。在自动化工具的研发上诸如 发的 发的 商业工具都是出自国外企业之手 5,并且也 根据形势定期发布新版本更新。从 21 世纪 初起 ,国外 对自 动化测试研究逐渐开始 从对 自动化测试工具的研究转向了 对 自动化测试的整体运行和具体实施方面的研究。一套第 1 章 概述 6 自动化测试的顺利实施需要包含从开发到测试团队 各 个方面的配合 10。 开发并 合理 使用自动化测试脚本和驱动模式不仅 能 达到 在测试阶段降低执行成本的目的,同时 也能 使自动化测试 的 自身开发复杂 性 和周期 性 下降。为了达到这个目的,国外 很多 企业提出 , 并且设计了各种开发驱动模式 ,而 且在实际中 也 得 到了 很好的应用 。 其中 有: 出的 2003 年提出的 21, 第三次国际自动化测试研讨会 中 提出的 0,之前被广泛使用的自动化组件测试 (19, 以及 目前非常流行的 些 在实际生产过程中 都得到 了 验证 ,具 有非常良好 的 效果。 相比国外,国内的自动化测试发展 显得 还处于比较初级的阶段 。 自动化测试工具大多数还是使用国外的产品,或者对现有的开源自动化工具进行二次开发6。而在自动化测试的推 广实施上,畏惧 自动化测试 成本 较高的前期投入,大多数公司 企业 还处于比较保守的尝试阶段 。 但随着软件业的迅猛发展,软件测试的必要性和 价值 日趋显现。 自动化测试成为软件测试的必由之路已经毋庸置疑 。 很多国内大企业开始 根据 自己企业的实际情况开发 应用 相应的自动化测试框架 , 甚至工具,比如淘宝的 动化测试框架 18, 自动化测试 7: 2:1 的比例 等, 都为国内自动化测试发展 引领了方向 。 内 软件测试行业的现状 与趋势 在国内软件 消费市场 经常出现一些产品 ,由 于 存在严重缺陷, 导致大量退货。这对 软件 定制 行业来 说 造成了 一再的 返工 ,无休止的 修改和维护 。这样 既拖死了软件提供商 ,也耽误了客户的正常业务 运作 。 这一现状使用户对国内软件提供商失去信心 ,经常听到有人抱怨 ,国内软件质量不高。 要提高我国的软件测试行业的发展水平,首先要解决人才的问题。一方面要提高国内企业对软件测试的重视程度,另一方面要壮大软件测试队伍,提高测试人员的素质。国内很多软件企业对软件测试的重要性了解不够,重开发轻测试的现象较为严重,很多公司测试工程师太少,没有专门的测试部门,开发人员同时做测试工作的现象较为普遍,尤其在中小型软件企业中这种现象特别突出 。要改变这种现状,需要一个漫长的过程 。不过随着中国市场 透明度 的 提高,产 品质量问题将成为软件企业能否继续发展壮大的关键所在,这也 促使 越来越多的企业管理者意识到产品测试的重要性,也会将越来越多的精力投入到测试工作中 7。 第二, 要善于学习与吸收。我们中国人具有很强的学习能力,但在软件测试这一块,我们有太多 东西要 学 ,尤其 要学习国外的先进技术及经验。国外有完善第 1 章 概述 7 的测试机制,有丰富的软件测试经 验,有强大的测试工具,有优秀的测试管理队伍。 这些我们都应好好地学习,确立与国外先进水平相同的技术指标和质量标准,解决测试手段落 后、测试方法单一和测试工具欠缺的问题,在行业内部形成一个严密有效的纠错系统,使国内的测试工作流程、技术水平接近国外先进水平,这样才能提高国内软件开发与测试的整体管理水平,增加软件产品的竞争力。 第三,大力发展第三方的专业测试公司,重视利用第三方的测试力量进行测试。如果让企业从头去建立测试部门,完善测试质量体系,需要较多的资金投入,增加企业的运营成本,而且技术支持和技术培训也得从头做起,往往很困 难。而将研发出来的软件产品交给实力强劲的第三方专业测试机构,不 仅能大大 提高软件产品的质量 ,而且还节约了产品测试成本。 这样 第三方专业测试机构将越来越多,规模也将越来越大 8。目前国内很多地方都有了软件产品检测中心,此类机构 依靠技术与服务来征服客户 。 注重测试方法与质量,国外在这一方面发展得很好 。随着软件测试行业的发展, 提高和完善,也会象软件开发行业一样出现分工上的细化,测试人员等级的划分 。 比如 , 初级测试员,测试工程师,高级测试工程师,测试设计师,测试经理等,同时也会出现各种各样的国家认证、企业认证、国际认证等,所以我们需要不断地学习,不断地提高测试水平。 题来源 本课题源于笔者 工程项目产品 : “ 。 统 是 司针对国内市场推出的一套视频服务产品,能够 为客户提供实现媒体流点播,录播,实时收看等多种媒体服务功能 硬件和软件的架构 。 笔者 参与了这个项目的测试工作,主要负责系统中的随心点播应用的测试用例设计,测试的管理,测试文档的维护,测试环境的搭建,自动化测试软件的设计与开发以及 究目标 笔者在 作 期间 参与 及的软件自动化测试 研究范围仅限于黑盒测试。笔者所在的测试与工具小组根据公司的具体情况设计了一套引入自动化测试的解决方案 , 并自主开发出一套通用测试 平台。 本课题研究主要集中在以下几个方面 : (1) 根据 统的需求设计测试用例。 (2) 针对测试的特点 ,开发出一套简单易用的 自动化测试脚本 。 (3) 对整个自动化测试框架流程进行总体设计 。 第 1 章 概述 8 (4) 在整个项目实施过程中 , 编写与管理 指定项目进度。 本项目自动化测试的目标是: 提升工作效率 50%,加快测试进度 50%,控制产品的 0%以下 。 文组织与结构 本文的结构主要包含 : 概述 、 软件自动化测试的基本理论 、 绍 、 基于 基于 结论与展望 。 概述 主要叙述了课题的背景及来源 , 研究意义 , 国内外发展概况 , 以及研 究现状和目标。 软件自动化测试的基本理论介绍 , 包括自动化测试优缺点,准入和准出条件,自动化测试的流程,自动化测试框架的提出背景和种类。 包括 基于 基于 动化测试框架的 设计 , 实现 与 结果分析 。对于所设计的各个模块进行详细分析设计及具 体开发实现。 总结部分 , 概括了工作成果 , 对下一步工作的展望以及对论文的完成作了一个总结。 第 2章 软件自动化测试的基本理论 9 第 2 章 软件自动化测试的基本理论 件自动化测试的概述 在整个软件开发 过程中,软件测试一般会占 40%60%的比重,这就决定了软件测试高强度的工作量。而在这些大量的工作中,重复的测试又占有很大的比重 。无论是迭代的开发 模式, 还是 新版本功能的发布,都会大量 地 重复回归测试工作。如果一直依靠测试人员手工去完成这些重复的,大量的, 需要 注意力 高度 集中 的工作,不但会使测试人员不堪重负,也会对软件测试质量产生影响。基于这种情况,用机 器代替测试人员手工去自动完成大量重复的测试执行工作成了必然的选择。 自动测试相对于手工测试而言,其主要进步在于 引入 自动测试工具。自动 化测试 可 定义为: 各种测试活动的管理与实施,包括测试脚本的开发与执行,以便使用一种自动测试工具来验证测试需求 。自动化测试的本质就是通过工具模拟手工测试一切 操作,包括手工测试整个流程以及测试方式,其中主要 包括自动完成测试用例的前提条件,模拟手工测试对被测系统进行流程操作,自动化验证比较实际值和预期值,完成整个测试中对检查点情况报告,同时整个 自动化测试流程必须与手工测试的各个阶段路 程 相 一致。 自动化测试主要目的是在保证质量的前提条件下为企业节省成本和时间。 稳定的自动化测试是现代软件开发的一个重要组成部分,它除了能够代替部分手工测试,还能够完成许多手工无法完成的一些测试工作,从而提高软件质量,缩短产品发布周期,提高测试效率 。除此之外,由于自动化测试将承担大量的手工测试工作,相应的测试人员 必须要 有时间和精力 , 深入 研究软件 业务路程和相应的测试技术,设计出新的更有价值的测试用例,从而提高和改善软件的整体质量,最终达到保证软件产品质量,提高客户信心,加强企业市场竞争力的最终目标 14。 自动化测试的初期准备成本要远远大于手工测试,因为脚本本身不仅需要经过创建 ,调试,更要根据系统的修改要 进行及时的变化。但只要规划管理得当,同时增加脚本的复用性,那么 在测试执行时所带来的回报也大大超过手工测试,一般而言,在同等条件 下 ,自动化测试的执行效率要比手工测试快上 23倍 15,同时所有的结果具有绝对的客观性。 第 2章 软件自动化测试的基本理论 10 件自动化测试的优缺点 件自动化测试的优点 自动化测试的优点主要包括以下几点: (1) 速度快: 自动化测试是使用某些特定的自动化测试工具进行测试 执行 ,其页面操作和期望值对比的速度要远远大于测试人员 手工操作。一般来说其速度是手工测试的 23 倍。 (2) 循环执行: 在硬件及环境允许的前提条件下,自动化测试的执行工作可以无限次 重复执行同一套脚本。 (3) 可复用性: 自动化测试的测 试用 例 ,其物理表现形式 则 是一套脚本代码, 它 继承了代码可以复用的 基本特征,在测试领域 能 更好进行 拓展。每套自动化测试脚本只要划分得当,都可以被其他的自动化测试用例所复用,从而 可 节省自动化测试用例的准备和维护成本。 (4) 可信性: 自动化测试的主要执行者是自动化测试工具, 在执行过程中,不可能存在执行者的主观因素对测试结果 产生 影响 。它的优势是借助于计算机的计算能力,可以重复地、不知疲倦地运行 。 对于数据,能进行精确的 , 大批量的比较,而且不会出错 。 在同等的情况下,可信度要比手工测试更 高 。 件自动化测试的缺点 自动化测试的缺点主要包括以下几点: (1) 成本高 自动化测试的成本主要包括以下三个方面 : 自动化测试工具的购买成本 自动化测试工具是某个特定的软件,若使用商业自动化测试工具,必须 事先对工具的使用权进行额外的购买。 自动化测试工具及其脚本语言的培训成本 自动化测试工具及其相关 脚本语言的使用 与 被测 系统本身没有任何的关系,在使用自动化测试之前,对于这方面的培训 成本必 须额外进行考虑。 第 2章 软件自动化测试的基本理论 11 自动化测试脚本的创建和维护成本 自动化测试脚本 的创建和维护相对于手工测试用例的创建和维护而言难度要大很多,所花费的时间和成本也 更为巨大。一般而言,自动化测试脚本的创建和维护成本要比手工测试用例的创建和维护高 达 70%以上。 (2) 测试准备周期长 自动化测试的执行速度要比手工测试快很多,但相对的 测试 准备周期要比手工测试 长很多。撇开事先的自动化工具和脚本语言的培训时间不算,由于自动化测试创建的过程 实际 上是代码开发的过程,从代码方法的设计,代码的创建, 到 调试等步骤一样都不能少,所以其花费时间要远 多 于手工 测试用例的设计。 (3) 灵活度不够 自动化测试的主体是自动化测试工具,所以在测试执行前,所有的测试路径必须都预制 于 脚本内,脚本会忠实的执行这些路径 。在 执行过程中, 若遇到 预制路径发生变化,脚本 便 无法辨识 , 从而导致最终结果的失败。 软件自动化测试的准入条件 基于自动化测试自身的优点使很多软件公司对他青睐有加,但其显著的缺点也预示自动化测试的引入并不是无门槛的 。 软件的自动化 测试 是一个渐近的过程,自动化测试既不能解决软件测试中的所有问题,也不意味着任何软件测试都可以自动化。 据统计,利用测试工具只能发现 15左右的缺陷, 而通过手工测试可以发现大约 85的缺 陷。购买软件测试工具包并不意味着实现了软件测试过程。 一般而言,若想引入自动化测试需要具备以下的几个条件 : (1) 对自动化测试有一个统一 正确的认识 认清使用自动化测试的目的。自动化测试 可 帮助测试人员从大量的 , 重复的测试执行工作中解放出来 , 为企业节省相应的执行成本和时间。 自动化测试并不是万能,并不是所有的测试都适合使用自动化测试 。 100%自动化测试覆盖率是不可能实现的。 自动化测试的初期成本 大大高于手工测试 。 若在初期没有很好 规划自动化测试的结构和方法, 之后的维护成本会成几何式 上升 ,大大超过手工测试 成本。 第 2章 软件自动化测试的基本理论 12 自动化测试 以手工测试为基础 。 一套优秀的自动化测试脚本必然源于一套优秀的手工测试用例。自动化测试无法完全 替代 手工测试。 (2) 已存在一套标准的软件测试流程 自动化测试 整 体 必须依靠 现有的软件测试流程而实现 。 相对而言,自动化测试的每个阶段都滞后于软件测试的相应阶段 。 软件测试流程的混乱势必造成自动化测试的混乱,从而导致自动化测试无法达到预期的效果。 (3) 确保测试部门有足够的资源从事自动化测试 相对于手工测试,自动化测试对相关的测试人员有一定代码编写能力的要求,特别是在自动化测试初期, 涉及 自动化测试的 策略,计划,实现方式,架构设计等各个步骤 的 确认和实现 , 对相关人员的技术是极大的考验, 因为这些 直接关系到之后的自动化测试在整个测试部门的使用。 动化测试的流程 自动化测试的流程 完全依附于整体的测试流程 。 图 自动化测试的流程及其在整体测试流程中的运行情况。 第 2章 软件自动化测试的基本理论 13 自 动 化 测 试 在 整 体 测 试 流 程 中 的 运 行设计测试用例准备测试计划执行测试用例递交测试报告单 元 测 试 集 成 测 试 系 统 测 试 验 收 测 试 回 归 测 试自 动 化 测 试 计 划准 备自 动 化 工 具 评 估自 动 化 工 具 可 行性 研 究确 定 自 动 化 测 试 用例设 计 和 开 发 自 动 化测 试 脚 本试 运 行 自 动 化 测 试脚 本执 行 自 动 化 测 试脚 本自 动 化 测 试 报 告递 交图 动化测试在整体测试流程中的运行情况 如图所示在整个自动化测试流程中一般需要经历以下 8 个阶段: (1) 自动化测试计划准备 制订一个合适的目标计划对自动化测试的成功实施至关重要。测试计划包 含了测试工作的全部内容,上到测试方法,下至制订所有独立的测试用例 13。 和项目计划和测试计划一样,自动化测试的计划也是非常重要的。 为了 防止测试团队直接进行自动化脚本编写, 必须 考虑以下重要因素:提供准确的项目评估,运用正确的框架,选择正确的方法,自动化的长期维护,以及项目早期的 资回报率)。 (2) 自动化工具评估 自动化测试需要使用各种自动化测试工具, 估)是一个重要的决策阶段,如果选错了工具,自动化测试实施起来就 非常困难 。所以必须 根据 项目的成本,长度和人员的技能评估出合适的候选自动 化测试工具。 (3) 自动化工具可行性研究 对候选 自动化测试工具逐一进行相应的可行性研究,最终确定可以支持测试系统的合适的自动化测试工具。 第 2章 软件自动化测试的基本理论 14 (4) 确定自动化测试用例 先 确定需要被自动化测试 的 用例列表 ,然后再 确定相应的自动化测试范围。 (5) 设计和开发自动化测试脚本 搭建或修改自动化测试框架 , 并在其基础上设计和开发自动化脚本,从而完成自动化脚本的开发工作。 (6) 试运行自动化测试脚本 在正式运行自动化测试脚本前,必须对所有的脚本进行试运行 , 从而判断脚本是否可以递交到正式执行阶段。 (7) 执行自动化测试脚本 正式执行自动化测试脚本,分析执行的 结果,判断失败的步骤是脚本 中 问题造成还是系统 中 问题造成 。 如果是脚本问题 , 则修改相应脚本,如果是系统问题则提交缺陷。最后将所有的测试结果备份。 (8) 自动化测试报告递交 测试结果分析是测试中至关重要的步骤。 根据执行结果及执行过程中所收集的数据评估自动化测试是否达到预期目标 。 若没有达到 , 需要分析相应的原因,最终完成自动化测试报告的递交。 动化测试框架的提出背景和种类 动化测试框架提出的背景 尽管自动化测试相当强大,但大多数 实际 使用中的自动化测试还 是 相当脆弱的 。 最初的自动化测试技术大多是基于简单的捕捉 回放技术来完成。这些测试方法虽然最容易应用,但是维护性 , 复用性比较差,因此逐渐被功能和灵活性更强的测试脚本工具代替 。 捕获回放机制生成的测试脚本是基于场景的,不仅脚本可读性差,调试复杂,更重要的是脚本维护困难,一个微小的错误都会导致测试执行过程无法正常执行 。随着自动化测试开始被大量 地运用于 软件项目中,测试人员逐渐发现,仅仅依赖自动化测试工具是根本无法完成自动化测试的。工具本身只是起到一个辅助的作用,要真正完成好自动化测试,达 到 提高测试效率,降低测试执行 时间 , 最终达到提高产品质量的目的,势必需要一套完整自动化 测试流程 作为 解决方案 的 基础。 随着软件项目的增多 和 自动化测试应用经验的 积累 , 企业 希望 有 一套可以被更多项目所使用的通用自动化测试框架,降低自动化测试在各个项目的实施难第 2章 软件自动化测试的基本理论 15 度。 基于这样的情况,各个软件公司企业纷纷开始着手尝试研发适合 自己 通用的自动化测试框架,从而 在更大范围中解决 软件自动化测试 的 一些常见问题,诸如降低软件自动化测试中脚本开发维护成本,降低自动化测试用例搭建生成的难度,提高自动化测试脚本生成和更新的速度等问题。 动化测试框架的种类 对自动化测试框架的研究是在 本世纪初 开始兴起 的 ,其中经过多 次的更迭,现今业界公认的主要经历过以下几种: 1) 线形 ( 线形就是一段过程性代码,这是在自动化测试初期仅适用录制功能方法 所 产生的一种形式。这种形式的一个最大弊端就是极端不灵活,系统任何细微修改就可能 导致脚本的失效,所以这种形式很快 就被淘汰。 2) 结构形 (结构形 比较线形有了一定程度的改进 。 代码本身加入 了 一定 的 异常处理 , 可以使自动化测试脚本的强 大 性得到了一定的提升。但由于结构形 未考虑到自动化脚本的可维护性,所以在项目中 实际 使用的频率也相当低。 3) 数据驱动 ( 自动化测试中数据驱动与手工测试中 数据驱动基本相同,即测试目的 是 根据所准备的输入不同而不同 。 所谓的测试目的由测试数据所决定。 编写自动化测试脚本的时候,可以让测试用例数据 单独存在 于测试套件 中,也可以把它嵌入测试套件中。通常来说,较好的 做法是让测试数据独立于测试套件 。 在自动化测试中,只需设计同一套测试脚本 。 根据所配置测试数据的不同完成不同的测试流程 , 从而达到各自的测试目的。通过这种方式 , 最大程度 地 提高了自动化脚本的复用性 , 相应 地 降低了开发和维护成本。当今所 用 的商业自动化工具 , 例如 将这种理念带到了工具本身特性中。 4) 关键字驱动 ( 关键字驱动是由 司 提出的 。 为了让更多的测试人员投入的自动化测试中,降低自动化测试 用例搭建 难度是必须的。关键字驱动 的 主旨就是将某些功能流程封装成相应的关键字供所有测第 2章 软件自动化测试的基本理论 16 试人员使用 。 测试人员不必关 心 关键字的具体内部实现方式,只需根据自己需要进行相应的组合,从而达到降低自动化测试 用例 搭建难度的目的。 5) 复合式驱动 ( 复合式驱动是当今最为流行的框架种类,即将数据驱动和关键字驱动组合使用。借由数据驱动达到降低开发维护成本的目的,借由关键字驱动达到降低自动化测 试用例搭建产生难度的目的。这种组合能够最大程度 地 弥补自动化测试工具本身先天不足,从而更好地发挥自动测试的作用。 章小结 本章主要介绍了软件自动化测试所涉及到的相关概念和理论,包括软件自动化测试的概述,优缺点,准入条件和基本流程。同时还介绍了关于软件自动化测试框架的提出背景和当今公认的框架种类 。 这些概念和理论是这次自动化测试框架研究的理论依据和基础。第 3章 17 第 3 章 绍 本 文 项目中 的测试工具 , 笔者选用 做自动化测试 。 之所以要引入主要考虑到 四个方面 。 第一 , 测试脚本不需要编程,熟悉 求,熟悉业务流程,就可以根据页面中 象来编写测试用例 。 第二 , 测试脚本维护方便 , 可以将测试脚本复制,并且 还 可以将某一部分单独保存 。 第三 , 它又是个开源的工具 ,方便使用 ,节省项目成本 。 第四 , 介 一个 100%纯 于压力测试和性能测量。它最初被设计用于 但后来扩展到其它测试领域。 以对静态和动态资源 (文件, 据库和查询, 务器或是其它资源 )的性能进行测试。 以在服务器,网络或对象模拟繁重的负载 , 测试它们提供服务的受压能力或者分析不同压力条件下的总体性能情况。可以使用 供的图形化界面,分析性能指标 , 或者在高负载情况下测试服务器 /脚本 /对象。 项目 工程师 发出来。他当初开发 要用于测试 个被 程取代了的项目 )的性能。之后又再次设计了 加了图形化界面和一些功能测试 。 开发人员借助它可嵌入的结构 特性 ,希望看到 能力能 随之快速被扩大。 进一步的 发展 方向 是在没有减弱它负载测试能力的同时尽可能做成最有效的回归测试工具。 要特性 a) 能够对 也可以对任何数据库进行同样的测试(通过 b) 完全的可移植性和 100 纯 c) 完全 轻量组件支持(预编译的 )包。 d) 完全多线程 框架允许通过多 线程并发取样和通过单线程组对不同的功第 3章 18 能同时取样。 e) 精心的 计允许快速操作和更精确的计时。 f) 缓存和离线分析 /回放测试结果。 g) 高可扩展性: 可链接的取样器允许无限制的测试能力。 有 各种负载统计表和可链接的计时器可供选择。 数据分析和可视化插件提供了很好的可扩展性以及个性化。 具有提供动态输入到测试的功能(包括 支持 由 脚 本变成的取样器(在 工作机制 1 测试计划是使用 试起点,它是其它 试元件的容器。 2 线程组代表一定数量的并发用户,可以用来 向 模拟并发用户发送请求。实际的请求内容在 被线程组包含。 3 监听器负责收集测试结果,同时也被告知 结果 的 显示方式。 4 逻

温馨提示

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

评论

0/150

提交评论