基于QTP的高速公路收费软件自动测试框架及应用

2018-02-25 02:39甘彧菲
电子技术与软件工程 2018年7期

甘彧菲

摘要 在高速公路收费软件设计中,一个良好的框架不仅可对自动化测试流程进行规范,同时可显著降低软件测试风险,提高测试效率,保证软件的设计质量。文章首先对自动测试框架进行了概述,然后基于QTP设计的公路收费软件自动化测试框架进行分析讨论,显著降低了冗余测试代码,提升了测试代码的可用性、生产率和可维护性,降低了测试成本,可供参考。

【关键词】QTP高速公路 自动测试框架 测试逻辑层

在高速公路的建设过程中,引入公路收费系统自动化测试技术不仅可降低产品的开发时间,提升产品的测试效率,而且可降低测试成本,达到用户对高速公路收费系统的使用需求。因此,设计出一个可以达到公路收费要求的软件自动框架意义重大。

1 自动测试框架简介

当前,高速公路收费软件自动测试框架主要包括下述几个方面的框架内容:

1.1 基于数据驱动的框架

数据驱动框架比较适合用来对检测流程不会出现变化,只是数据出现变化的测试对象。具体的测试结果主要由外部提供。

1.2 关键词驱动框架

关键词驱动框架在进行测试时会提供一些关键词,还可将自动化测试工具和被测试系统抽象化,各种类型的系统均可使用其提供的关键字。

1.3 混合型框架

数据驱动型框架和关键字驱动型框架是该种自动测试框架的优势所在,除了通用的关键字外,也可提供有关系统业务逻辑的关键字。

由此可见,以上3种自动测试框架各有利弊,在实际应用中,软件系统都较为复杂,所以仅仅靠关键字驱动型框架或数据驱动框架均不能达到软件的测试要求,对此,混合性框架比较实用。

2 自动测试框架的需求量

近几年,公司高速公路收费软件的版本升级速度越来越快,测试周期越来越短,一定程度上满足了市场和客户的需求。大部分的测试用例常常由手工测试人员在一定的工作周期内完成,然而这无疑是一项难以实现的任务。随着现代企业对软件测试要求的不断提高,传统的手工测试已经慢慢被自动化测试技术所代替,由于自动化测试技术刚刚开启,目前在企业的运行中还存在很多问题。自动化测试技术为了进一步满足现代企业的需求,不同类型的自动化测试工具便应运而生。这些工具可使得软件测试较为“轻松”地完成,但其务必是要建立在认真修正的测试脚本之上。虽然自动化测试能够满足大部分企业对软件测试的要求,但因其脚本维修工作需要巨大的投资成本,一定程度上给企业增加了投资压力。正因如此,好多企业还是倾向于选择手动测试方式,可幫助企业进一步改善“高投入、低产出”的问题。在测试过程中,组织可进一步拆解细化不同的测试组件,这也是采用自动测试化框架的关键优势所在,此外,自动测试框架还可实现对测试过程中相关活动的有效组织和管理,使在自动化测试中遇到的问题得到更好更快的解决。

3 基于QTP的收费软件自动测试框架

3.1 自动测试框架的基本架构

基于QTP的高速公路收费软件自动测试框架设计图如图1所示。

3.1.1 测试数据层介绍

测试数据层主要包括对数据库进行测试、对用例库进行测试。

(1)用例库主要有函数库、业务组件库、对象库构成,测试用例由上述几个测试步骤共同组合完成,一般会和手工测试过程中的多个业务流程和单个业务流程相对应。诸如相关的调用业务组件和公共函数、读取测试数据、生成日志文件、设置检查点等都可通过测试用例来实现。对象库会将被测应用程序录制的所用对象记录保存下来,这也是其主要的任务所在。业务组件本质上是一种测试脚本,具有很强的重用性,业务组件有利于测试脚本开发效率的提高,同时还可使得测试脚本的维护成本有所降低。常规函数和扩展函数是函数库的两大成分,与被测应用程度是否有交互是两者之间的关键区别。

(2)测试数据在自动化测试中占据着重要的地位,诸如输入数据、输出数据、检查点数据等均属于测试数据的成分,根据相关的数据管理规范,需要对所有测试数据进行规范性的处理,不允许任何一个数据被某个QTP脚本私有。

3.1.2 测试逻辑层

测试逻辑层主要由批量执行列表和批量执行驱动器组成。

(1)所有的测试用例均属于批量执行列表。测试用例的属性可进行相关的设置,以便判断该测试用例的可行性,同时也有利于对整个运行系统的管理。

