当前位置:文档之家› QTP毕业设计论文

QTP毕业设计论文

QTP毕业设计论文
QTP毕业设计论文

青岛科技大学

本科毕业设计(论文)

题目 __QTP在软件测试项目中的应用___

指导教师__________________________

辅导教师__________________________

学生姓名__________________________

学生学号__________________________

院(部)____________________________专业________________班_______________________________

______年 ___月 ___日

摘要

QuickTest Professional就是以当前软件测试自动化、快速化的需求为背景,实现高效率测试的一款企业级自动化测试工具。它提供符合所有主要应用软件环境的功能测试和回归测试的自动化。采用关键字驱动的理念以简化测试用例的创建和维护。让用户可以直接录制屏幕上的操作流程,自动生成功能测试或者回归测试用例。专业的测试者也可以通过提供的内置脚本和调试环境来取得对测试和对象属性的完全控制。

QTP支持的脚本语言是VBScript,相比SilkTest采用C语言,这对于测试人员来说更加便于开发和维护。VBScript毕竟是一种松散的、非严格的、普及面很广的语言,目前在国外测试领域得到广泛应用,在国内也达到了很高的应用水准。许多大型软件的开发测试项目都由QTP来完成。QTP现在已经被惠普收购,正式名字为HP QuickTest Professional software。

关键词:QTP;自动化测试;录制;对象;VBScript

Abstract

QuickTest Professional isan enterprise automation testing tools in order to realize high efficiency test in the context of current software testing automation, rapid demand.It providesthe automation of function testing and Regression testing which conform toall the major software environment.It uses the idea of Advanced Keyword-Driven Testing to simplify the test https://www.doczj.com/doc/ce12788260.html,ers could record the operating processimplementedby QTP directly,automatically generated function testing or regression testing cases. Professional tester can also get complete control of object properties by using built-in scripting and debugging environment provided by QTP.QTP supports VBScript as its scripting language, it is more convenient for testers to development and maintenance comparison to SilkTest which using C language.After all, VB is not a strict language whichpopular inprogrammers, it has been widely applied in many fields among foreign countries. It also

1.软件测试简介

1.1软件测试简介

一般人认为,软件测试没什么技术可言,只要懂得使用鼠标就足够了,这是对软件测试的一种误解。

学习过软件工程的同学几乎普遍都对软件测试存在一种歧视,扩大一点范围可以说几乎所有学过代码开发的人都对软件测试这个行业存在偏见。当然,这种现象大多数只发生在国内。在国外,软件测试已经是一个兴旺发达的行业。

一般而言,软件测试从项目确立时就开始了,前后要经过以下一些主要环节:

需求分析→测试计划→测试设计→测试环境搭建→测试执行→测试记录→缺陷管理→软件评估→RTM.

在真正的项目中,编写测试用例人员首先通过被测软件和开发人员提供的一些文档,编写出效率最高的测试用例,测试人员从客户那里得到被测软件,按照测试用例检查被测软件,最后将测试结果反馈给开发人员。

测试人员还有一个最重要的任务就是跟踪bug,一个bug的生命周期分为New,Open,Fixed和Closed 四种基本状态,另外还存在一种Reopen的状态,测试人员要从New状态一直跟踪到Closed状态。

在进行有关问题阐述前,先明确下分工,一般而言,需求分析、测试用例编写、测试环境搭建、测试执行等属于测试开发人员工作范畴,而测试执行以及缺陷提交等属于普通测试人员的工作范畴,测试负责人负责整个测试各个环节的跟踪、实施、管理等。

基于不同的立场,存在着两种完全不同的测试目的。从用户的角度出发,普遍希望通过软件测试暴露软件中隐藏的错误和缺陷,以考虑是否可以接受该产品。而从软件开发者的角度出发,则希望测试成为表明软件产品中不存在错误的过程,验证该软件已正确地实现了用户的要求,确立人们对软件质量的信心。因此,他们会选择那些导致程序失效概率小的测试用例,回避那些易于暴露程序错误的测试用例。同时,也不会着意去检测、排除程序中可能包含的副作用。

测试的目标是想以最少的时间和人力找出软件中潜在的各种错误和缺陷。如果成功地实施了测试,就能够发现软件中的错误。测试的附带收获是,它能够证明软件的功能和性能与需求说明相符。此外,实施测试收集到的测试结果数据为可靠性分析提供了依据。

2.自动化测试简介

2.1自动化测试目的

开发一个软件要在最短的时间内开发出需求分析中的软件产品,以最快的速度能先于其它竞争对手占领软件市场,从而获取最大的利益,现在的软件开发已经将测试融入其中,所以测试的速度也是至关重要的。

