伍炳霖 李昕昕 龚勋
摘要:随着软件版本的更新速度不断加快,传统的手工测试已经不能满足频繁变更的软件版本需求。因此可以替代重复、繁琐人工操作的自动化测试正被广泛应用。该文选择利用自动化测试工具QTP对最常见的“登录”功能模块进行测试,并就测试过程和测试效率与手工测试进行对比,说明自动化测试的优势。
关键词:QTP;测试工具;测试
中图分类号:TP317.1 文献标识码:A 文章编号:1009-3044(2018)26-0195-03
Abstract:As the update speed of software versions continues to accelerate, traditional manual testing can no longer meet the requirements of frequently changed software versions. Therefore, automated tests that can replace repetitive and tedious manual operations are being widely used. This paper chooses qtp, an automated testing tool, to test the most common " login" function modules, and compares the testing process and efficiency with manual testing, illustrating the advantages of automated testing.
Key words: qtp; Testing tools; Testing
目前在软件测试行业里,除了大家所熟悉的黑盒测试和白盒测试以外,还有自动化测试和手工测试这两种。而且自动化测试和手工测试相比较具有缩短测试时间,提高测试覆盖率,保证操作准确性、减少成本、缩短开发周期等优点。但是由于自动化测试不具备创造性,所以它只适合于持续开发的项目和某些常用功能模块的测试。本文将选择目前市场占有率最高的自动化测试工具QTP对最常見的“登录”功能模块进行测试,并就测试过程和测试效率与手工测试进行对比,说明自动化测试的优势[1]。
1 QTP简介
1.1 QTP的特点
QTP 全称 Quick Test Professional,一般用在产品的回归测试和同一软件版本的升级测试. 现在市场上流行的自动化测试工具有很多, 而QTP 以它的学习简单,操作方便,功能强大的特点脱颖而出. 对于才接触这个工具不久的人来说可以直接通过录制屏幕上的操作流程, 自动生成测试脚本. 而对于测试专家, 还可以通过集成的脚本和调试环境完全访问内在测试和对象属性[2]。QTP 默认提供了 Active X、Visual Basic 和 Web 插件以满足不同类型产品测试的需求. QTP 会仿真鼠标的动作与键盘的输入 ,可以以程序的方式 ,撰写复杂的测试脚本 ,以带出隐藏在应用程序中的信息 ,也可以建立广泛的测试脚本,涵盖应用程序的所有功能[3] 。
1.2 QTP的基本原理
在录制脚本的过程中, QTP 首先会确定测试对象符合的测试控件类型, 如标准 Windows 对话框(Dialog)、Web 按钮(WebButton)或 Visual Basic 滚动条对象(VbScrollBar)等, 然后记录该对象的强制属性值, 并去当前页面上检查除此对象以外的其他对象、对话框或其他父对象, 以确定该描述是否足以唯一标识该对象, 如果不足以进行唯一标识, QTP 将向该描述中逐渐添加辅助属性, 直到经过编译成为唯一的描述为止, 如果没有可用的辅助属性, 或者那些可用的辅助属性仍不足够创建一个唯一的描述, QTP 将添加一个特殊的顺序标识符(例如页面上或源代码中对象的位置)以创建唯一的描述. 最后 QTP 用一个逻辑名加上若干属性的方式描述测试对象, 并将其存储在对象库(Object Repository)中[4]。
脚本回放时, QTP 会分析此脚本的操作对象, 通过此操作对象的逻辑名, 在对象库中查找对应的详细记录, 并列出此控件类的所有强制属性进行匹配, 当强制属性可以确定唯一标识这个操作对象,就通过强制属性来标识, 如不能唯一标识对象, QTP 会挨个取出此控件类的辅助属性直到可以唯一标识对象为止。 之后会把语句规定的操作施加到该对象上。
如果使用强制属性和辅助属性还不能唯一标识对象, QTP 则采用以下两种方式:
(1) 智能识别
(2) 顺序标识符 [5].
2 QTP 自动化测试应用
为了使读者能更清楚直观的了解以QTP为基础的自动化测试与手工测试的区别,下文将以最常见的登录模块为例进行介绍。
2.1 登录模块测试功能点分析
在常见的登录模块的操作过程中,通常会出现登录成功和登录失败两种情况。
登录成功:
1) 正确输入用户名和密码,成功登录。
2) 登录失败:
不输入ID 提示Please enter agent name。
输入不够4个字符的ID提示Agent name must be at least 4 characters long。
密码错误提示 Incorrect password.Please try again。
不输入密码提示Please enter password。
根据以上信息设计登录模块测试用例如表1:
2.2 登录模块的自动化测试流程
1) 新建对象库
将被测系统的所有对象手动添加到测试对象库中,其中包括用户名、密码、OK、Cancle、help以及出现错误时的对话框和其中的确定按钮。
2) 生成测试步骤
测试步骤:①打开QTP;②选择使用Windows 插件模式进行录制, 并且在录制的地址栏中填上Flight Reservation程序所在地址;③将正确的用户名和密码输入;④点击“OK”按钮后成功进入用户管理界面;⑤点击右上角的叉关闭QTP;⑥结束,录制完成。
下面给出录制的脚本:
3) 腳本参数化
首先找到脚本中在登录界面的用户名输入这一个步骤,再找到这个步骤中的Value 这一列 ,点击此列最右边的“ <#>”按钮后弹出一个对话框, 现在让我们指定一个参数名以及数据驱动表的数据源,之后我们分别设置为 :ID 和全局表 。然后点击“OK”按钮即可。
最后对输入的密码的参数化操作请参考之前对输入的用户名参数化过程。
以下给出具体代码:
4) 设置检查点
在将用户名和密码参数化之后,在其后插入检查点,并设置成检查其文本,而在输入用户名和密码之后点击OK按钮,如果弹出对话框,则在这一步插入文本输入检查点,从而获取不同操作而出现不同对话框的文本信息。
以下给出具体代码:
5) 执行测试
因为我们设计了五个测试用例,而QTP自动化测试相当于模仿五个真实用户分别进行登录的操作,因此我们需要设置五次迭代,从而将Global table中的测试用例能依次按照我们预期那样输入而完成测试,最后点击“Run”执行测试[6]。
6) 观察测试结果
3 手工测试的应用
登录模块的手工测试流程为:
1) 在用户名对话框中输入用户名;
2) 在密码对话框中输入密码;
3) 点击确定按钮;
4) 观察测试结果。
在手工测试环境下为了验证3.1中所涉及的5个功能点,需要反复执行1)-4)的所有操作步骤5次,并对每次的测试结果进行记录。
4 总结
根据自动化测试和手工测试对相同被测模块进行测试后发现,QTP在需要反复运行同样操作步骤的情况下,其测试效率及测试准确度远高于手工测试。具体测试数据见表2 。
参考文献:
[1] Lydia Ash, 李昂等译. Web 测试指南[M].北京: 机械工业出版社,2004.
[2] 陆璐,王柏勇. 软件自动化测试技术[M].北京:清华大学出版社,2006.
[3] 杨彬.Quick Test Professional8.2自动化测试工具技术实践[J].福建电脑,2008(01):163-164.
[4] 李玉,尉双梅,汪添生,马朝晗,杨超.基于QTP的企业级应用软件自动化测试方法[J].计算机系统应用,2016,25(06):219-224.
[5] 陈能技.QTP 自动化测试实践[J].北京:电子工业出版社,2008.
[6] 李金凤.基于QTP的软件功能测试与案例研究[J].信息技术,2009,33(10):85-88+93.
[通联编辑:梁书]