当前位置:文档之家› 软件工程毕业设计(论文)-基于QTP的自动化测试

软件工程毕业设计(论文)-基于QTP的自动化测试

软件工程毕业设计(论文)-基于QTP的自动化测试
软件工程毕业设计(论文)-基于QTP的自动化测试

大连民族学院本科毕业设计(论文)基于QTP的自动化测试

学院(系):计算机科学与工程学院

专业:软件工程

学生姓名:

学号:

指导教师:

评阅教师:

大连民族学院

摘要

目前在软件测试行业里,除了大家所熟悉的黑盒测试和白盒测试以外,还分为手工测试和自动化测试。自动化测试相对于手工测试有很多优点,它最主要的优点就是省时,省力,省财务开销。自动化测试工具中具有代表性的是QTP,QTP适用于软件测试中的smoke测试以及回归测试(regression test),QTP脚本具有相当高的可移植性和可重用性,“一本万利”,即一本QTP测试脚本经过简单修改后可以应用于多个测试软件以及测试环境。

本次毕业设计,以QTP为自动化测试工具,以“美图秀秀”软件为被测软件,通过QTP的描述性编程方法,实现该软件从安装到卸载的功能测试和界面检查测试,以及安装完成后的软件功能性测试和UI测试。最终产生可读性好,易于跟踪的QTP自动化报告,用来分析软件的缺陷。通过使用QTP对“美图秀秀”软件进行测试的实例,展示出了QTP自动化测试在软件测试行业中方便,快捷的优越性。

关键词:自动化测试;报告;描述性编程

Automated testing based on QTP

Abstract

In the software testing industry, with the exception that everyone is familiar distinguished with black box testing and white box testing, it also consist of manual testing and automated testing. The main advantage of automation is saving time, effort, the provincial financial cost. In automated testing software, QTP is outstanding. QTP used in smoking testing and regression testing (regression test ) in the software testing. QTP script with a very high portability and reusability, "a big profit," that is a QTP test script through simple modifications can be applied to various test software and test environment.

In this graduation design, using QTP for the automated testing tools and using "beauties Xiu Xiu" software for the software under test, through QTP descriptive programming, implementation of the software from installation to uninstall which include the functional testing and inspection interface testing, and the software functionality testing and UI testing after installation Upon completion. Eventually produce readable and easy to follow the QTP automated reporting, which used to analyze software defects. By using QTP on the "beauties Xiu Xiu" software test examples, demonstrating the convenient, fast superiority of QTP automated testing in the software testing industry.

Key Words:Automated testing;Report;Descriptive programming

目录

摘要..................................................................................................................................... I Abstract ..................................................................................................................................... II 1软件测试简介. (1)

1.1 软件测试简介 (1)

2 自动化测试简介 (2)

2.1 自动化测试的目的 (2)

2.3 自动化测试流程图 (3)

3 QTP自动化测试 (4)

3.1 QTP自动化测试简介 (4)

3.2 QTP的工作模式 (5)

3.4 QTP自动化测试流程 (7)

3.4.1 准备测试用例 (7)

3.4.2 配置QTP运行环境 (7)

3.4.3 录制或编写自动化测试脚本 (7)

3.4.4 检查修改脚本 (7)

3.4.5 运行调试测试脚本 (7)

3.3.6 运行维护脚本 (7)

3.4.7 QTP自动化测试流程图 (8)

3.5 QTP框架介绍 (9)

4 “美图秀秀”的自动化测试 (10)

4.1 测试规划 (10)

4.2 测试用例开发 (10)

4.2.1 安装测试用例 (10)

4.2.2 安装完毕自动启动软件测试用例 (11)

4.2.3 桌面坐标检查测试用例 (11)

4.2.4 开始菜单检查测试用例 (11)

4.2.5 启动软件测试用例 (11)

4.2.6 打开图片测试用例 (12)

4.2.7 场景编辑测试用例 (12)

4.2.8 场景编辑框检查测试用例 (12)

4.2.9 恢复原图测试用例 (12)

4.2.10 饰品编辑测试用例 (13)

4.2.11 美容编辑测试用例 (13)

4.2.12 卸载测试用例 (13)

4.3 QTP脚本开发 (14)

4.4 测试报告 (17)