传统的软件测试是靠人的手动来进行测试,也是现在各个软件测试公司的主流方法,称之为Manual test。测试部门每天都要计算在某个项目上charge多少个人。这样的测试耗费时间,耗费人力,耗费成本。自动化测试的目的就是尽可能的减少在测试上的人力和财力的开销,以最便捷省时省事的方法,完成同样的任务。

测试自动化是使软件测试人员跟上开发人员脚步的惟一方式。

自动化测试相对于手工测试的优点

优化测试速度:可非常快速的运行上万条记录。

提高准确性、稳定性:可以不为外界因素干扰,准确运行测试用例。

确定性:能真实快速搭建测试环境,测试数据,重现缺陷。

提高工作效率:一边运行自动化测试,一边准备测试报告。

测试环境搭建:可以结合多种编程语言及技术协助搭建测试环境,防止手工测试重复劳动,如批处理技术。

提高技能:可提高测试人员技能,同时提高对测试的兴趣,防止对手工测试感觉枯燥。

测试数据:自动化测试工具可以根据需要,准备大量的测试数据。

数据处理:测试结果有时需要再进行相应的数据处理。

用例准备:可以使用相关脚本技术准备大量的测试用例。

2.2自动化测试原则

1.为避免脚本的重复研发及不必要的时间浪费,选择进行自动化测试的模块是相对成熟稳定的。

2.自动化测试要完全模拟现实中的手动测试流程。

3.严格遵守业务重要性优先的原则。

4.脚本尽量简练、易懂、避免冗余代码的存在

5.脚本研发尽量采用函数封装调用的方式,避免线性研发模式。

2.3自动化测试优势

1、对程序的回归测试更方便。这可能是自动化测试最主要的任务,特别是在程序修改比较频繁时,效果是非常明显的。由于回归测试的动作和用例是完全设计好的,测试期望的结果也是完全可以预料的,将回归测试自动运行,可以极大提高测试效率,缩短回归测试时间。

2、可以运行更多更繁琐的测试。许多测试是机械式的重复测试,这类测试简单但是却十分繁琐,需要消耗大量人力而自动化测试可以指派少数人监督测试,大量人员投入到编写测试用例与算法当中。

3、可以执行一些手工测试困难或不可能进行的测试。比如,对于大量用户的测试,不可能同时让足够多的测试人员同时进行测试,但是却可以通过自动化测试模拟同时有许多用户,达到测试的目的。

4、更好地利用资源。将繁琐的任务自动化,可以提高准确性和测试人员的积极性,将测试技术人员解脱出来投入更多精力设计更好的测试用例。有些测试不适合于自动测试,仅适合于手工测试,将可自动测试的测试自动化后,可以让测试人员专注于手工测试部分,提高手工测试的效率。

5、测试具有一致性和可重复性。由于测试是自动执行的,每次测试的结果和执行的内容的一致性是可以得到保障的,从而达到测试的可重复的效果。

6、测试的复用性。由于自动测试通常采用脚本技术,这样就有可能只需要做少量的甚至不做修改,实现在不同的测试过程中使用相同的用例。

3.QTP自动化测试

3.1QTP自动化测试简介

QTP,全称为Quick Test Professional,是Mercury研发的一种自动化测试工具,现在属于HP公司,是一款先进的自动化测试解决方案,用于创建功能和回归测试。它自动捕获、验证和重放用户的交互行为。

QuickTest Professional是新一代自动化测试解决方案,采用了关键词驱动(Keyword-Driven)测试的理念,能完全简化测试的创建和维护工作。QuickTest Professional关键词驱动方式独有之处在于,测试自动化专家可以通过一个整合的脚本和纠错环境,拥有对基础测试脚本和对象属性的完全访问权限,这些脚本和纠错环境与关键词视图(Keyword View)可以互为同步。

QuickTest Professional同时满足了技术型和非技术型用户的需求,让各个公司有能力部署更高质量的应用,同时部署的速度更快,费用更低,风险也更小。

QuickTest Professional启动时会先让用户选择要加载的插件,一般来说,窗体程序需要加载ActiveX 和Visual Basic控件,而Web控件是针对基于网页的控件设计的对应插件。本次测试的是软件一个Windows下的标准EXE,因此不需要加载Web控件。另外需要说明的是,加载的插件数目越多,软件能够识别的对象就越多,但是这并非总是好处。

有时多个对象重叠在同一区域,它们各自有着不同的属性,我们需要的往往只是一个简单的控件,将插件勾选太多,软件优先捕捉高级对象,导致无法加载简单的对象。另外,勾选的插件越多,系统需要花费的开销就越大,反而降低运行效率。因此,要最大限度地提高性能和对象标识的可靠性,应当仅加载需要的插件。

