当前位置:首页 期刊杂志

关于软件自动化测试的方法分析

时间:2024-05-04

杨晓峰 钱斐斐 刘国靖

【摘要】    本文首先针对早先以及当下所使用的主流软件自动化测试方法进行逐一介绍,并结合笔者个人经验,论述了在应用软件自动化测试方法环节常发生的相关类型错误,并针对其中部分不建议运用软件自动化测试的情境开展了分析。希望可以给从事相关领域研究的人员带来有效的帮助。

【关键词】    软件自动化测试    方法    错误分析    不适用场景

引言:

伴随着全球范围内计算机技术的迅速进步,各行业领域针对各类软件的应用已经变得越来越普及,软件在使用过程中的整体性能质量也越来越被人们所重视,而在这一过程中,针对软件进行测试时了解软件整体质量的一种重要手段。因此,对于从事相关领域工作的人员来说,了解当前较为常见的软件自动化测试方法,认识软件自动化测试环节中常出现的相关问题,对一些不建议采用软件自动化测试的情境有所了解,便成为了其所必须要关注的课题。

一、常见的软件自动化测试方法

1.1早期的软件自动化测试技术介绍

软件自动化测试技术最早诞生于上世纪九十年代,经常采用硬件方法来开展键盘录入和使用,之后通过播放来实现对软件的重复测试。但需要注意的是,该检测技术尚无法完成测试点功能,简单地说,就是不能就某一功能点进行功能和属性的检查,在该方式当中,对操作过程和数据信息进行记录是尚未分离的,所以该自动化测试技术的维护成本较高。另外,一旦对操作界面进行了调整,之前的脚本便不能再次使用,必须要重新对其进行录制。这种方式下,脚本的使用效率相对较为低下,并且在完成软件测试时,整体效率较为低下。

1.2凭借数据驱动的测试技術

在上世纪九十年代的中后期,伴随着软件测试水平的不断进步,使得录制和播放测试脚本的功能能够转移到软件层实现,并且也提升了检查点性能,也就是可以依靠对某一功能使用过程中相关数据、属性的变动与预估数据进行比较,来对软件功能效果进行确认。

该技术和最早的软件自动化测试技术最大的不同就是可以从数据文件中对相关信息进行读取,数据与操作流程脚本之间可以完全脱离,因此该技术被叫做依托数据驱动的软件自动化测试技术。该技术把数据录入、预期数据输出自动汇总成表格,表中每一行数据就代表着每一次测试流程,在测试过程中,对表格中的数据进行逐行读取,之后依靠变量的方式传送到之前录制完成或手工录入的脚本之中,采用相同的测试方式来对不相同的数据进行排列组合。该方法针对拥有多种不同数据作为测试的软件系统来说效率得到了非常显著的提升。

1.3依托关键字驱动测试技术

该技术最早诞生于二十一世纪初叶,它是依托数据驱动的软件自动化测试技术的升级版。依托关键字驱动的软件自动化测试技术通过自然语言来对测试软件的整体情况进行表述,把测试脚本进行抽象化处理,让不了解任何代表的非专业技术人员,还可以利用工具开展测试,该测试技术采用关键字构成的测试原理逻辑。

其核心工作原理为:脚本和数据相互独立,测试表述和具体细节相互独立、界面元素名称与测试对象内部称谓相互独立。核心关键字涉及有被操作对象(Item)、价值(Value)、操作(Operation),使用面对对象的方式可将其体现为Item Operation(Value)。

1.4依托领域驱动测试技术

该技术是基于关键字驱动基础上优化改进而来的,该技术的最主要特征为:从领域模型视角进行观察,面对待测软件的领域语言进行测试案例描绘,并进行建模、针对测试用例和领域关键字进行分析、设计、研发以及组织管理,由此进行相关的测试活动。在使用该测试技术的过程中,表现出如下优点:

第一,测试用例使用领域语言进行描绘,普通人在理解过程中没有难度,比较简单;

第二,测试用例能够凭借把领域关键字与设置数据进行重新组合来获取;

第三,在被测试软件成品的实现方式发生调整时,能够更新领域驱动测试库来对新发生的变化进行有效匹配,测试用例在自动化测试的过程中,不再需要进行任何形式的修改或调整。

1.5依托功能驱动的软件自动化测试技术

依托功能驱动的软件自动化测试技术是把软件的整个系统划分成若干个独立板块,在开展自动化测试的过程中,对每个板块进行独立的自动化测试,每一个板块都可以理解成一个个独立的,能够完成测试任务的载体,每一个载体的本质就是包含有自动化测试的函数,为独立的测试用例,同时能够基于实际需求调配代表单一独立功能板块的应用模块,读取驱动当中所必须的测量信息。

在应用模块中,存储着所有对系统界面操作的录入信息,由于应用模块是独立存在的区域,所以对其以后进行的维护工作也是相对较为独立的。因为在该测试技术背景下,所有与被测试软件系统相关联的操作和属性,均储存在每一个应用模块脚本当中,在系统界面出现变动之后,后续只需要对产生影响的应用模块脚本进行修改即可,其他脚本不再需要进行大的调整。