(2)自动化测试框架的核心部件是批量执行驱动器,控制测试用例的执行和生成测试报告是批量执行驱动器的两大目标。被测应用程序如有异常状况出现,驱动器会将运行程序和相关服务强行关闭。

3.1.3 测试展示层

测试展示层主要是指测试报告。批量执行驱动器一方面可记录整个测试所用的时间,另一方面还可记录执行成功和执行失败的测试用例个数,最终测试结果可通过测试报告进行查询。该自动化框架所具备的特点如下:

(1)批量执行测试脚本,相关测试报告集合生成;

(2)降低测试脚本的维护成本,实现模块化的测试脚本管理模式,提高测试脚本的维护效率;

(3)实现对控件对象和测试数据的统一管理,测试数据和控件对象都要建立在测试脚本之上:

(4)自动化框架的实施,不会导致额外工作量的增加。

3.2 测试数据层

3.2.1 测试数据框架

测试数据的管理是通过SQLSERVER使用数据库进行测试,所有项目的检测数据都会保存在数据库中。为了方便后期可以更好地应用数据,所有得到的测试数据都会在数据库中进行备份保存。在执行过程中,初始化函数会发挥一定的作用,即其可把对应的测试数据加载到runtime Data Table中去。runtime DataTable会在测试用例执行完成后被清空掉,下一个测试结果紧接着会被自动加载。数据库中的一个表为一组测试数据,每个表都会有独立的名称和序号,这是基于测试脚本的ID来完成。每个表的每一行测试数据为一次循环。为了使QTP读取数据能正常进行,表格内的测试数据不能重复出现。

3.2.2 对象库介绍

在自动测试框架中,自动测试框架对象库适用于每一个业务组件和测试用例。对象库会将被测应用程序的所有对象记录保存下來,使QTP脚本正常运行。

3.2.3 自动化测试函数库

在自动化测试框架中,函数库的函数类型主要包括常规函数和扩展函数两种。两种函数和被测应用的的交互性有所不同,其中被测应用程序控件和扩展函数时交互的。例如,对直接操作控制信息、空间请求信息、控件返回信息等进行接收。和QTP函数相比,被测应用和扩展函数之间有着密切的联系。已经广泛应用到了测试脚本中,不仅可以对控件进行更好的控制,而且可以对运行中出现的错误进行纠正。可减弱自动化测试脚本对QTP依赖性的中间层主要由扩展函数提供,中间层主要位于QTP和应用程序之间。

3.3 测试逻辑层

在自动化测试过程中,如何执行自动化测试是任务的核心点。在执行多个QTP脚本时,可实现:

(1)自动生成测试报告;

(2)无需任何监控,进行批量执行;

(3)测试数据可独立保存;

(4)后面测试脚本不受前面出问题测试脚本的影响。在整个过程中,需要将执行脚本运行的基本状态改为TRUE,并利用运行驱动器直接完成后期任务。

3.4 测试展示层

一般情况下,测试人员需花费大量时间从QTP自带的测试报告中提炼所需的信息,这主要是由QTP检测报告的属性所决定的。基于此,很多测试人员都很排斥在自动测试框架中选用该种测试报告。测试报告生成功能在自动化测试框架中已得到较为广泛的应用,测试报告的自动生成往往只需调用该功能键即可实现,操作极其简便。在执行测试用例时,会通过Excel文件对测试过程中出现的错误信息、日记信息、测试的步骤、测试的结果进行整合,测试人员在进行测试时,通过对测试脚本链接进行点击后能够获取测试的具体步骤、测试的具体结果等,非常的便利,检测人员可以根据测试结果对测试执行失败的原因进一步进行分析。

3.5 QC和QTC的连接自动测试

通过框架提供结构,测试人员提供QTP工作目录和QC登录信息的工作目录。进而保证可将多个QTP测试脚本自动上传到Qc,整个测试过程不需要进行监控。

4 结束语

综上所述,经实践证明,以QTP为基础构建的收费软件自动测试框架具有测试周期短、测试质量高等优点,能够有效提升收费软件自动测试代码的可维护性和可重复性,值得推广应用。

参考文献

[1]黄文高.QTP自动化测试与框架模型设计[M].北京:机械工业出版社,2011.

[2]陈能技.QTP自动化测试进阶[M].北京:电子工业出版社,2010.

[3]王恩新,浅析我国高速公路收费系统建设[J].软件,2012 (05): 95-96.