软件自动化测试基础_第1页
软件自动化测试基础_第2页
软件自动化测试基础_第3页
软件自动化测试基础_第4页
软件自动化测试基础_第5页
已阅读5页,还剩39页未读 继续免费阅读

下载本文档

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

文档简介

1、软件自动化测试基础 主讲人:张伟 软件测试自动化简介 u软件测试自动化软件测试自动化是一项是一项让计算机代替人让计算机代替人进进 行软件测试的技术。行软件测试的技术。 u那么我们为什么要引入自动化测试呢?那么我们为什么要引入自动化测试呢? 为什么要引入软件测试自动化呢? u软件测试是一项繁重的任务,全靠手工去完成测 试是很难按时保质保量的完成。有些测试在成本 一定的情况下,几乎不可能去完成。例如: 需要多次回归测试的软件(例如迭代开发或增量开发 的软件,某些精确度要求比较高的重要软件)。频繁 回归测试使测试人员的工作热情受损,工作质量降低。 测试时间比较长甚至需要几个通宵去进行测试的功能 并发

2、性测试,可靠性测试,白盒逻辑覆盖测试等手工 很难完成的测试。 软件测试自动化简介 u软件测试自动化是一项让计算机取代人的进行 软件测试技术。通过自动化测试技术可以自动 运行大批量的测试用例,也可以完成某些手工 测试难以完成的测试用例。从而节省了人力、 时间和硬件资源。 u测试自动化是借助测试工具来实现的。不同类 型的测试具有不同的测试工具。 u自动化测试工具中的测试用例是以脚本的形式 存在的 自动化测试带来的优点 1.提高软件测试效率。自动化测试执行用例的 速度比手工测试快的多。 2.方便回归测试。可执行更多、更繁琐测试。 3.提高测试人员的积极性,测试人员把时间和 精力放在软件中新的项目上。

3、 4.提高测试的准确性,从而使软件测试的可信 度提高。测试的主观因素和误操作少了。 5.测试具有一致性和可重复性。 自动化测试带来的优点 6.测试的复用性。(这与软件开发里的代码复用 性意思相同,测试用例是以脚本一种代码的 形式存在) 7.可执行一些手工测试困难或不可能进行的测试。 例如:并发行测试等 软件测试自动化存在的不足 u既然软件测试自动化这么多优点,是不是我们的测试 活动的目标就是追求100%的自动化测试呢? u软件自动化测试的缺点: 需要一定的时间去编写、调试和维护脚本。 需要测试人员的水平要高。 不能实现某些需要人脑去判断结果的测试用例。(例如, 界面是否人性化的测试) 工具本身

4、没有想象力完全依赖测试设计,因此,自动化测 试对测试设计依赖太大。 手工测试发现的错误比自动化测试要多的多。 自动化测试和手工测试的关系 n由于自动化测试的缺陷,在实践的测试活动中, 尤其是黑盒测试中,它只是手工测试的一个有 益的补充。 n但是,目前测试界和一些测试自动化工具商过 分夸大了自动化测试的优点,使很多的软件测 试学员对自动化测试产生了误解,下面我们看 下对自动化测试存在的5个误区: 自动化测试的认识误区1/5 n错误期望一:自动化测试应完全取代人工测试。 测试过程中80%以上的缺陷是手工测试发现的, 仅有不到20%的缺陷是自动测试发现的,而且这 20%的发现要求测试人员合理的运用工

5、具。 在测试前,分析下软件的需求,确定哪些功能、 性能等因素需要用到自动化测试,然后有针对性 的在项目中使用自动化。 一味的追求测试自动化,会使测试工作的成本增 加。(例如:手工测试1分钟可以完成,自动化测试 得好几个小时才可以) 自动化测试的认识误区2/5 n错误期望二:测试用例可完全由测试工具生成 白盒测试中,利用某些测试工具可以自动生成部 分测试用例,(例如逻辑覆盖测试),但是由于 测试工具无法自动了解程序的功能,仍然需要测 试人员手工干预测试用例的设计和生成。 黑盒测试中,几乎所有测试用例都需要手工去设 定。例如:网站并发性测试,需要测试员分析需 求,找到被测的业务流程,编写脚本,设定

6、预期 结果等等。 自动化测试的认识误区3/5 n错误期望三:测试工具可以在任何场合使用。 n工具都是针对解决某些特定的问题而开发的, 所以必然有其局限性。而且测试工具自身同 时也是软件,因此也会存在软件兼容性等不 可避免的软件通病。例如: 某些测试工具只能在windows上运行; 某些白盒测试工具只是针对某几种语言; 某些网络测试工具只是针对某几种网络等等。 自动化测试的认识误区4/5 n错误期望四:自动化后测试效率立刻提高(如: 测试工作马上减轻,进度缩短)。 企业引入自动化测试需要做大量的前期准备工作, 包括技术上的,资金上的,人员上的准备等等。 如果不做好准备盲目引进自动化测试,可能会后

