您好,欢迎访问三七文档
QTP自动化测试第一课自动化测试1.软件自动化测试软件自动化测试,是软件测试的发展方向,但是,如果盲目的追求自动化测试,则有可能导致软件测试的失败功能测试非功能性测试,如果项目周期紧张,最好采用人工测试(1)采用自动化测试的主要价值:1.软件根据需求新增模块,修改模块(敏捷开发思想:欢迎变化,拥抱变化),修改bug-软件产生新的开发版本(SVN)2.进行回归测试(自动化功能的最大价值在于回归测试),也可以针对性进行冒烟测试,注意:不单单测试新增或修改的模块,而且要测试与之相关联的其他模块只是一个回归或冒烟,这时候,自动化功能价值不高但是,如果多个版本都要进行回归,冒烟,会产生大量重复劳动(原有测试用例重复执行),将需要被反复执行的测试用例(操作步骤,数据基本没变化),转换成自动化脚本,然后执行脚本,收集结果。(为什么在你的XX项目中,将此模块进行自动化功能测试?为什么这些模块要用QTP?)假设原有登陆模块和其用例,在新的开发版本,在新的发行版本,新增了注册模块;需要在原测试用例文档的基础上,新增针对注册模块的功能和非功能测试用例。新增,新修改测试用例,首先进行手工执行(目的:人主要因素放置于主要测试模块,能快速准确的检查bug;检查新测试用例是否编写规范,是否能够再现),与注册模块相关联的登陆模块的用例,根据回归测试要求,也需要被重复执行,重复执行的次数越多,将其自动化价值越大。QTP基于对象仓库的编程+QTP描述性编程对象仓库(多种往对象仓库添加对象的方式,利用OOP思想操作对象)QTP应用在常见的功能模块:界面CS、页面BS:查询登陆增加删除:做项目时候,一定要总结:实现过程遇到的问题解决过程(2).其他价值:工具可以减少人为主观错误,测试人员可以关注于新模块的测试自动化测试发展到现在,很多厂商走的技术路线都是类似的首先,业务人员或测试人员按正常的业务执行流程(执行测试用例),同时自动化工具录制并生成脚本。(顺序结构)(记录对界面/页面元素对象的操作)然后,当录制好脚本后,可能要执行测试数据的参数化。(执行虚拟用户脚本的优化操作)最后自动化测试以功能测试是否正确作为结果来判断的,它需要定义正确的检查点。(运行得到结果报告)2.手工测试与自动化测试比较手工测试和自动化测试时很多测试人员争相讨论的两种测试方法。2.1手工测试的缺点—自动化测试的优1.重复性。软件测试的一个显著特点测试用例操作重复测试用例设计复用(本软件/不同软件)2.精确性。大数据,人工易错3.效率。软件产品的研发后期效率问题尤为明显。第一次回归测试,时间充分;后续回归,短时间完成测试2.2手工测试的优点。—自动化测试的缺点手工测试不可替代的地方至少包括:1.测试用例的设计。2.界面和用户体验测试。3.正确性的检查。3.如何开展自动化测试1.选择合适的被测软件不是所有软件,不是所有的模块都可以被自动化测试执行的自动化测试适合的软件,适合的模块,具有局限性1.新技术、软件、模块;测试工具支持程度有限2.生命周期较长,经常升级更新的软件3.软件界面变化相对不大(增加脚本的复用性)2.设计自动化功能测试框架1.首先应该有自己的库2.功能库3.业务组件4.控制器5.调用脚本自动化测试脚本文件夹:1.自动化虚拟用户脚本文件;2.拥有可供调用的公共函数文件3.需要有单独保存测试数据的文件4.用于组合测试数据和步骤的文件5.框架执行的入口文件3.自动化测试实际上是这种规模效应,覆盖率达到一定规模,他的效果才能体现出来,同时也是要不断积累和完善的虚拟用户脚本对测试用例的覆盖率越高,自动化价值越高自动化脚本用例执行不一定能连续(有些用例需要人参与进行测试环境的重置恢复)简单:每一个用例一个虚拟用户脚本(脚本顺序结构)复杂:多个用例一个虚拟用户脚本(脚本判断分支结构)简单和复杂比起手工执行,效率高但是[简单]的效率低于[复杂]的效率4.自动化测试方案自动化测试是一项需要计划和设计的活动,在开始测试脚本的开发之前,应该考虑清楚采用怎样的自动化测试方案。4.1采用什么样的自动化测试方案,需要考虑以下几个方面的因素:1、项目的影响:自动化测试是否对项目进度有积极影响2、复杂度。自动化是否容易实现3、时间需要的时间4、代码的稳定性程序代码变化必须在一定的范围内5、覆盖率覆盖关键功能增加删除查询登陆典型模块6、资源自动化人、硬件资源7、测试的执行4.2为了实行自动化测试方案,需要进行测试脚本的编写自动化测试的编码阶段主要是通过编写测试脚本实现所设计的自动化测试用例。编写测试脚本的方法有以下几种。1.2.1线性脚本顺序结构线性脚本的编写方法是使用简单的录制回放的方法。它有可能包含某些多余的函数脚本。非常低的开发成本测试数据在脚本中是硬编码固定的数据字符串脚本很脆弱没有公用的脚本1.2.2结构化脚本分支结构(逻辑更加灵活)循环结构结构化脚本的编写方法是在(原始线性式的)脚本中使用控制结构。典型的控制结构iffor等。需要测试人员具有编程技巧需要某种程度上的计划和设计相对稳定1.2.3共享脚本对常用过程进行封装sleep过程共享脚本编写方法是把某些公共的、普遍的测试脚本独立出来,在其他脚本之间实行共享。需要测试人员具有编程技巧需要更高程度上的计划和设计相对稳定1.2.4数据驱动脚本数据驱动脚本编写方法是把数据从脚本中分离出来,存储在外部的文件中。在测试时,针对不同的用例只需要进行数据的修改,而不需要修改脚本代码。需要测试人员具有编程技巧需要更高程度上的计划和设计相对稳定维护成本较低1.2.5关键字驱动脚本关键字驱动脚本的编写方法是把测试数据和操作顺序都在外部文件中设计好。除了常规的脚本外,还需要额外的库来翻译数据。综合了以上各种脚本编写方法需要测试人员具有编程技巧需要更高程度上的计划和设计维护成本较低5.自动化测试应用过程中存在的问题5.1自动化测试工具的问题厂商的脚本语言。(支持标准语言的测试工具)对新平台,个性化控件支持不好。大部分测试工具没能很好的支持新的平台和很多的第三方控件。5.2对自动化测试过程的管理测试用例的选择。脚本的命名规范、注释规范。对公用数据的维护。测试时,涉及或操作的数据,在不同测试人员中都需要使用,需要制定数据维护规范。(数据库程序文件备份)(不要操作其他测试人员涉及的数据,不要操作软件已有的未验证的数据,定义好自己数据的标识符号)5.3测试过程中人的因素注意时间管理。选择合适的测试脚本编写方法,正确的评估时间要求。跟开发人员沟通(有些控件在设计的时候,没有考虑到可测性,由开发人员取消控件,或换一个效果相同,可识别的控件)软件源代码管理。(程序员对代码进行修改,及时通知测试方,修改脚本数据,特别是涉及到界面元素的删除修改)6自动化测试工具测试工具种类很多,有用于管理的,有帮助实现测试自动化的,有开源的,有免费的。一般分为:测试管理工具自动化功能测试工具自动化性能测试工具单元测试工具白盒测试工具测试用例设计工具。当使用软件测试自动化工具的时候需要考虑什么问题1.工具要有对对象很好的识别和维护的能力2.脚本要易于修改和维护,不仅仅是脚本的语言,更主要的是要提供脚本图形化的编辑。3.数据驱动脚本,要求数据参数化易于操作。4.检查点,支持多种检查点,如对象、文本、位图。5.工具生成的测试报告,报告的图形化也是很有必要的,而且要易于浏览。6.自动化测试工具原理测试工具的优势在于可以部分的代替人工的测试。自动化测试工具把测试用例用自动的方式执行,例如自动的产生数据,自动的打开应用程序,自动的查找控件,自动的输入数据,自动的操作控件,自动的收集测试结果等。自动化功能测试工具可以进行基于GUI界面的测试,也可以进行代码层面的测试。6.1基于代码层面的功能自动化测试工具基于代码层面的功能自动化测试工具主要是单元测试工具。JUnit,Nunit,MSTest等。单元测试框架负责查找和调用被测试的类和方法(JUnit@Test),通过代码的反射机制可以访问被测试代码中的方法和属性。类getClass()6.2基于GUI对象识别的测试工具目前,大部分自动化测试工具,尤其是商业的测试工具,都是基于桌面GUI对象识别技术来设计的。例如QTP。Windows的API中封装了很多用于自动化测试工具开发的函数截图:识别桌面对象,识别后进行截图保存QTP工作原理:QTP:识别桌面对象(靠录制/手工添加等方式),识别后将对象的描述信息属性保存到对象仓库中,利用OOP思想+VBS脚本使用对象仓库中的对象,形成虚拟用户脚本,模拟手工执行测试用例Spy++:识别对象,获得对象的部分属性信息第二课QTP的简介1.QTP的简介QTP自动化功能测试工具1.1QTP帮助文档随QTP安装文件有不少的帮助文件,都位于help目录中1.2QTP自带的sample程序路径:Sampleapplications\Flight\MercuryToursWebSite2.启动QTPAdd-in插件performance性能效率启动进入插件选择界面1.QTP默认支持ActiveX,VisualBasic,Web插件,QTP还支持很多别的插件,其他插件需要付费,不能破解2.当测试的程序,是windows单机桌面程序,或程序的开发语言使用的是Windows平台下的面向对象语言。选择ActiveX插件当应用程序界面用VB编写的时候,选择VisualBasic插件当测试的软件是WEB页面或应用程序,选择Web插件从性能和对象识别的可靠性考虑,建议只加载需要的插件(不同插件的选择,使用QTP基本相同)3.QTP工作原理:识别桌面对象(靠录制/手工添加等方式),识别后将对象的描述信息属性保存到对象仓库中,利用OOP思想+VBS脚本使用对象仓库中的对象,形成虚拟用户脚本,模拟手工执行测试用例选择ActiveX:QTP在录制时能够很好地,准确地识别Windows应用程序中的元素选择Web:QTP录制能够很好准确的识别页面中的HTML元素选择Web:QTP在录制时能够很好地,准确地识别页面中的HTML元素代码编辑之前,一定要先点击查看对象仓库查看:对象仓库中是否存在添加或修改某个步骤所涉及的对象如果对象仓库中没有此对象,在专家视图编写代码过程中A.在编辑时,QTP不会提供输入提示信息(代码补全)B.在运行时,提示对象在对象仓库中不存在识别对象时,根据对象类型,读取参数值(QTPSpy++)同时,还能将识别的对象保存在对象仓库中QTP,提供如下的几种方式,将识别的对象保存起来1.通过录制的形式,将识别到的对象保存在对象仓库中(操作容易效率高顺序代码)2.手工操作对象仓库中的添加图标,将对象添加到仓库中(容易触及问题的核心实质,虽然比较麻烦。往往是在进行新步骤添加时运用:处理异常情况,使得当前脚本能够覆盖非法用例数据)4.利用对象仓库关联和导出功能,进行对象的添加5.利用ActiveScreen添加对象到对象仓库3.点击OK进入QTP左边:测试流程(TestFlow),包括录制的各个用例脚本中:测试脚本关键字视图(KeywordView),专家视图(ExpertView)同一份脚本代码,2种不同的阅读视角;关键字视图以图标形式呈现代码,专家视图以源代码呈现脚本。实际操作中,2个视图要做到相互补充下:DateTable数据表格测试输入输出界面路径:Automation\RecordWindows应用程序的录制和运行界面建议选择如下:“RecordandRunSettings”标题:此窗口下设置的内容,不单单用于录制,而且用于回放和运行。虚拟用户=脚本+设置1.RecordandruntestonanyopenWindows-basedapplication录制所有在操作系统桌面中出现的程序(desktop桌面)2.Recordandrunonlyon:录制指定程序,尽量避免录制过程中,录制一些无关的操作,避免冗余代码。a)ApplicationsopenedbyQuic
本文标题:QTP自动化测试
链接地址:https://www.777doc.com/doc-12162 .html