李浩 熊巧 丁建华
摘要:文章介绍了自动化测试的理论、以及UFT运行的基本原理,阐述了UFT在取证软件中的应用,搭建了一套自动化测试框架,实现了对交付测试版本的冒烟测试,有效地提高了测试效率,节约了人力成本,具有较好的现实意义。
关键词:UFT;取证;自动化
中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2015)35-0126-02
Abstract: The paper introduced the theory of automatic test, and the basic principle of UFT.Expounding the application of UFT in forensic software, building a set of automatic test framework, which could improve the test efficiency and save the human resource.
Key words: UFT; forensic; automation
随着我国信息化技术的飞速发展,电子证据在公安机关案件侦破、法院审判、电子商务等诸多领域扮演着重要的角色。基于C/S架构的取证产品依然是市场上的主流,面对敏捷开发带来的版本频繁更迭,手工测试面临巨大的挑战。构建自动化测试框架,对交付版本完成基本的冒烟测试,不仅能够减少大量重复的人力劳动,还能有效的控制产品质量。
1 自动化测试概述
在敏捷开发过程中,版本更迭非常频繁,每个版本都有大量重复的基本功能需要测试;不但浪费时间而且容易引起测试人员的疲倦,甚至忽略部分功能的测试,对产品质量造成一定的影响。自动化测试,简而言之,就是用程序测试程序,以脚本的运行来代替手工测试,它是测试人员测试思维的体现。
自动化测试主要用于回归测试,因为测试人员完全掌握回归测试的预期结果,可以有效地提高测试效率。当一个业务需要重复10次以上时,自动化测试的优势便显现出来了,面对复杂重复的测试任务,自动化测试可以保证测试工作的可靠性、高效性。此外还能进行24小时全天候不停歇的测试任务。当面对多环境时,比如win xp、win vista 、win7、win8、win10,且操作系统还有X86、X64之分,再加上各种浏览器、各种杀毒软件的组合,测试工作量之大可想而知,而自动化测试可以很好地解决这一问题。
当然,自动化测试也有其弊端,其不可能完全代替手工测试,对于复杂逻辑来说,自动化测试的编码代价非常巨大;其次自动化测试脚本编写有一定的门槛,对测试人员技术有一定的要求,技术的高低决定了脚本代码质量的好坏。
对于项目周期较长,系统升级较频繁、且需求变更不大的产品可以适当的引入自动化测试;对于周期较短的项目,自动化脚本代码编写还未完成,项目可能已经接近尾声,得不偿失。
2 基本原理
要了解UFT的基本原理,我们首先要明确三个概念,它们分别是对象、对象属性、对象库。其中对象是构成被测系统的基本元素;每个对象都有一个可以唯一标识对象的属性列表,称之为对象属性,其中属性可以进行设置,对象通过其属性建立了与被测系统元素的一一对应关系;对象库,顾名思义,就是对象的有序集合,在一次测试过程中涉及的被测系统的对象成为本次测试的对象库。
UFT采用录制/回放的技术原理。在录制过程中,首先根据被测系统,将对象识别并加入对象库,然后生成相应的脚本;在回放过程中,首先根据要回放的脚本去对象库中寻找相应的对象,然后对被测系统进行一系列的回放操作。
3 主要研究内容
3.1 需求分析
面对频繁的版本更迭,搭建自动化框架,完成基本的冒烟测试,有效的节约人力成本,是我们的根本目的。
首先需要关注测试的内容。对取证软件的取证部分进行自动化框架搭建,包括浏览器信息、下载取证、即时通信、邮件取证、数据恢复、系统痕迹、用户痕迹、文件系统等八个模块,而每个模块下面又包含多个取证内容,其取证对象内容如图2所示。
其次需要关注测试的颗粒度。被测目标数据源中,设定每个模块均有数据,对各个模块进行基本的点击操作,判断数据的有无,确定取证软件取证功能的好坏;然后进行相关数据的导出,确保导出功能可用。对于数据的准确比对,将是我们以后考虑的事情,本文不做讨论。
3.2 用例设计
通过图2我们可以看到,取证软件包含对75个取证对象的取证功能。测试内容较多,用例的设计需要考虑以下几个方面:
1)要按照软件的使用逻辑来设计。首先进行取证软件的打开,案件的新建,取证证据的添加,其次针对每一个模块依次的进行数据的取证,待每一个模块取证完成后,关闭并退出取证软件。
2)要把握好时间观念。根据软件的设计方案,将取证时间少的模块首先进行取证,取证耗时长的模块放到末尾进行。
3)由于案件编号为唯一标识,不允许重复,所以要达到脚本的重复回放,需要对取证案件的基本信息模块进行参数化设定。
4)加入相关的检查点技术,并将运行结果写入报告,可以直观的获取测试结果,减少测试人员的工作量。
3.3 脚本编写
在脚本的编写过程中,主要依赖于UFT的录制功能。但也会出现对象无法识别,回放出现错误等现象,那就要求根据具体的情况进行具体的分析。有可能是开发人员没有标识相应的对象属性,也有可能是对象名称重复导致,或者是无法识别录制的对象,下面举例说明:
在取证的过程中,取证结果条数不确定。少则几条,多则成百上千条,图3展示了两个不同取证数目的对比,左图中的取证数据为1条,右图中的取证数据为770条,若对每一条记录都进行ID标识,
3.4 结果分析
在自动化测试完成后,UFT会将测试结果打印在测试报告中。我们需要对结果进行分析,根据测试结果来判断测试是否通过,并检查脚本是否完全完成了测试。
3.5 现实意义
引入自动化测试框架后,从一定程度上有效地节约了人力成本。如图5所示,图表中纵坐标代表人力花费时间(人力/天),图表横坐标代表各个版本号。从图表中可以看到版本1在引入自动化测试前,需要15人力/天,以3人为一测试小组,需要花费5天的时间;但引入自动化测试后,测试前期只需要进行自动化冒烟测试,节省的人力资源可以转移到其他的项目上去,具有一定的现实意义。
4 结束语
本文阐述了UFT在取证软件中的应用,搭建了自动化测试框架,实现了对交付测试版本的冒烟测试,有效地提高了测试效率,节约了人力成本,具有较好的现实意义。下一步将是在有效固定数据源的情况下实现数据的精确比对,完全实现取证产品的自动化测试。
参考文献:
[1] 余杰,赵旭斌. 精通QTP—自动化测试技术领航[M]. 北京: 人民邮电出版社,2012.
[2] 韩涛. 基于QTP的税收征管信息系统自动化测试研究[D]. 西安: 西安电子科技大学,2012.