7、 期测试带来一些意想不到的麻烦。 由于在测试过程中增加了新的元素,必然增加了 测试过程的复杂度。因此在使用工具的初期通常 会使工作量、消耗时间等各项成本较手动测试增 加25%-50%,而不是象多数人想象的那样可以很 快降低成本。 自动化测试的认识误区5/5 n错误期望五:自动化测试顺利引入后就一劳永 逸了。 n自动化测试能否达到应有的效果还取决于实施 过程中的多方面因素。 自动化测试不会创造性地发现测试方案里没有的设 计缺陷。因此,需要有经验的测试人员对测试方案 进行系统、周密的设计和不断修改。 自动化测试代码需要使用配置工具来管理和维护。 此外,还应该对自动化测试工作流程的规范性进行 考查,

8、从而对自动化测试的实施进行监督和评估。 实战中,如何运用自动化测试和手工测试1/2 n在软件测试活动中,通常需要把自动化测试和手 工测试结合起来,对被测软件进行测试。 n在现实中,根据被测软件的需求,判定哪些需要 自动化测试,哪些不需要。要充分发挥自动化测 试和手工测试的优势,既能尽可能多的发现软件 的缺陷,又能节省软件测试的时间和人力。 n那么哪些部分需要自动化测试呢?值得我们去用 自动化测试呢?这里引入一个名词“投资回报 率”。 实战中,如何运用自动化测试和手工测试2/2 n投资回报率是指节省的时间成本、人员成本 以及其它成本与投入测试工具的费用之比。 投资回报率越高,引入的自动化技术越成

9、功。 例如: 1.用户登录功能(只进行2次测试)。 2.某功能,10分钟点击150次。 n从投资回报率上看,1不必用自动化测试,2 建议使用自动化测试。 软件测试自动化工具使用的前提 软件测试需求变动不频繁。通常是对需求比 较稳定的模块使用自动化测试技术。 项目周期要足够长,要有足够的时间设计和 开发自动化测试。 自动化测试脚本可重复利用。 n我们一般什么时候使用自动化测试呢?一 般来说,投资回报率高的或者手工难以进行 的测试优先选择自动化测试工具。我列了几 种可以考虑使用自动化工具的情况: 白盒测试 大型软件的回归测试 某些需要频繁测试的功能或性能 准确度和精确度比较高的软件 某些需要长时间

10、运行的测试 手工很难完成的测试 自动化测试工具的选取需要考虑如下几个因素: 1、与被测软件是否兼容 2、经费是否允许 3、售后技术支持质量 4、自动化工具的资料是否容易获得 总之,不必选最贵的,只选最合适的 自动化测试的实施流程 自动化测试的原理和方法 n软件测试自动化实现的基础是可以通过设计的特 殊程序模拟测试人员对计算机的操作(黑盒测 试),或者类似于编译系统那样对计算机程序进 行检查(白盒测试)。 n软件测试自动化实现的原理和方法主要有:对代 码进行静态和动态分析、测试过程的捕获和回放、 测试脚本技术、虚拟用户技术和测试管理技术。 自动化测试的原理和方法 (1)代码分析(白盒测试的自动化

11、测试) n不管是静态白盒测试还是动态白盒测试,一般都 需要借助白盒代码分析工具去完成测试。 n代码分析工具类似于高级编译系统,一般针对不 同的高级语言去构造不同分析工具,在工具中有 类、对象、函数、变量等定义规则、语法规则。 在分析时,对代码进行扫描,找出代码的缺陷, 评价软件的质量。 自动化测试的原理和方法 (2)捕获和回放(黑盒测试的自动化测试) 捕获是将用户每一步操作都记录下来(包括被测 软件的窗口和控件的位置以及相对应的操作、状态 变化或是属性变化)。所有的记录转换为一种脚本 语言所描述的过程,以模拟用户的操作。 回放时,将脚本语言所描述的过程转换为屏幕 上的操作,然后将被测系统的输出

12、记录下来同预先 给定的标准结果比较,最后得出测试结果,有些自 动化测试软件可以根据测试结果对被测软件进行评 估。这可以大大减轻黑盒测试的工作量,尤其是在 回归测试中。 自动化测试的原理和方法 n关于自动化测试中的“录制回放”技术举例 目前的网站并发性测试几乎都是采用 “录制-回放” 的技术。 所谓的“录制-回放”技术,就是先由手工完成一遍 需要测试的流程,同时由计算机记录下这个流程期间客 户端和服务器端之间的通信信息,并形成特定的脚本程 序 (script) 。然后在系统的统一管理下同时生成多个虚 拟用户,并运行该脚本,监控硬件和软件平台的性能, 提供分析报告或相关资料。这样,通过几台机器就可