在QTP的插件管理器窗口,下方的提示能够给初学者很大的帮助。

图QTP软件启动窗口,用户先选择需要加载的控件

图 QTP软件的欢迎界面

3.2 QTP的工作模式

QTP分为两种工作模式:

第一种为关键字视图模式(Keyword View),普通的录制和回放有关键字视图就足够了,关键字视图中有录制过程中每一个点击事件以及输入事件,测试人员可以在关键字视图下通过修改DataTable来设置检查点。

第二种为专家视图(Expert View),它有两个作用:

(1)专家视图中包含了整个录制过程中QTP所产生的每一个事件相对应的脚本,QTP高级测试人员可以通过修改这些脚本代码来控制QTP回放时的所有事件;

(2)高级QTP测试人员可以在无需录制的情况下,通过自己在专家视图中编写脚本代码,来实现录

的优点有:

①减少QTP脚本的大小,便于在邮件和服务器上发送;

②增加了脚本的可移植性,可扩展性,可维护性。

QTP脚本使用VB语言编写,很少的代码量可完成很强大的功能,通过描述性编程,脚本开发人员可以随意控制QTP测试脚本,在自己需要的地方增加检查点,在脚本出问题的时候便于维护;由于没有对象,在脚本移植上变得方便容易,也使脚本的扩展变得容易。

对于QTP而言,其核心代码是Visual Basic Script,因此,如果用户熟悉vbScript,就可以自己添加和更新专家视图中的语句,并通过编程方式增强测试脚本。

初学者都会知道QTP是用来录制回放的,当然,录制完就会有对象存在在对象库中,这个对象对已经录制的实体有一个唯一的标识。但是当你遇到以下情况时,就无法再应用对象和对象库了:

(1)在某些页面上动态产生的对象;

(2)当要求脚本必须比较小的时候。

那么此时就要应用描述性编程了,这部分工作只能在专家视图中进行。

以下是一个例子:

Browser("xxxx").Page("yyyy").Click

将以上的代码修改为描述性编程:

假如现在只是打开的yyyy主页

Window("Text:=yyyy").Close

简而言之,描述性编程就是将原来的对象用该对象应该具有的属性和对应的属性值来代替(即property:=value),来唯一标识这个对象,这样,即使删除对象库中对应的对象脚本仍然可以运行。

当在一个测试中多次使用描述性编程的时候,如以下示例:

Window("Text:=aaa").WinButton("Caption:=bbb").Click

Window("Text:=aaa").WinButton("Caption:=ccc").Click

Window("Text:=aaa").WinButton("Caption:=ddd").Click

为了方便起见,我们可以将Window("aaa")赋值给一个值

Set E = Window("Text:=aaa")

E.WinButton("Caption:=bbb").Click

E.WinButton("Caption:=ccc").Click

E.WinButton("Caption:=ddd").Click

如果还想在简化代码,可以使用VBScript里的with语句来实现

With Window("Text:=aaa")

.WinButton("Caption:=bbb").Click

.WinButton("Caption:=ccc").Click

.WinButton("Caption:=ddd").Click

描述性编程的“后续强迫性”。

呢?就是说如果在测试对象层次结构的某一点开始就是用了描述性编程,则该测试对象层次结构下的后续测试对象都要使用描述性编程的方式来描述。

由于应用描述性编程要应用VBscript语言,所以在这里要简单的介绍一下VBscript:

Visual Basic,简称VB,是Microsoft公司推出的一种Windows应用程序开发工具。是当今世界上使用最广泛的编程语言之一,它也被公认为是编程效率最高的一种编程方法。无论是开发功能强大、性能可靠的商务软件,还是编写能处理实际问题的实用小程序,VB都是最快速、最简便的方法。

3.3 QTP框架简介

Java中有MVC框架,struts框架等等,在QTP中,同样有它自己的框架结构。

QTP框架基本分为三层,脚本层(业务组件开发),业务层(流程的开发和组织),数据层,层次之间相互分离是本框架组织总的方针,为开展功能自动化测试提供一个高效、稳定、容易的测试实现。

实现QTP自动化测试框架实际上要由以下几个部分组成:

(1)一组录制好的qtp脚本(QTP的Action);

(2)一个可以组织用例的Excel文档;

(3)一个VBScripts脚本。

首先,在QTP里建立多个Action,这些Action于测试用例中的步骤一一对应,Action里的语句只有调用vbScript文件和调用该vbScript文件内函数的语句即可。