4.5 环境搭配 (18)

4.6 软件需求 (18)

4.7 遇到的问题以及解决方案 (18)

4.7.1时间处理 (18)

4.7.2欲点击的button是一张图片 (19)

4.7.3 对象无法识别 (19)

4.7.4 报告中无法显示Pass率 (19)

4.7.5 运行时界面效果 (19)

4.7.6 场景恢复 (20)

4.7.7 QTP单击右键完成“Save Target As......”操作 .. (20)

4.7.8 QTP读取外部Excel数据 (21)

4.7.9 报告优化整理 (22)

结论 (24)

参考文献 (25)

致谢 (26)

1软件测试简介

1.1 软件测试简介

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

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

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

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

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

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

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

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

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

2 自动化测试简介

2.1 自动化测试的目的

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

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

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

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

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

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

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

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

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

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

数据处理方面的优点

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

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

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

2.3 自动化测试流程图

自动化测试有它自己的一个流程,下图为自动化测试流程图,如图2.1所示。

图2.1 自动化测试流程图

3 QTP自动化测试

3.1 QTP自动化测试简介

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

Quick Test Professional是为每一个重要软件应用和环境提供功能和回归测试自动化的最佳解决方案。

下图为QTP自动界面,如图3.1所示。

图3.1 QTP自动界面

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

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

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.4 QTP自动化测试流程

3.4.1 准备测试用例

软件测试,离不开测试用例,测试用例对于软件测试来说就如软件开发中的需求分析一样,开发中没有需求分析说明书就无法知道将要做的是什么,完成什么功能,测试用例对于软件测试的功能是一样的,没有测试用例就算有了测试软件也无法进行测试,而且测试用例要便于脚本的后期维护。

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

3.4.2 配置QTP运行环境

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

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

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

3.4.4 检查修改脚本

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

3.4.5 运行调试测试脚本

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

3.3.6 运行维护脚本

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

3.4.7 QTP自动化测试流程图

QTP自动化测试有它自己的测试流程图,下图为QTP自动化测试流程图,如图3.2所示:

图3.2 QTP自动化测试流程图

3.5 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 “美图秀秀”的自动化测试

4.1 测试规划

以“美图秀秀”为被测软件,QTP为测试工具,实现一个软件从安装,应用到卸载的整个过程的function testing 以及UI testing。

主要测试点有:

安装

快捷方式检查:

功能测试:

(1)启动软件

(2)选择图片

(3)编辑图片

(4)保存编辑后图片

(5)关闭软件

(6)IE检查

UI 测试:

(1)检查应该出现的字符串以及各种Button。

卸载

4.2 测试用例开发

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

本次毕业设计的测试用例根据测试规划而开发,测试用例涵盖了软件的安装检查;界面检查;功能性检查,如启动,编辑,关闭等;卸载检查等。

4.2.1 安装测试用例

Steps:

(1)DbClick XiuXiu_Soft.exe;

(2)Click "立即安装美图秀秀>" from "美图秀秀2.2.0 安装";

(3)Click "下一步(N)>" from "美图秀秀2.2.0 安装";

(4)Unselect "’安装百度搜霸' and click"下一步(N)>";

(5)Click "安装(I)";

(6)Unselect "设置美图秀秀上网主页为IE 首页";

(7)Click "完成(F)".

Expected Result:

Verify software can be installed successfully.

4.2.2 安装完毕自动启动软件测试用例

Steps:

(1)Flow above steps.

Expected Result:

Verify the "美图秀秀2.2.0" can automaticlly launched successfully.

Verify the "https://www.doczj.com/doc/d4554975.html,/success.html" webpage launched.

4.2.3 桌面坐标检查测试用例

Steps:

(1)Check shortcuts on desktop.

Expected Result:

Verify the shortcut “美图秀秀”displays on desktop.

Verify the shortcut “520上网主页”displays on desktop.

4.2.4 开始菜单检查测试用例

Steps:

(1)Start menu links.

Expected Result:

Verify "美图" folder is displayed.

Verify "美图秀秀" folder is displayed.

Verify "美图看看" folder is displayed.

Verify blew links are displayed:

"美图秀秀".

"卸载美图秀秀"

"美图看看"

“卸载美图看看"

4.2.5 启动软件测试用例