13、以 模拟出成百上千的用户对应用系统进行负载能力的测试。 自动化测试的原理和方法 (3)测试脚本技术 n测试脚本是与特定测试对应的一系列指令(及 数据),这些指令可以被测试工具自动执行。 脚本一种形式的程序。 n不同的工具,脚本程序的规则有所不同。将 loadrunner脚本用的类c语言,qtp用的vb script语言。 n脚本可以通过录制测试的操作产生,然后再做 修改,这样可以减少脚本编程的工作量。当然, 也可以直接按照脚本语言的规则编写脚本。 由于支持录制,所以学习脚本语言相对容易些 脚本技术分类 脚本技术可以分为以下几类: 1.线性脚本是录制手工执行的测试用例得 到的脚本。线性脚本很简单

14、,通过录制就可以 得到。 2.结构化脚本在线性脚本的基础上,加上 控制结构(顺序、循环和分支结构)。脚本 的逻辑判断能力以及处理问题的灵活性得到 增强,基本上实现脚本的模块化。 脚本技术分类 4.共享脚本是指某个脚本可被多个测试使 用,一个脚本可以被另一个脚本调用。减少 了脚本的数量,也使脚本容易维护。 5.数据驱动脚本将测试输入存储在独立的 数据文件中,实现了数据和脚本的分离。(例 如使用qtp,登录系统测试中,可以将用户 名和密码数据存储在外部的excel文件。) 6.关键字驱动脚本是数据驱动脚本的逻辑 扩展。通过外部的一系列关键字数据去驱动 测试的运行。 虚拟用户技术和测试管理技术 n虚

15、拟用户技术,是指在有限的测试主机上,虚 拟出成千上万或者更多个用户的技术。例如: 网站并发性测试,我们可以用性能测试工具 loadrunner虚拟多个用户。 n测试管理技术,通过测试管理工具(例如: testmanager)对整个测试流程进行管理,包 括需求分析、计划测试、设计测试用例、缺陷 处理、测试报告等内容。 软件自动化测试的运用 n测试用例的生成 n测试的执行与控制 n测试结果与标准输出的对比 n不吻合测试结果的分析处理 n测试状态的统计和报表的生成 n采用自动化比较技术(例如:检查点技术) 软件自动化测试工具 n测试工具主要分为测试管理工具、性能测试 工具、功能测试工具和白盒测试工具

16、。这些 工具主要是hp mercury、ibm rational等公 司的产品,以及相当数量的开源测试工具。 其中, hp mercury占有的市场份额是最大。 nmercury公司是国际上最大的测试工具开发商, 被hp公司收购后,我们就称其为hp mercury 公司。 测试管理工具 测试管理工具是对测试配置和测试过程进行 管理,对缺陷进行跟踪管理。 nquality center简称qc,其前身是大名鼎鼎 的testdirector,简称td(hp mercury公司) 主要功能:需求管理;计划测试;安排和执行测 试;缺陷管理;图形化和报表输出 ntestmanager(ibm ratio

17、nal) testdirector 功能测试工具 nwinrunner(hp mercury公司) 自动录制-检测-回放,侧重于测试c/s架构 nquicktest pro,简称qtp( hp mercury公司) 自动录制-检测-回放,侧重于测试b/s架构 n目前winrunner不再发布新版本,已经完全被 qtp给取代,在后续的课程中我们会学习使用 qtp。 nrobot (ibm rational公司) 功能和性能测试软件,可以去testmanager完美结合 robot winrunner qtp 性能测试工具 nloadrunner(hp mercury公司) 当前市场上最强大的性能

18、测试工具,在后 续的课程中,我们会学习loadrunner工具的 使用。 nrobot (ibm rational公司) loadrunner工作过程(了解) 通过vugen来设计脚本 通过control设计场景 通过负载发生器实现虚拟用户并发执行 通过control监控场景 通过分析器分析结果 loadrunner的虚拟用户发生器的虚拟用户发生器 白盒测试工具 nparasoft公司 jtest java 代码分析和动态类、组件测试 jcontract java 实时性能监控以及分析优化 c+ test c,c+ 代码分析和动态测试 codewizard c,c+ 代码静态分析 .test .net代码分析和动态测试工作 nibm rational工具集中的puricoverage和purify、 quantify ncompuware白盒测试工具集 jtest numega boundschecker rational purify 联机帮助是我们最好的朋友之一; 从录制生成的脚本中,或者其他可以

温馨提示

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

评论

0/150

提交评论