1.6依托指令驱动测试技术

该测试的基本原理是对驱动软件测试技术的改良优化,其所有流程所包含的功能都是凭借指令驱动来达到的,可以支持由不同序列或者多种不同路径构成的测试。指令驱动测试构建在数据驱动自动化测试方式之上,在表格中,存储的信息不再是数据,而是各类指令,它是独立于执行测试工具,也是对数据驱动模式合理优化,时至今日,依托指令驱动的软件测试技术被认为是目前最为先进的软件自动化测试技术。

二、使用测试技术过程中存在的误区

虽然软件自动化测试技术拥有良好的效率和可重复操作性,但是在实践过程中,仍然存在有一定的局限,笔者接下来就使用软件自动化测试技术过程中的一些常见误区进行概述。

2.1使用软件自动化测试技术完全代替软件手工测试

在许多情境之下,针对软件的测试一定需要通过人来进行操作,即只有在上一个操作流程完成之后,才能够基于操作结果来判定执行方案,或者输入测试数据内容,以现有的技术能力来说,此项工作机器仍然是无法完成的,必须要通过人类大脑的决策,因此不能期待在全部的情境当中均使用软件自动化测试技术,更不能在现有技术能力下,使用软件自动化测试技术来代替手工测试。

2.2可以对软件的易用性进行判定

因为软件自动化测试技术的本质,只是一种工具,而对于工具来说,审美能力和想象能力并不是其应当具备的一种能力,对于针对软件界面是否整洁美观、软件是否具有易用性等内容,软件自动化测试技术是不能够代替人类来进行判断的,所以在这些方面,仍然需要通过人类的主观意识来决定。

2.3只要采用软件自动化测试技术便能够降低测试时长,提高测试工作效率

需要注意的是,在使用软件自动化测试技术的过程之前,一定要花费一定的时间和精力用于建立测试环境、进行脚本录制、建立数据表格式、输入数据等,和传统的手工测试进行对比,需要消耗5-10倍时间来研发一个自动化测试用例,所以若无法转化额外的资源与时间,便不能够开展大量的投入來建立软件自动化测试框架,针对部分规模相对较小、测试用例相对更少的软件系统来讲,使用软件自动化测试技术可能会适得其反,导致测试时间更长,测试效率更低。

自动化测试工具使用图形化界面,操作简单易学,对测试人员并没有过高的能力要求,但是从目前的技术发展情况来看,此项技术并非万能,若想基于被测系统的特征建立有效的自动化测试脚本,工作人员一定要掌握相关的脚本语言,能够迅速对脚本内容进行编辑和完善。

三、不适用软件自动化测试的情境介绍

整体来说,虽然软件自动化测试技术拥有比较优秀的可重复性、工作效率优异等特点,但是并不能在所有种类的软件产品测试中实现运用,所以对此还需要进一步探讨,了解不同的测试情境。

首先是定制类软件:这些软件都是基于客户的实际要求,针对性设计的测试软件,其维护一般是由客户自己负责,相应侧运行环境、程序语言等,都是依据客户需求来确定的。这种形式,让企业对这些软件项目所积累的测试经验极少,因此,在定制类软件中,不适合使用软件自动化测试技术。

周期相对较短的项目:如果某软件工程项目研发周期相对较短,那么其测试时间就非常有限,这一情况下,不建议花费大量精力来投资进行软件自动化测试,即便有充足的时间和精力去建设测试环境,设计测试脚本,但是仍然会出现脚本利用率不高的情况,导致使用软件自动化测试技术的性价比不足。

运行规则相对较为复杂的软件产品:若待测软件系统具有极度复杂的运行规则和逻辑,就一定要通过人工测试的方式,因为自动化测试技术很难完成相关的脚本设计。

运行次数不多的软件:实际上,软件自动化测试技术的本质,就是让软件大量进行运行,来检测软件的测试效率,针对一些较少使用的软件,使用此项技术极有可能造成资源的浪费。

四、结束语

整体来说,软件自动化测试技术在绝大多数场景下,都能够针对软件的性能进行测试,因此具有重要的使用价值,但是作为相关场景工作人员来说,仍然需要区分软件自动测试技术在使用过程中的误区以及不适用情境,只有有效回避这些场景,才能让此项技术得到更为有效的利用。

参  考  文  献

[1]高楠枭.软件自动化测试的方法探究[J].计算机产品与流通, 2020(09):49.

[2]孙雷.软件自动化测试的方法分析[J].集成电路应用, 2020,37(05):94-95.

[3]卫春才.软件自动化测试方法的应用分析[J].计算机产品与流通,2020(02):33.

[4]杨丽波.软件自动化测试方法的发展现状分析[J].无线互联科技,2017(04):49-50.

[5]艾迪安.软件自动化测试方法的研究与应用[J].中国新通信, 2016,18(17):16-17.

免责声明

我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!