Steps:

(1)Lanuch "美图秀秀" from desktop/startmenu;

(2)Click "X" button.

Expected Result:

Verify the "美图秀秀2.2.0" can launched without any error.

Verify the "美图秀秀2.2.0" can exited without any error. 4.2.6 打开图片测试用例

Steps:

(1)Lanuch "美图秀秀" from desktop/startmenu;

(2)Click "打开一张图片" from dialog "美图秀秀";

(3)Click “Cancel” button.

Expected Result:

Verify the "打开一张图片" dialog can be opened.

Verify the dialog can be closed after click "退出" button.

4.2.7 场景编辑测试用例

Steps:

(1)Click “场景” from "美图秀秀";

(2)Click “取消” Button on “场景编辑框” dialog.

Expected Result:

Verify “场景编辑框” dialog can be opened.

Verify the dialog can be closed after click “取消” Button.

4.2.8 场景编辑框检查测试用例

Steps:

(1)Click “场景” from "美图秀秀".

Expected Result:

Verify "预览" button exists.

Verify "编辑" button exists.

Verify "保存" button exists.

Verify "复制到QQ" button exists.

Verify "修改闪图大小" button exists.

4.2.9 恢复原图测试用例

Steps:

(1)Click "原图" from "美图秀秀";

(2)Click “闪图” Button.

Expected Result:

Verify the "闪图编辑框" dialog is closed successfully.

4.2.10 饰品编辑测试用例

Steps:

(1)Click "饰品" on the "美图秀秀".

Expected Result:

Verify "非主流印" button exists.

Verify "装饰品" button exists.

Verify "可爱心" button exists.

Verify "会话气泡" button exists.

Verify "可爱动物" button exists.

Verify "卡通人物" button exists.

Verify "动态文字" button exists.

Verify "缤纷节日" button exists.

Verify "开心恶搞" button exists.

Verify "遮挡物" button exists.

Verify "淘宝" button exists.

Verify "其他饰品" button exists.

4.2.11 美容编辑测试用例

Steps:

(1)Click "首页" on "美图秀秀";

(2)Click "美容" button on "美图秀秀".

Expected Result:

Verify the "美图秀秀温馨提示" dialog should displays. 4.2.12 卸载测试用例

Steps:

(1). Select "卸载美图秀秀";

(2). Click "Yes" button from "美图秀秀2.2.0 卸载" dialog;

(3). Click "Yes" button from "美图秀秀2.2.0 卸载" dialog;

(4). Click "OK" button from "美图秀秀2.2.0 卸载" dialog;

Expected Result:

Verify the software can be uninstall successfully.

Verify

“https://www.doczj.com/doc/d4554975.html,/uninstall.html?ver=2.2.0.1000&from=Soft&hd=a2e118b4e2fc9 5f5c455d5c70e55f7b9“ webpage launchs.

下图为测试用例截图,如图4.1所示:

图4.1 测试用例截图

4.3 QTP脚本开发

测试脚本主要在专家视图中应用VB语言进行编写,最终可编辑成vbs脚本文件,所有的vbs脚本文件集合起来产生一个VBScript脚本。

以测试用例的检查点进行Action分割,即每一条测试用例对应一个Action,这样做的好处是一个Action的pass与failed直接对应一条测试用例的执行结果,如Install Action 的功能只是安装。Action之间相互独立,各个Action之间的耦合性尽量降低。

根据Action的分类,一个Action对应一个vbs脚本,在vbs脚本中以vb语言为基础,利用vb函数以及系统内部函数调用,以及对注册表、桌面路径、开始菜单路径检查和调用,完成软件的安装、快捷方式检查、功能测试、UI测试以及卸载等测试,通过ReporterManager产生测试报告返回测试Excel格式的结果。

应用QTP框架原理,实现Action与vbscript 相分离。便于脚本维护。

安装测试脚本主要是启动安装软件,然后判断被测软件安装程序是否能够正常启动下图为启动安装程序代码界面,如图4.2所示:

图4.2 启动安装程序代码界面

安装过程检查脚本主要检查安装过程中各个界面是否正常出现,界面上的文字和按钮显示是否正常。下图为安装过程检查代码界面,如图4.3所示:

图4.3 安装过程检查代码界面

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