1、单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,第,5,章 软件功能测试,5.1,软件功能测试需求,5.2,软件功能测试过程,5.3,功能测试自动化,5.4,功能测试自动化工具,UFT,5.5,功能测试自动化实做,1,2,功能测试:,功能测试(,Functional Testing,),也称之为行为测试(,Behavioral Testing,),是根据产品特性、操作描述和用户方案,测试一个产品的特性和可操作行为,以确定它们满足设计需求。功能测试是为了确保程序以期望的方式运行而按功能要求对软件进行的测试,通过对一个系统的所有的特性和功能都进行测试确保
2、符合需求和规范。,3,功能测试的目的和意义:,功能测试是为了发现以下几类错误:是否有不正确或遗漏了的功能?功能实现是否满足用户需求和设计的隐藏需求?能否正确的输入输出?功能的交互性如何?,5.1,软件功能测试需求,4,软件需求分析:,软件需求分析是一个项目的开端,也是项目实施最重要的关键点。据有关的机构分析结果表明,我们设计的软件产品存在不完整性、不正确性等问题,80,以上是需求分析错误所导致的,而且由于需求分析错误造成根本性的功能问题尤为突出。因此,一个项目的成功软件需求分析是关键的一步。,5,软件测试需求:,测试需求这个名词业界并没有权威的定义,多数的意见认为测试需求定义测试的范围(即主要
3、解决测什么、及测到什么程度的问题),这样说还是太过泛泛,换个说法,测试人员依据初期功能需求,评估需要测试的功能点都有什么,每个功能点需要什么类型的测试,每个功能点测试到什么程度算是通过,这样初步评估出了测试的规模、复杂程度和风险,同时可以初步预估出哪个环节需要研发同,时,提供测试接口。,5.1,软件功能测试需求,6,软件测试需求的特性:,(,1,)制定的测试需求项必须是可核实的。,(,2,)测试需求应指明满足需求的正常前置条件,同时也要指明不满足需求时的出错条件;,(,3,)测试需求不涉及具体的测试数据,测试数据设计是测试设计环节应解决的内容。,5.1,软件功能测试需求,7,软件测试需求分析的
4、流程:,5.1,软件功能测试需求,图,5-1,测试需求分析流程,8,软件功能测试过程:,5.2,软件功能测试过程,图,5-2,功能测试过程,9,功能测试前期准备:,测试软件之前,首先要搭建用来运行软件的环境,即测试环境。软件测试环境就是软件运行的平台,包括硬件、软件、网络、数据和测试工具五个方面。,搭建软件测试环境要注意尽量模拟用户的真实使用环境,测试环境中尽量不要安装其它与被测软件无关的软件,测试环境要尽量与开发环境独立,也就是说在被测环境中不应该有开发环境。,5.2,软件功能测试过程,10,功能测试计划制定:,计划工作的目标要从建立文档转移到建立过程,从编写测试计划转移到计划测试任务,重点
5、不是编写而是计划。其格式可由测试组自己来定义,但内容上应包括范围、时间和成本方面的内容,由于不确定的因素较多,通常时间和成本要略大于实际的估计值。功能测试计划基本包含的内容有:测试团队人员及分工。测试环境配置。测试内容。测试结束标志。,5.2,软件功能测试过程,11,测试设计与开发:,测试设计相当于测试的详细,说明,,包含以下三个方面的内容:,(1),测试设计说明,:,目的是组织和描述具体需要的测试,。,(2),测试用例说明,:,指为特定的目的而设计的一组测试输入、执行条件和预期的结果。,(3),测试规程说明:指为实现相关测试设计而操作软件系统和具体测试用例的全部步骤,并详细定义测试用例的每一
6、步操作。,5.2,软件功能测试过程,12,测试执行与缺陷跟踪:,在完成测试设计工作之后,所要进行的就是测试的执行过程。在测试执行中发现的与测试用例预期结果,不符,的即认定为软件缺陷。在工程实践中多采用缺陷跟踪系统来对缺陷进行跟踪和管理。,5.2,软件功能测试过程,13,自动化测试:,通过工具记录或编写脚本的方式模拟手工测试的过程,通过回放或运行脚本来执行测试用例,从而,代替人工对系统的功能进行验证,,这就是功能测试的自动化测试。,5.3,功能测试自动化,14,手工测试和自动化测试:,自动化测试效率高,精确度也高;但是人具有很强的逻辑判断能力,而工具相对机械、缺乏思维能力。所以都不可相互替代,必
7、须结合使用,。,自动化测试的核心工作是,自动化脚本的设计,。,5.3,功能测试自动化,15,手工测试和自动化测试的选择:,不是所有的测试项目都适合开展自动化测试。自动化测试只有在,多次运行,后,才能体现出自动化的优势,只有不断地运行自动化测试,才能有效预防缺陷,减轻测试人员的工作量。如果一个项目是短期的,并且是一次性的开发项目,则不适宜开展自动化测试。另外,也不适宜在一个进度非常紧迫的项目中开展自动化测试。,5.3,功能测试自动化,16,功能测试自动化工具简介:,自动化功能测试工具可基于,GUI,层面进行测试,也可以基于代码层面进行测试。只要实现了自动化执行测试用例,自动化地检查测试数据的测试
8、工具,可以替代人工进行测试步骤的执行,从而验证应用程序是否满足特定功能的测试工具,都可称为自动化功能测试工具。,5.3,功能测试自动化,17,功能测试自动化工具举例:,QTP/UFT,:全名,HP QuickTest Professional software,。,WinRunner,:,Mercury Interactive,公司的,WinRunner,是一种企业级的功能测试工具,用于检测应用程序是否能够达到预期的功能及正常运行。,另外还有:,Rational Robot,、,AdventNet Qengine,、,SilkTest,、,QA Run,、,Test Partner,、,UIA
9、utomation,和,Selenium,等。,5.3,功能测试自动化,18,UFT,简介:,HP,的,UFT,是功能测试自动化工具中的佼佼者,极容易上手和使用,测试流程和思路也很清晰,拥有先进的关键字驱动测试能力和强大的测试脚本开发能力,另外还可以和,HP,的一些其他自动化工具,比如,Loadrunner,、,QC/ALM,有机地结合起来使用,堪称完美。,5.4,功能测试自动化工具,UFT,19,UFT,简介,:(续,),UFT,以,VBScript,为内嵌语言,支持功能测试和回归测试自动化。,UFT,不仅支持测试人员通过专业的捕获技术直接从应用程序屏幕中捕获流程来构建测试用例,还支持测试人
10、员通过集成的脚本和调试环境访问内在测试对象的方法和属性。,UFT,包括创建测试、检验数据、增强测试、运行测试脚本、分析测试结果和维护测试等六个基本的功能,。,5.4,功能测试自动化工具,UFT,20,UFT,的安装:,UFT,支持在广泛的操作系统平台和测试环境下安装,并且只需通过有限的设置就可以开始使用。,HP,的,UFT,支持,30,天的试用,所以从,HP,的官方网站可以直接获取,UFT,的安装包,在获取到安装包后就可以运行安装包中的安装程序了,。,5.4,功能测试自动化工具,UFT,21,UFT,的插件管理:,在默认的情况下,,UFT,支持对标准的,Windows,应用程序、,Web,应用
11、程序和,ActiveX,控件等三种类型的应用程序进行自动化测试。在相关插件的支持下,,UFT,还可以进行,Java,应用程序、,Delphi,应用程序、,.NET,应用程序、,Oracle,应用程序等等共计,13,种类型应用程序的自动化测试。,5.4,功能测试自动化工具,UFT,22,UFT,的插件管理,:(续,),UFT,默认会安装一些插件,比如,ActiveX,、,VB,和,Web,插件,测试人员可以根据自己的测试项目中,应用程序所采用的开发语言和控件的类型来选择相应的插件进行安装。插件管理界面显示已安装的插件,选择插件是,为了能够成功识别对应插件的测试对象控件,,即,插件的选择和被测对象
12、控件有关,。,5.4,功能测试自动化工具,UFT,23,UFT,的插件管理,:(续,),演示。,5.4,功能测试自动化工具,UFT,24,UFT,的启动界面,:,安装好,UFT,之后,就可以通过选择菜单,“,开始,所有程序,HP Software,HP Unified Functional Testing,Unifide Functional Testing,”,或者双击桌面快捷方式来启动,UFT,了。,在选择好插件之后,就进入,UFT,主界面。,演示。,5.4,功能测试自动化工具,UFT,25,新建,/,打开测试:,新建测试项目成功或者打开已经存在的测试项目后都会进入测试的流程界面,。,在这
13、里以流程图的形式给出的测试的执行流程。,演示。,5.4,功能测试自动化工具,UFT,26,UFT,的帮助文档:,对于初学者来说,帮助文档是学习和使用,UFT,的最佳方法。可以通过单击菜单“帮助,HP Unified Functional Testing,帮助”或者在使用,UFT,的任意时刻利用快捷键,F1,来打开联机帮助。,演示。,5.4,功能测试自动化工具,UFT,27,UFT,的视图:,UFT,支持两种视图,一种是关键字视图,一种是专家视图。不同的开发人员可以选择使用不同类型的视图。,演示。,5.4,功能测试自动化工具,UFT,28,UFT,测试脚本的录制:,实现测试的自动化,就是要记录用
14、户的操作并播放记录的操作来确认成功回放。,UFT,有专门的录制工具,测试人员通过模拟用户的操作,类似于执行手工测试的测试步骤一样操作被测试应用程序的界面,利用,UFT,的对象识别、鼠标和键盘的监控机制就可以完成测试脚本的录制。,5.4,功能测试自动化工具,UFT,29,UFT,测试脚本的录制:(续),录制前准备工作:,第一,已经打开了,UFT,,根据应用程序选择相应的插件,脚本录制人员对,UFT,的操作界面十分熟悉;,第二,熟悉被测应用系统的工作流程,熟练掌握手工测试的步骤;,第三,关闭所有与被测试程序不相关的程序窗口。,5.4,功能测试自动化工具,UFT,30,UFT,测试脚本的录制:(续)
15、UFT,脚本录制过程:,1.,启动,UFT,,选择需要的插件,2.,新建测试,3,、录制和运行设置,4,、记录业务流程,演示。,5.4,功能测试自动化工具,UFT,31,UFT,录制模式的切换:,使用,UFT,进行脚本录制时,可以在录制过程中进行录制模式的切换。,UFT,有,4,种录制模式:,正常录制模式(默认),模拟录制模式,低级录制模式,洞察录制模式,5.4,功能测试自动化工具,UFT,32,UFT,录制模式的切换:,正常录制模式(默认),默认情况下直接单击录制按钮、直接使用快捷键,F6,或者从菜单中选择录制开启的均是正常录制模式。,由于正常录制模式有时候并不能保证识别程序中的所以对象,
16、因此需要其它录制模式进行辅助。,5.4,功能测试自动化工具,UFT,33,UFT,录制模式的切换:,模拟录制模式,模拟录制模式在录制时会记录所有键盘和鼠标的精确操作,对于一些采用正常录制模式不能捕捉的动作,可以使用模拟录制模式来弥补。,5.4,功能测试自动化工具,UFT,34,UFT,录制模式的切换:,低级录制模式,该录制模式用来记录,UFT,正常模式不能识别的环境或对象。它不止录制鼠标和键盘的所有操作,对对象的位置要求也非常严格。在录制回放时,对象坐标有任何一点改变就会失败。,5.4,功能测试自动化工具,UFT,35,UFT,录制模式的切换:,洞察录制模式,也叫图像识别模式,该模式在录制时基
17、于控件的显示而非控件的属性。对于,UFT,无法识别的对象或者远程计算机上非,Windows,的操作系统均可以使用该录制模式。,演示。,5.4,功能测试自动化工具,UFT,36,UFT,测试脚本的录制结果的保存:,测试录制完成后,需要将测试保存到适当的位置。在,UFT,主界面单击工具条上的,保存,按钮或者选择菜单“文件,保存,*,”即可完成测试的保存工作,测试的名字和保存路径是由新建测试时设定的。如果想改变测试的保存位置和测试的名字,则可以选择菜单“文件,将,*,另存为”打开另存为对话框,。,演示。,5.4,功能测试自动化工具,UFT,37,UFT,测试脚本的导入和导出:,为了节省计算机的空间,
18、UFT,还支持将测试脚本导出为压缩文件,这样更方便测试脚本的传递。,演示。,5.4,功能测试自动化工具,UFT,38,录制的,UFT,测试脚本的正确性验证:,测试脚本的回放:,掌握了,UFT,的录制原理后,就一定要掌握,UFT,回放的原理。,UFT,根据脚本中记录下来的对象操作的顺序进行回放,默认情况下直接单击运行按钮或直接使用快捷键,F5,就可以进行脚本的回放。,演示。,5.4,功能测试自动化工具,UFT,39,基于,GUI,的自动化测试主要是围绕着界面的控件元素来进行的,例如文本框、列表框、控制按钮等,软件用户通常也都是通过这些控件与程序交互。这些控件被管理成对象,在,UFT,中使用对象
19、库进行管理。在,UFT,中,编辑测试脚本的第一步就是识别测试对象。,UFT,针对不同语言开发的控件,采用不同的对象识别技术,根据加载的插件来选择相应的控件对象识别依据。,5.4,功能测试自动化工具,UFT,40,对象:,对象实现了数据和操作的结合,也就是使属性和方法封装于对象的统一体中。封装在对象中的方法,用于改变对象的状态。而具有相同或相似性质的对象的抽象就是类。因此对象的抽象是类,类的具体化就是对象,也可以说类的实例是对象。,5.4,功能测试自动化工具,UFT,41,测试对象和运行时对象:,UFT,中的对象有两个概念,一个是测试对象,一个是运行时对象。,测试对象,(Test Object,
20、TO),:是,UFT,定义的一些类,用它们代表应用的各种对象。,运行时对象,(Runtime Object,RO),:是实际的被测应用对象,是测试执行过程中,,TO,用来关联的对象。,5.4,功能测试自动化工具,UFT,42,UFT,对象识别:,UFT,识别对象,一般是要求先在对象库文件中定义测试对象,里面存有实际对象的特征属性的值。然后在运行的时候,,UFT,会根据脚本中对象的名字,在对象库中找到对应的测试对象,接着根据测试对象的特征属性描述,在被测试软件中搜索找到相匹配的运行时对象,最后就可以对运行时对象进行操作了。,5.4,功能测试自动化工具,UFT,43,UFT,的对象库:,在,UFT
21、中,使用对象存储库管理,UFT,中的测试对象。一个测试中记录的所有对象和对象的属性都被保存在对象库中。在,UFT,中,有两种对象库:共享对象库和本地对象库。默认情况下,测试对象被保存在本地对象库中。对象库是,UFT,自动化测试中最重要的一个资源。,5.4,功能测试自动化工具,UFT,44,打开对象存储库:,通过选择菜单“资源,对象存储库,”,可以打开对象存储库。,对象库窗口的左侧以树形的结构显示了本测试的测试对象,如果有检查点和输出对象也会在图中显示出来。当在左侧选择一个测试对象时,窗口的右侧将显示该对象的详细属性。,演示。,5.4,功能测试自动化工具,UFT,45,添加对象到对象存储库:,
22、1),通过,对象存储库窗口的,菜单“,对象,将对象添加到本地,”,;,(2),或者,直接单击对象存储库界面,工具栏上的“将对象添加到本地”,按钮,。,然后单击需要添加的对象即可,(,此时一定要保证需要添加的对象所在的程序界面处于可用状态,),。,演示。,5.4,功能测试自动化工具,UFT,46,从对象存储库中删除对象:,对象库中建议只保存本次测试所需要的对象,所以,应该将多余的对象删除。,首先在对象存储库左侧的树形结构中选择一个要删除的对象,然后单击,工具栏上的删除按钮,或者单击对象存储库界面菜单,“,编辑,删除,”,,也可以选择对象后鼠标右键选择,删除,,在确认对话框中单击,“,是,”,即
23、可完成一个对象的删除工作。,演示。,5.4,功能测试自动化工具,UFT,47,对象的定位与高亮显示:,当一个测试的对象存储库中存储了很多对象时,我们可能无法快速地找到应用程序中的对象在对象存储库中的位置,此时可以利用对象的定位功能。,反过来,如果我们想快速地知道对象存储库中的某个对象和应用程序中的哪个对象对应起来,此时可以利用对象的高亮显示功能。,演示。,5.4,功能测试自动化工具,UFT,48,编辑与修改对象属性:,当需要对对象的属性进行编辑和修改时,,首先,在对象存储库左侧的树形结构中选择一个对象,,然后,在对象存储库界面的右侧,根据需要修改其对应的属性值,。,其中,最常见的是给对象重命名
24、演示。,5.4,功能测试自动化工具,UFT,49,更新对象:,随着软件的更新,在应用程序中的一些对象的特性会发生变化,如果不对对象的属性进行及时更新,则会出现对象不能正确识别的现象,可以通过对对象进行更新来解决这个问题。,5.4,功能测试自动化工具,UFT,50,共享对象库:,本地对象库中存储的测试对象会关联一个指定的操作,其他的操作都不能使用这些对象。,共享对象库包含能够在多个操作中使用的测试对象。通过将共享对象库与操作关联,可使该库中的测试对象可用于操作中。,5.4,功能测试自动化工具,UFT,51,Active Screen,:,UFT,的关键字视图中显示的是录制到的每一个操作,那么
25、我们如何知道录制的步骤是否是我们需要的,或者是在很长的一段录制中,我想查看我录制的步骤当时的测试场景是怎样的,有什么办法可以查看么?,5.4,功能测试自动化工具,UFT,52,Active Screen,:,答案是使用,UFT,的,Active Screen,功能,该功能位于,UFT IDE,下方的,Active Screen,标签页,当你选择该标签页的时候,,UFT,右下方就会显示和关键字视图中选择的录制步骤相对应的屏幕截屏。通过浏览不同录制步骤的,Active Screen,,你就知道录制每一步时,当时系统的状态,可以帮助你删减不必要的步骤,或者纠正错误的步骤。,演示。,5.4,功能测试自
26、动化工具,UFT,53,Active Screen,:,基于,Active Screen,的截屏所对应的界面,可以在录制完成后参数化对象的值、插入检查点、输出值,即使是在应用程序未被启动和激活的情况下,。,这是因为,Active Screen,存储了测试界面相关的信息。可以调整,Active Screen,截屏时存储测试界面相关信息的粒度。,演示。,5.4,功能测试自动化工具,UFT,54,关键字驱动测试:,关键字驱动测试是,UFT,支持的一种开发自动化测试脚本的方法,这种脚本开发方法比较简单直观,测试人员比较容易掌握。,关键字驱动测试的方法比较适合那些没有编码基础的人,因为它几乎不需要了解任
27、何的编程语言,只需要熟练使用关键字视图的使用方法即可。,5.4,功能测试自动化工具,UFT,55,关键字:,关键字是由,UFT,的设计人员事先设计好的,用来描述测试过程和测试逻辑的语言因子。每个关键字对应功能的具体实现是通过调用并执行后台对应的脚本来完成的。在,UFT,中关键字主要有三类:被操作对象,(Item),、操作,(Operation),和值,(Value),。,5.4,功能测试自动化工具,UFT,56,步骤生成器:,步骤生成器可以帮助我们在关键字视图中快速轻松地添加一些步骤。利用步骤生成器可以在测试或组件中添加三种类型的步骤,分别是:测试对象方法和属性,实用程序对象方法和属性以及对库
28、函数、,VBScript,函数和内部脚本函数的调用。可根据实际情况进行选择。,5.4,功能测试自动化工具,UFT,57,关键字驱动测试举例:,演示。,5.4,功能测试自动化工具,UFT,58,使用,UFT,的专家视图:,专家视图也叫脚本视图,属于,UFT,中比较高级的功能选项。在该视图中,测试人员可以直接修改或添加测试脚本的代码,来增强测试脚本的功能。测试步骤在专家视图中显示为,VBScript,语句,专家视图中的每一行,VBScript,代表测试或组件中的一个步骤。专家视图显示的步骤及对象与关键字视图相同,只是格式不同。,5.4,功能测试自动化工具,UFT,59,利用步骤生成器,使用,UFT
29、的专家视图:,在专家视图中,将光标移动到紧跟新插入脚本的后一行脚本的最前面,打开步骤生成器,之后的操作和在关键字视图中插入新步骤的操作是一样的,最终就可以在专家视图中产生一行脚本。,演示。,5.4,功能测试自动化工具,UFT,60,利用完成单词,使用,UFT,的专家视图:,在专家视图中编辑测试脚本时,,UFT,编辑前具有自动补齐的功能,它有效地简化了我们编写代码过程中的拼写问题,我们不必再去死记硬背一些单词的拼写,也不会因为编写错误而苦恼,它使我们可以更方便地对测试进行编辑。,演示。,5.4,功能测试自动化工具,UFT,61,通过,拖动对象,使用,UFT,的专家视图:,将对象存储库里的对象拖
30、动到专家视图里即可快速生成代码。,UFT,的代码拖动功能使得脚本开发更方便快捷,但在实际应用中会发现,往往代码拖动自动生成的方法不是我们所需要的方法,我们还需要手工删除方法后再生成新的方法。,演示。,5.4,功能测试自动化工具,UFT,62,描述性编程:,可以利用描述性编程的方式,将对象的属性和属性值均存放在脚本中,通过,UFT,调用脚本中相应对象的属性及属性值来识别被测应用程序中的对象,而不必再依赖,UFT,的对象库。描述性编程通过在脚本中的特殊语法格式来完成对象的识别。描述性编程更加灵活。对于应用程序中不能捕获的对象可以使用描述性编程。,5.4,功能测试自动化工具,UFT,63,何时使用描
31、述性,编程:,(,1,)程序的对象是动态的;,(,2,)对象库变得非常大;,(,3,)更改对象库的对象,但对象只可读,如共享对象库;,(,4,)对很多类似的对象或者相同的对象进行操作。,5.4,功能测试自动化工具,UFT,64,直接描述性编程:,直接描述性编程是在测试语句中列出所描述对象的属性和值的集合,。,直接描述性编程是通过对象属性及属性值,(property:=value),来表示对象,而不是指定对象名,因此可以直接在语句中描述对象。,直接描述性编程的常规语法:,对象名,(“,属性名:,=,属性值,”).,操作 操作值。,5.4,功能测试自动化工具,UFT,65,如何获取对象的属性:,(
32、1),通过“对象标识”获取,(,工具,-,对象标识,),(2),通过“对象侦测器”获取,(,工具,-,对象侦测器,),用直接描述性编程驱动测试,演示。,5.4,功能测试自动化工具,UFT,66,直接描述性,编程,举例,:,Dialog,(Attached text,:=Login).WinEdit,(,Attached text,:=,Agent_ Name,:).Set“,mercuryDialog,(Attached text:=Login).,WinEdit,(Attached,text:=Pa_,ssword,:).Set“mercury,Dialog,(Attached text:=
33、Login).,WinButton,(Class Name,:=_,WinButton,text:=OK).Click,5.4,功能测试自动化工具,UFT,67,使用,With,提高脚本的层次性:,选择,Edit|Format|Apply”with”to Script,菜单命令,弹出,With Generation Results,对话框,单击,OK,按钮,With Dialog,(Attached text:=Login,),.,WinEdit(Attached text:=Agent_ Name:).,Set,mercury,.,WinEdit(Attached text:=,Passwo
34、rd,:).Set,mercury,.,WinButton(Class Name,:=WinButton,text:=OK).Click,5.4,功能测试自动化工具,UFT,68,Description,描述性编程:,通过声明描述性对象并给对象属性赋值的方法,将对象属性与执行语句分离开,这样更方便管理对象,也有利于后期对象的维护。,5.4,功能测试自动化工具,UFT,69,Description,描述性编程举例:,Dim objDialog,objName,objPwd,objButton,Set objDialog=Description.Create(),objDialog(“text”)
35、Value=“Login”,Set objName=Description.Create(),objName(“nativeclass”).Value=“Edit”,objName(“attached text”).Value=“Agent Name:”,Set objPwd=Description.Create(),objPwd(“nativeclass”).Value=“Edit”,objPwd(“attached text”).Value=“Password:”,Set objButton=Description.Create(),objButton(“nativeclass”).Va
36、lue=“Button”,objButton(“text”).Value=“OK”,5.4,功能测试自动化工具,UFT,70,Description,描述性编程举例:,With Dialog(objDialog),.Activate,.WinEdit(objName).Set“Cathrine”,.WinEdit(objPwd).Set“Mercury”,.WinButton(objButton).Click,End With,Set objDialog=Nothing,Set objName=Nothing,Set objPwd=Nothing,Set objButton=Nothing,5
37、4,功能测试自动化工具,UFT,71,检查点:,检查点是可以验证被测试的应用程序的功能是否达到预期的一种描述,是将指定属性的当前,值,和期望值进行比较,以判断当前程序的功能是否正常。当添加检查点时,,UFT,会在关键字视图中增加一行,,,同时在专家视图中增加一条检查点语句。当运行测试或组件时,,UFT,会将检查点的期望值和当前值做比较,如果结果不匹配,检查点就会失败。,5.4,功能测试自动化工具,UFT,72,检查点的理解:,一个检查点是一个特殊的步骤,它用来比较两个值然后将其结果报告出来。,预期结果是基于测试的需求的,实际结果是基于测试运行过程中发生的事件。,一个检查点是用来:校验一个对象
38、的状态,/,确认应用程序是按照预期的在运行。,5.4,功能测试自动化工具,UFT,73,检查点类型:,UFT,支持多种类型的检查点,通过单击菜单“设计,检查点”可以查看,UFT,支持的检查点的类型,,UFT,加载的插件不同,所对应的检查点的类型有少许区别。,演示。,5.4,功能测试自动化工具,UFT,74,标准检查点:,标准检查点用来检查应用程序或网页对象的属性值。标准检查点可以检查各种对象的状态,如按钮、单选按钮、组合框、列表框等。例如,可以检查在选择单选按钮之后它是否处于激活状态,或者检查可编辑字段的值。标准检查点在所有的加载项环境中都可以使用。,5.4,功能测试自动化工具,UFT,75,
39、添加标准检查点的方法:,在录制时:通过菜单“设计,”,“检查点”,“标准检查点”或者单击,UFT,工具条或录制工具条上的插入检查点按钮。,在录制后:,(,1,)右键单击步骤,选择“插入标准检查点”。,(,2,),在活动屏幕中右键选择需要检查的对象,点击,“插入标准检查点”。,5.4,功能测试自动化工具,UFT,76,添加标准检查点应用举例:,演示。,5.4,功能测试自动化工具,UFT,77,查看标准检查点对象:,演示。,5.4,功能测试自动化工具,UFT,78,使用正则表达式:,演示。,5.4,功能测试自动化工具,UFT,79,文本检查点:,文本检查点检查文本字符串是否显示在应用程序或网页的适
40、当位置。例如,假设应用程序或网页上要显示如下文字:“开往春天的列车”。可以创建一个文本检查点,检查词语“春天”是否显示在“开往”和“的列车”之间。,5.4,功能测试自动化工具,UFT,80,文本区域检查点:,只有在基于,Windows,的应用程序上录制测试或组件时才能添加文本区域检查点。,UFT,运行测试或组件时,它根据配置的设置检查已定义区域内是否有选定的文本。,5.4,功能测试自动化工具,UFT,81,位图检查点:,位图检查点检查位图格式的网页或应用程序区域,可以检查网页或应用程序的任何部分是否能按预期显示。例如,假设有一个网站,可以显示用户指定的城市的地图。该地图具有缩放功能。可以使用位
41、图检查点检查在单击放大地图的控制键后地图是否能正确地放大。,5.4,功能测试自动化工具,UFT,82,数据库检查点:,数据库检查点检查应用程序访问数据库内容的情况。例如,在添加了某条记录以后,可以使用数据库检查点来检查记录是否被正确地添加到了数据库指定的表中。数据库检查点在所有环境中都支持。,5.4,功能测试自动化工具,UFT,83,可访问性检查点:,可以添加可访问性检查点,以帮助快速标识网站中不符合“,W3C(World Wide Web Consortium)Web,内容可访问性规则”的区域。,5.4,功能测试自动化工具,UFT,84,XML,检查点:,XML,检查,XML,文件中的,XM
42、L,文档的数据内容,或检查,Page,和,Frame,中的,XML,文档的数据内容。,5.4,功能测试自动化工具,UFT,85,自定义检查点:,UFT,的自定义检查点是使用内部的,VBScript,语句来验证运行值和期望结果是否一致。,自定义检查点以条件语句对检查内容进行判定,并将结果输出到,Run Results,中。,5.4,功能测试自动化工具,UFT,86,VBScript,的条件,语句,:,在,VBScript,中,可以使用以下几种条件语句:,(1)If,语句,(2)IfThenElse,语句,(3)IfThenElseIf,语句,(4)Select Case,语句,5.4,功能测试自
43、动化工具,UFT,87,VBScript,的条件,语句,:,例如:,If value=0 ThenMsgBox value,ElseIf value=1Then MsgBox value,ElseIf value=2Then MsgBox value,Else MsgBox“,数值超出范围,”,End If,5.4,功能测试自动化工具,UFT,88,Reporter,对象,:,Reporter,对象的含义是往测试结果中发送信息。,常使用,该对象的,ReportEvent,方法,具体的语法格式为:,Reporter.ReportEvent Eventstatus,ReportStepName,D
44、etails,ImageFilePath,,其中,Eventstatus,表示报告的状态,包括,micPass(,成功,),、,micFail(,失败,),、,micDone(,完成,),和,micWarning(,警告,)4,种状态,这,4,种状态也可以分别用,0,、,1,、,2,和,3,来表示;,5.4,功能测试自动化工具,UFT,89,Reporter,对象,:(续),Reporter.ReportEvent Eventstatus,ReportStepName,Details,ImageFilePath,,,ReportStepName,代表在报告中报告步骤的具体名称;,Details
45、代表对报告的详细描述;最后一项,ImageFilePath,是可选项,主要是在报告中显示,BMP,、,PNG,、,JPEG,、,GIF,等格式的图片。,5.4,功能测试自动化工具,UFT,90,自定义检查点举例:,If Dialog(“Login”).WinButton(“Help”).Exist(5)Then,Reporter.ReportEvent micPass,“Custom Checkpoint”,“Help Button is Avilable.”,Else,Reporter.ReportEvent micFail,“Custom Checkpoint”,“Help Button
46、 is not Avilable.”,End If,5.4,功能测试自动化工具,UFT,91,自定义检查点实际应用举例:,用自定义检查点检查新建订单成功后,页面上的总价是否正确。,GetROProperty,(方法),CDbl,Cint,mid,(函数),演示。,5.4,功能测试自动化工具,UFT,92,同步点:,如果不希望,UFT,在应用程序中的对象在达到某种状态前执行某个步骤或检查点,则应该插入一个同步点,以指示,UFT,暂停测试或组件,直至对象属性达到指定值(或者直至超过指定的超时时间)。,5.4,功能测试自动化工具,UFT,93,同步点举例:,以,Flight,程序为例,当我们单击,I
47、nsert Order,后,需要等待进度条完成后才会生成订单号。如果设置了订单号的检查点,在运行时,如果,UFT,执行检查点语句脚本时过快,则,UFT,会报错找不到对象,或者检查点失败,此时就需要用到同步点对生成订单的进度条进行设置。,演示。,5.4,功能测试自动化工具,UFT,94,同步点和,wait,函数:,演示。,5.4,功能测试自动化工具,UFT,95,初识参数化:,通过参数化的方式,从外部数据源或数据产生器读取测试数据,从而扩大测试的覆盖面,提高测试的灵活性,。,在测试时,使用多种不同的测试数据,针对同样的操作或功能进行测试。,5.4,功能测试自动化工具,UFT,96,UFT,中参数
48、的类型:,在,UFT,中有四种类型的参数:,测试、操作或组件参数:,通过它可以使用从测试或组件中传递的值,或者来自测试中的其他操作的值,。,数据表参数,:,通过它可以创建使用您所提供的数据多次运行的数据驱动的测试(或操作)。在每次重复(或循环)中,,UFT,均使用数据表中不同的值,。,5.4,功能测试自动化工具,UFT,97,UFT,中参数的类型:(续),环境变量参数,:,通过它可以在运行会话期间使用来自其他来源的变量值,。,随机数字参数,:,通过它可以插入随机数字作为测试或组件的值,。,5.4,功能测试自动化工具,UFT,98,数据表参数化:,通过创建数据表参数来为参数提供可能的值列表。通过
49、数据表参数可以创建多次运行的数据驱动测试、组件或操作。在每次重复(或循环)中,,UFT,均使用数据表中不同的值。,UFT,中有两种数据表:全局数据表和操作数据表。,5.4,功能测试自动化工具,UFT,99,数据表参数化测试的步骤:,(,1,)把测试步骤中的数据进行参数化,例如:航班日期、航班始点和终点等信息。,(,2,)编辑数据表格,在表格中编辑多行测试数据,。,(,3,)设置迭代次数,选择数据行,运行测试脚本每次迭代从中选择一行数据,。,演示。,5.4,功能测试自动化工具,UFT,100,参数化检查点:,参数化检查点就是将检查点的预期值参数化。,演示。,5.4,功能测试自动化工具,UFT,1
50、01,随机数参数化:,插入随机数字作为测试或组件的值。例如,可以让,UFT,生成一个随机数字,然后将其插入,“,票数,”,编辑字段。,演示。,5.4,功能测试自动化工具,UFT,102,输出值:,对应用程序中的数据进行输出,比如:每次订票过程会动态生成订单号,将其输出,并在随后的查找订票功能中作为查找条件。,5.4,功能测试自动化工具,UFT,103,输出值类型:,标准输出值:输出对象的属性值。,文本,/,文本区域输出值:输出对象上显示的(部分)文本字符串或者选定区域中显示的文本。,表输出值:输出表格单元格的内容或者表格的属性。,数据库输出值:创建,SQL,语句从数据库中检索相应的记录并输出指






