RFT软件功能自动化测试入门.ppt
《RFT软件功能自动化测试入门.ppt》由会员分享,可在线阅读,更多相关《RFT软件功能自动化测试入门.ppt(40页珍藏版)》请在三一文库上搜索。
1、RFT软件功能自动化测试培训,广州卓业信息技术有限公司项目合作处,Zerozhang 2013-4-8,目 录,RFT概述,IBM Rational Functional Tester: (简称RFT)是Rational软件公司(现在Rational公司被IBM并购,是IBM 软件集团旗下之第五大软件品牌)创造的一款先进的、自动化的功能和回归测试工具; 操作平台(Eclipse): 与IBM Rational整个测试生命周期软件完美集成,实现了一个平台统一整个软件开发团队的能力;测试人员只要在开发人员工作的Eclipse环境中打开Functional Test透视图,就会马上拥有专业的自动化功
2、能测试工具所拥有的全部功能; Rational Functional Tester 的基础: 针对于Java、.NET的对象技术和基于 Web 应用程序的录制、回放功能; Rational Functional Tester 脚本语言和开发环境: 选择 Eclipse 框架中的 Java 或 Microsoft Visual Studio .NET 开发环境中的 Microsoft Visual Basic .NET。这意味着不论开发人员选择的是什么语言或平台,都应该能够将开发和自动测试整合在一起,并利用开发工具的一些特点; 基于Wizard的智能数据驱动的软件测试技术; 提高测试脚本重用的S
3、criptAssurance技术;目前为 IBM 的专有技术,通过对用户界面细节的识别阈值的定制,来实现了一种先进的查找最合理候选对象的匹配机制,使得脚本的维护工作不再囿于界面的频繁改动,变得更加轻松。 与其它生命周期管理软件的完美集成: IBM Rational的自动化功能测试工具基于Eclipse平台,提供了和需求管理工具(RequisitePro)、建模工具、代码级测试工具和变更及配置管理工具(ClearQuest和ClearCase)的完美集成,这使得系统测试人员能够和整个软件开发团队在同一个软件平台上,实现系统功能测试,完成测试脚本的配置管理和缺陷追踪。,自动化测试,自动化测试定义:
4、把以人为驱动的测试行为转化为机器执行的一种过程; 与手工测试相比,测试自动化的优势:首先自动化测试可以提高测试效率,使测试人员更加专注于新的测试模块的建立和开发,从而提高测试覆盖率;其次,自动化测试更便于测试资产的数字化管理,使得测试资产在整个测试生命周期内可以得到复用,这个特点在功能测试和回归测试中尤其具有意义;此外,测试流程自动化管理可以使机构的测试活动开展更加过程化,这很符合CMMI过程改进的思想; 实施自动化测试之前需要对软件开发过程进行分析,以观察其是否适合使用自动化测试,通常需要同时满足以下条件: 1) 软件需求变动不频繁。 ; 2) 项目周期足够长。 ; 3) 自动化测试脚本可重
5、复使用。 通常适合于软件测试自动化的场合: (1)回归测试,重复单一的数据录入或是击键等测试操作造成了不必要的时间浪费和人力浪费; (2)此外测试人员对程序的理解和对设计文档的验证通常也要借助于测试自动化工具; (3)采用自动化测试工具有利于测试报告文档的生成和版本的连贯性; (4)自动化工具能够确定测试用例的覆盖路径,确定测试用例集对程序逻辑流程和控制流程的覆盖;,自动化测试过程,自动化测试过程:与软件开发过程从本质上来讲是一样的,利用自动化测试工具(相当于软件开发工具),经过对测试需求的分析(软件过程中的需求分析),设计出自动化测试用例(软件过程中的需求规格),从而搭建自动化测试的框架(软
6、件过程中的概要设计),设计与编写自动化脚本(详细设计与编码),测试脚本的正确性,从而完成该套测试脚本(即主要功能为测试的应用软件) 1)自动化测试需求分析 测试需求说明书 2)测试计划确定自动化测试的范围以及相应的测试用例、测试数据,并形成详细的文档; 3)自动化测试框架的搭建确定自动化测试框架需要调用哪些文件、结构,调用的过程,以及文件结构如何划分; 4) 测试用例设计编写测试用例或开发测试脚本; 5) 测试调试测试(针对自动化测试脚本); 6)评估评估测试结果并改进测试过程;,自动化测试框架,自动化测试框架:由一个或多个自动化测试基础模块、自动化测试管理模块、自动化测试统计模块等组成的工具
7、集合。定义了在使用该套脚本时需要调用哪些文件、结构,调用的过程,以及文件结构如何划分等; 测试框架的典型要素: 公用的对象;不同的测试用例具有的一些可被重复使用的相同的对象; 公用的环境;独立封装可重复使用的测试环境; 公用的方法;经常重复使用独立编写的方法; 测试数据;多个测试数据放在一个独立的文件中由测试用例执行时读取到; 自动化测试框架的其他定义: 一套自动化测试管理系统被称之为测试框架; 一个自动化测试工具被冠以关键字驱动框架之名; 一段程序也被声称其实现了数据驱动的框架; 自动化测试框架犹如盲人摸象中的那头大象一样,有人说它是一个软件,只不过它的功能是测试另外一个软件,有人认为它是一
8、套流程和规范; 所谓“自动化测试框架”这个概念只是一个封装了很多东西的盒子,这个盒子的外观和形状对我们来说无关紧要,我们最更关心怎样构建一个高效务实的自动化测试解决方案。,STAF自动化测试框架,Software Test Automation Framework (STAF) : 一个开源的、跨平台、支持多语言的自动化测试框架,它是基于可重用的组件来构建的; 基于 RFT 和 STAF 进行的无需人工干预的跨平台自动化回归测试; 在拿到新版本的软件之后自动触发回归测试,自动记录执行结果 , 并且发送通知; 自动触发回归测试 定时检测服务器端的软件版本,一旦检测到服务器端已经上载完全的新版本的
9、软件,就可以调用 STAF 的信号量服务来触发自动回归测试; 自动发送测试结果 在执行完回归测试的自动脚本并且将结果记入数据库之后,在将结果传回 STAF 服务器的同时,还可以发送邮件将测试结果通知给相关人员;,STAF测试流程图,自动化测试流程图,RFT功能自动化测试本质,对象识别: 从开发的角度看, GUI 通常都是基于某一 GUI 开发库(SWT/SWING/AWT),这些库通常是按照面向对象的方式进行建模的,它将每一个 GUI 元素映射成该库中某一个类的对象; 从测试的角度看, 所有的 GUI 元素,无论基于何种 GUI 库,都被 RFT 映射成对象,RFT 提供一个对象模型框架管理各
10、种 GUI 元素; 验证点: 在RFT中,验证点是脚本(Script)中非常重要的组成部分,它完成对被测试程序生成的实际数据和期望数据的比较,并将比较结果写入日志。一般情况下,测试的结果是通过对验证点的执行而得到的; 静态验证点(Static Verification Point),RFT功能自动化测试本质,数据驱动:用一个数据文件把测试脚本驱动起来,来达到更接近用户化更智能的测试其目的是把测试人员从维护复杂的脚本程序中解放出来,只需维护好数据文件即可,减少了很多修改脚本的麻烦; 关键字驱动: 1)界面元素名与测试内部对象名的分离; 2)测试描述与具体实现细节的分离; 3)脚本与数据的分离;,
11、RFT对象识别,从开发的角度看, GUI 通常都是基于某一 GUI 开发库(SWT/SWING/AWT),这些库通常是按照面向对象的方式进行建模的,它将每一个 GUI 元素映射成该库中某一个类的对象; 从测试的角度看, 所有的 GUI 元素,无论基于何种 GUI 库,都被 RFT 映射成对象,RFT 提供一个对象模型框架管理各种 GUI 元素; RFT 对象识别:基于 RFT 的自动化测试,都会采用 IBM 推荐的 ITCL 框架。在这个框架下,所有的脚本被划分为三个层次:对象层,任务层,用例层。对象识别就是在 RFT 的对象模型框架下,得到被测程序的 GUI 对象。它是对象层开发中最核心的任
12、务。 常用的 RFT 的对象识别技术: 可以分为两大类:静态识别与动态识别。 动态和静态方法各有优缺点, 静态方法识别效率高、开发成本比较低,但是脚本的可维护性比较差; 而动态方法刚好相反; 常用的对象识别技术: 可以识别出大部分的 GUI 元素,但有时也会遇到 RFT 无法识别的 GUI 元素,事实上识别这类用常用对象识别技术无法识别的 GUI 元素占用了 RFT 脚本开发的大部分时间, 不同的对象识别技术: IWindow 接口用于识别 windows 标准控件; Invoke 方法用于识别应用程序定制的 GUI 控件;,RFT对象识别,使用 RFT 经常听到的一个谬论就是 RFT 只能测
13、试基于 java 的 GUI 程序,对于 C/C+ 或者 windows 标准控件,RFT 无法识别。事实上,RFT 提供了 IWindow 接口用于识别平台相关的控件; IWindow 接口介绍:IWindow 接口也继承自 IGraphical 接口,从这点看,IWindow 接口具有与 GuiTestObject 类似的功能。使用 IWindow 接口能够识别平台相关的 GUI 控件,但是其接口函数的具体实现与平台相关,windows 与 linux 上的实现就不一样; Invoke 方法介绍:在进行 GUI 自动化测试时,一个经常遇到的问题就是如何测试开发者定制的控件?通常一组定制的控
14、件,是作为一个整体被 RFT 识别出来,可以对这个整体作一些操作,但是如何识别出每一个具体的定制控件呢?可以使用 TestObject 类提供的方法:Invoke 函数。Invoke 方法类似于 java 中的反射机制,它可以在运行时而不是编译时调用函数。通俗地说,在 RFT 中,它可以根据字符串来调用相应的函数。这使得不仅可以调用某些确定的方法(如 GuiTestObject 的方法),还可以主动查询定制控件本身提供的方法,大大加强了对象识别能力。 AutoIt 介绍 :AutoIt 是一种在 windows 平台上,针对 C/C+ 以及 windows 标准控件的,免费、开源的自动化管理工
15、具。AutoIt 本身有一种非常简单的脚本语言,这种脚本语言类于 Basic,并且其脚本可以直接转化为可执行程序且不依赖于任何库。事实上,AutoIt 的这些功能,RFT 提供的 IWindow 接口也能够完成,但 AutoIt 具有更高的效率;,验证点,在RFT中,验证点是脚本(Script)中非常重要的组成部分,它完成对被测试程序生成的实际数据和期望数据的比较,并将比较结果写入日志。一般情况下,测试的结果是通过对验证点的执行而得到的; 静态验证点(Static Verification Point): 静态验证点是在录制(Record)RFT脚本的过程中通过向导插入的验证点,它在脚本回放(
16、Playback)的过程中自动被验证;以录制-回放(Record-Playback)模式使用RFT进行图形界面(GUI)的自动化回归测试(Regression Test),较常用的是静态验证点。 手动验证点(Manual Verification Point): 如果验证点所要验证的内容是由脚本开发人员在脚本中所提供的,则需要建立手动验证点对其进行验证。例如待验证数据来自外部数据源的情况,脚本开发人员需将数据读取后以参数的形式显式传给验证点;非图形化界面存在的大量的用户自定义类型对象,这些被测试对象并不能在录制过程中被插入对象映射表(ObjectMap)中,也就是不能使用静态验证点来进行验证,
17、这就需要我们使用手动验证点来比较它们。 动态验证点(Dynamic Verification Point): 动态验证点用来处理普通验证点的期望值随着输入参数不同而发生变化的情况,可以再在验证点中使用正则表达式或使用数据驱动的方法建立动态验证点。动态验证点是在脚本首次回放时建立的,验证点一旦建立,其行为就和静态验证点相同了。,验证点,动态实现验证点测试的基本思路:首先测试人员可以将被测试控件和预期结果分别配置在两个文件中。因为几乎每个被测试的控件通常都和某些特征标签文本相邻,我们只需要在文件中清楚地配置出这种相对位置关系即可。在运行的时候,主程序会读取这两个配置文件,并在测试对象树上面搜索被测
18、试控件。一旦搜索到该控件,则从该控件的属性集合中取出对应的属性值,和配置文件中的预期结果进行比对,最终得以判断该校验点是否通过;动态验证点用来处理普通验证点的期望值随着输入参数不同而发生变化的情况。 静态方法和动态方法对比:,JAVA语言基础,了解一些基本的java语言概念对较好的掌握RFT有很大的帮助。 面向对象的编程语言 利用类和对象将问题的数据和操作封装起来,并用标准接口与外界交互,使代表客观世界实体的各种类在程序中能独立和继承; 抽象 抽象是从众多的事物中抽取出共同的、本质性的特征,而舍弃其非本质的特征。抽象的角度取决于分析问题的目的;对编程者来讲,重要的是理解现实系统如何抽象转化为软
19、件系统;在编程阶段,通过抽象找出各种类,再对各种类之间的消息进行收集和处理,把问题分解为许多标准接口 的构件,当问题有变化时通过解除和更换现实软件的某些构件代码来适应变化。 封装 将抽象得到的数据和行为(或功能)相结合,形成一个有机的整体,也就是将数据与操作数据的源代码进行有机的结合,形成“类”,通过一个公用接口和消息与其他对象通信;通过封装使一部分成员(修饰符public等)充当类与外部的接口,而将其他的成员隐蔽起来,这样就达到了对成员访问权限的合理控制,使不同类之间的相互影响减少到最低限度,进而增强数据的安全性和简化程序的编写工作。程序封装的最小单位“类”; 继承 子类的派生过程称为类的继
20、承,继承是抽象分层管理的实现机制;继承允许一个新类包含另一个已有类的状态和行为; 多态 允许一个类中有多个同名方法,但方法的具体实现却不同的机制; 方法的重载(复杂的多态)/方法的覆盖(简单的多态),JAVA语言基础,类、对象与实例 类是对具有相同特性对象的封装组合,是java程序的基本单位;类是对象的抽象; 对象是类的实例;对象与实例是两个同义词; 类声明及修饰符 public/abstract/final extends/implements 成员变量及修饰符 成员变量定义了类的特性,修饰符说明使用该变量的权限和规则; public/protected/private/static/ 成员
21、方法及修饰符 成员方法定义了类的操作; public/protected/private/static/abstract/native/synchronized/final 返回类型及参数列表; 对象的主要属性 状态和行为是对象的主要属性; 对象的状态用变量表示,又称为对象的静态属性; 对象的 行为用方法表示,又称为对象的动态属性; 包 包是java语言对一组相关的类,接口和子包进行封装的机制;java利用包来管理类名空间,有利于类和接口的安全扩展和引用,包是有唯一命名的类的集合;,JAVA语言基础,接口: 为了实现多继承并简化其复杂性,其主要功能有, 不管类的层次,不同的类可以有相同的接口,
22、接口只声明方法,但并不实现任何方法; 一个类可实现许多接口,但只有同一个父类; 接口不仅是抽象类,其用途远胜于抽象类; 当用一个类去实现接口时,该类必须实现该接口的所有方法和它的父接口; 流程控制 分支语句;if/if-else/if-else if/switch-case语句; 循环语句;while/do-while/for循环语句; 跳转语句;break/continue/return语句; 嵌套及递归; 数组 存储一系列同类型数据元素的一种数据结构; 一维数组声明:type arrayName ;type arrayName; 创建一维数组语法:arrayName = new typea
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- RFT 软件 功能 自动化 测试 入门
链接地址:https://www.31doc.com/p-3483721.html