其次,把固定的字符串以及按钮参数化,这些参数将被保存在QTP的Datatable中,供vbScript 调用。

再次,为实现真正意义上的自动化测试,我们需要一个VBScripts脚本,它的作用是通过执行这个VBScripts脚本来驱动QTP程序启动,然后自动运行我们所需要执行的qtp脚本。

完成以上内容,一个基本的自动化测试架构就组合完成了。当然,以上的内容只是一个简单的说明,在这其中,实际上是需要我们进行脚本的调整和运用一些编程技术才能实现这个框架,例如,我们如何让QTP脚本来读取Excel中的用例值?如何通过vbscripts脚本来启动QTP程序?等等。

而对于以上的框架实际上还有调整的余地,我们很多时候听到的框架优化,原则上就是要把这个框架更细化,例如,测试用例中需要有附件的配置、需要有公共函数的使用、测试执行后要有结果存储的路径等等一系列内容,这样,这个框架才能够被共享和复用,而不是每次测试都要重新考虑用例设计或者重新生成用例集,而这些是慢慢将这个框架进行丰满所要做的工作。

4. QTP自动化测试流程

4.1准备测试用例

软件测试,离不开测试用例,测试用例对于软件测试来说就如软件开发中的需求分析一样,开发中没有需求分析说明书就无法知道将要做的是什么,完成什么功能,测试用例对于软件测试的功能是一样

测试用例开发的标准是符合自动化测试要求,检查点覆盖尽可能全面,测试步骤尽可能通顺简洁,方便测试人员进行测试。本次毕业设计由于是个人项目,无法按照公司的流程进行开发,因此在测试用例开发的流程上欠缺合理性。

4.2配置QTP运行环境

QTP支持不同的开发环境,在录制(编写脚本)之前,需要根据被测试的环境,选择合适的插件,并进行加载。在安装QTP时,会提示输入许可序列号,如果没有买到HP授权的正版序列号,QTP只能有14天的试用期。

4.3录制或编写自动化测试脚本

不论是录制还是测试员自己编写自动化测试脚本,都必须按照测试用例的步骤来进行,开发中开发人员按照需求分析文档来一个个的实现需求分析中的功能模块,同样的道理,测试人员要根据测试用例完成每一步测试用例相对应的自动化脚本的开发。

4.4检查修改脚本

录制或编写完自动化测试脚本以后,不要急于运行测试脚本,要先好好检查脚本的完整性,语法错误以及逻辑性。删除冗余的脚本代码,以最少的代码来实现同样的功能。

4.5运行调试测试脚本

检查过脚本代码后,运行该测试脚本,不是所有的脚本都能按照预期的期望正常运并能产生正确的报告的。这就要求脚本开发人员在脚本出问题的时候对脚本进行调试,直到脚本正常运行。

4.6运行维护脚本

脚本调试后可以正常运行,随着代码量的增加,这个时候就需要不断的对脚本进行后期维护,以确保脚本的质量和性能。

4.7 QTP自动化测试流程图

5.具体软件的自动化测试

5.1测试平台简介

5.1.1HiCon交通信号控制系统(软件)

“HiCon交通信号控制系统”是青岛海信网络科技股份有限公司斥巨资开发的ITS 行业交通控制领域高端产品,该产品应用国际领先技术,结合国内混合交通特征及国外城市交通特点研发,主要为国内外城市交通提供实时控制的软件及与软件兼容的信号机。系统概述“HiCon交通信号控制系统”是路口信号机、通信服务器到区域控制服务器、中央控制服务器的整套解决方案。

HiCon交通信号控制系统软件能够从信号机获得实时交通信息及设备状态信息,并采用先进的预测技术对交通流量、时间占有率进行预测,利用优化模型对交通信号配时参数进行实时优化,实现各种协调控制。

系统软件还能够提供用户进行各种远程控制功能,包括警卫路线控制、动态绿波控制、干预线控等。系统软件能够为用户提供GIS平台上的各种方便快捷的操作,如在地图上漫游、缩小、放大等,用户可查看路口的信号配时、设备状态信息,能动态编辑路口渠化图。系统软件提供强大的查询统计功能,用户可查阅任意时间段的交通流量、速度、时间占有率等数据。系统还提供辅助决策支持功能,并能动态模拟路口交通流的运行状况,对当前配时方案控制效果进行评价。

5.1.2 海信网络科技问题跟踪系统

“海信网络科技问题跟踪系统”是针对人工测试或自动化测试中记录下来的问题进行统一保存,并分配给相关开发人员,以便及时对问题进行修复。然而手动录制需要填写大量信息,于是可以利用QTP 自动化的特点进行录制。由于该系统是基于网页的,需要勾选QTP的“Web插件”加载项,本测试可以看做对QTP软件的补充使用。

5.2测试规划

以“HiCon交通信号控制系统(软件)”为被测试软件,由于功能繁多且大量重复,因此对6个具有代表性的模块进行测试;以“海信网络科技问题跟踪系统”为被测系统,期望利用QTP进行错误的智能分析分类,快速上传到数据库中。

主要测试点有:

(1)故障配置测试

(2)路口手动授权测试

(3)选项测试

(4)手动紧急车辆优先控制测试

(5)快速路与路网外部协调

(6)密码维护测试

(7)错误录制自动化

5.3 测试用例开发

正常的测试是由专门写测试用例的人员将测试用例写好后,放到QC上,测试人员再从QC上导下来进行测试,在本次毕业设计中,由于是独立完成毕业设计,所以测试用例也是自己编写的,测试用例写的原则就是尽可能的覆盖QTP的全面功能。

5.3.1 密码维护测试

测试该模块是为了阐述自动化测试的全面性,需要的是将可能出现的情况全部测试到

5.3.2故障配置测试

测试该模块的目的是测试按钮与数组的使用,测试界面如下:

5.3.3 选项测试

该模块需要输入的信息较多,可能出现的情况很多,因此测试的目的是为了熟练应用QTP的数据池。程序详见附录。测试界面如下:

5.3.4路口手动授权配置测试

该模块信息众多,测试目的为使用数组存放大量的中间数据。另外,由于路口数量是动态的,每一

str_Link_DBSource="Provider=MSDAORA.1;Persist Security Info=False;User ID=utc_sys;Password=sys;Data Source=hicon"

Set Con = CreateObject("ADODB.Connection")

Con.Openstr_Link_DBSource

If Con.State = 0 Then '判断数据库连接是否成功

Reporter.ReportEventmicFail, "testing","连接数据库失败"

else

Reporter.ReportEventmicPass, "testing","连接数据库成功"

End If

If Con.State<>0 then

Set Rs =CreateObject("ADODB.Recordset") '创建结果对象集

strsql ="Select t.cintsname as namecount from intersection t " 'SQL查询窗口的查询语句Rs.CursorLocation=3 '使用定位游标

Rs.Openstrsql ,Con,3,1 '执行SQL查询

num = Rs.RecordCount '数据库查询路口数量

num=Cint(num)

end if

Rs.close

Set Rs=nothing

Con.Close

Set Con=nothing " '销毁数据库连接对象

5.3.5快速路与路网外部协调

该模块测试时,某些控件不能被识别,可以使用键盘辅助选择。

在某些场合下,使用键盘命令往往比一般的描述性编程更为简便,但它的可读性与维护性较差,因此在特殊的情况下才使用。

调用命令为:

Set obj = CreateObject("wscript.Shell")

Wscript.shell是WshShell对象的程序标识符,创建Wscript.shell对象可以运行程序、操作注册表、创建快捷方式、访问系统文件夹、管理环境变量。

图需要键盘命令来选择的文本框

我们选择“协调方案”、“相位差”和“起始时刻”来依次读取它们的值。

首先,通过录制的方式来尝试实现,以下是录制结果。

Window("HiCon交通信号控制系统-客户端").Dialog("快速路与外部路网协调").WinList("ListBox").WinEdit("Edit").SetCaretPos 0

可以发现,通过录制仅仅生成了一行代码,说明对“相位差”和“起始时刻”的操作并没有被录制。

Set obj = CreateObject("wscript.Shell")

obj.SendKeys ("{TAB}")

For I=1 to 3

obj.SendKeys ("{DOWN}")

Next

message0=Window("HiCon交通信号控制系统-客户端").Dialog("快速路与外部路网协调").WinList("ListBox").WinEdit("Edit").GetROProperty("text")

obj.SendKeys ("{DOWN}")

message1=Window("HiCon交通信号控制系统-客户端").Dialog("快速路与外部路网协调").WinList("ListBox").WinEdit("Edit").GetROProperty("text")

obj.SendKeys ("{DOWN}")

message2=Window("HiCon交通信号控制系统-客户端").Dialog("快速路与外部路网协调").WinList("ListBox").WinEdit("Edit").GetROProperty("text")

窗口初始化时,默认选择处于“确定”按钮上,可以选择连续使用三次“DOWN”命令,使其处于“测试路口52”上,也可以选择使用一次“TAB”命令和两次“DOWN”命令。理论上,通过“TAB”和“DOWN”命令的组合,能达到选择任意控件的效果。

5.3.6手动紧急车辆优先控制测试

相关主题
文本预览
相关文档 最新文档