软件自动化测试方法的应用

2019-12-03 04:56邓绍伟
电子技术与软件工程 2019年21期
关键词:测试工具测试人员关键字

文/邓绍伟

1 软件自动化测试工具

1.1 测试管理工具

测试管理工具作为软件测试不可或缺的重要组成部分之一,是软件测试开发工作人员数据交互顺利进行的关键。软件开发测试人员通过将测试流程程序化的方式,跟踪、监测软件测试计划、流程以及执行过程中出现的各种问题,以便于工作人员及时的制定解决问题的措施,确保软件测试工作的高效进行。目前,常用的软件测试管理工具主要包括了:TrackRecord、TestDirector、TestManager等几种。比如,HPMercury公司质量中心(QC)使用的测试管理工具,不但达到了覆盖测试核心的目的,同时还具备了数据处理的功能。

1.2 功能测试工具

软件测试中的功能测试工具,就是运用自动检测、回访用户操作等形式,对比、分析检测系统中输出的预先设定的数据,以便于测试人员对软件的可靠性做出准确的判断。

1.3 负载压力测试工具

负载压力测试工具实际上是一种的度量应用系统可扩展性与其他相关性能常用的工具,借助这种自动化工具对系统的功能与行为进行预测,测试人员可以通过数以万计的用户执行关键的任务,并利用实时检测的性能来对问题进行确认和查找。这种类型的工具主要包括了:E-TestSuite、SilkPerformav、LoadRunner、QALoad等几种。

1.4 白盒测试工具

白盒测试工具实际上就是人们常说的代码测试,软件测试工作人员使用白盒测试工具测试软件,不但能够及时发现软件中存在的漏洞和缺陷,同时也为其准确定位代码级别提供了技术支持。白盒测试方法作为一种以静态测试工具和动态测试工具为原理的测试方法,这种测试工具的推广和应用,对于软件测试水平的提高有着极大的促进作用。测试人员使用静态测试工具可以在不扫描运行代码的情况下完成软件运行情况的测试,像PRQA、Logiscope都是常用的静态测试工具。当前常用的Klocwork测试工具,不但可以通过扫描C及Java项目代码的方式测试软件,同时还可以通过对代码缺陷严重程度的分析,对所属文件类型进行详细的分类,促进了软件检测质量和效果的有效提升。软件测试工作人员在使用动态测试工具测试系统运行状态时,主要典型的测试工具有RationalPurify、DevPartner。比如,在运用单元测试工具进行检测时,主要采取的插装式的软件测试方法,将检测的代码插入一些可执行的文件中,比如JUnit、C++Test、GoogleTest等。

1.5 测试辅助工具

虽然辅助测试工具不具备执行测试程序的功能,但是其可以通过生成测试数据的方式,为软件测试工作的顺利开展提供数据依据。主要有TestcaseMaster,在测试的过程中,采用域测试法、逐级细分法、错误猜测法、因果图分析法等测试方法,为测试提供更好的测试用例,从而让测试更加顺利的进行。

2 软件自动化测试的优势

当前,我国软件自动化测试技术应该具备一下优势:

(1)测试效率的大幅度提高。因为软件测试是一项工作量大且出错频率较高的工作,所以,使用传统测试技术取得的测试效果已经无法满足计算机信息技术发展的要求。引进自动化测试技术之后,可以将原本繁琐的测试步骤代替,软件测试人员通过引进高效测试技术的方式,不仅有效的缩短了软件测试的工作时间,减轻了软禁测试的工作量,同时也提高了软件测试的效率。

(2)软件自动化测试多样化。自动化测试技术最显著的特点就是可以在完成手工测试工作的基础上,完成很多手工无法完成的测试工作。比如,在开展大数据测试、压力测试、崩溃性测试等非功能性测试工作时,如果使用手工测试方法,不仅需要投入大量的人力、物力和时间成本,而且测试结果的准确性也无法保证,所以,这些测试工作都必须采用自动化测试的方法进行测试。

(3)降低了软件测试的风险,促进了资源利用率的有效提升。在软件自动化技术应用中可以降低风险,还可以增加软件的信任度,体改资源的有效利用。

(4)资源利用率高。在测试的过程中,将一些复杂的工作交给自动化测试系统完成,不但降低了软件测试的人工成本,将测试人员彻底解放出来,使其可以将主要精力放在手工测试与案例的分析设计工作中,从而降低人员的浪费,提高工作人员的利用,提高工作效率。

3 自动化测试方法

3.1 最初软件自动化测试技术

自动化软件测试技术是上世纪九十年代出现的一种取代传统人工测试的一种全新的软件测试技术。这一技术在最初使用时,主要是借助相关的硬件来着录制输入和操作的,但是不能对某个点进行检查,不能对某个点的功能和属性进行检查。这种操作模式下记录操作的脚本和操作的数据是混在一起的,在维护的时候需要很高的成本。不仅如此,如果界面出现变化导致脚本没有办法使用,测试人员必须重新进行录制,才能确保软件测试的顺利完成,所以,这种测试方法在实际应用过程中不仅使用效率低,而且使用成本较高。

3.2 数据驱动的自动化测试技术

在计算机信息技术迅速发展的推动下,软件测试技术已经由以往的硬件模式转变为软件模式,测试人员在开展软件测试工作时,只需要按照测试工作的要求,进行各个检查点参数值、属性值、预期值的检测,即可断定这些功能是否可以实现。与最初的自动化测试有所不同的是,这种技术可以实现文件中数据的读取,将数据的读取和操作进行分离,因此可以称之为鲫鱼数据的自动化测试技术。这种技术可以将输入数、预期输出组织成表,然后将表中的数据进行一一测试,在测试过程中可以进行一行一行读数,然后再将事先录制好的或者是工作人员手工编写的测试脚本用变量的方式传入,就可以将不同类型的输入、输出数据进行组合。这样可以更有效的对被测系统进行测试。

3.3 关键字驱动的自动化测试技术

自2001年开始,基于关键字驱动的自动化测试技术开始进行应用,然后通过对数据驱动技术的有效扩展。测试人员在进行关键字的驱动自动化测试工作时,需要利用语言描述进行测试用例,还要将测试脚本进行抽象化,让不懂代码的人员可以利用工具进行测试。因为关键字驱动自动化测试比较抽象,逻辑性比较强,其主要的思想是脚本与数据的分离,在测试中描述与具体的现实细节进行分离。

3.4 领域驱动的自动化测试技术

所谓领域驱动自动化测试技术,实际上就是从以往的关键字测试技术上发展衍生而来的。该测试技术最显著的特点就是:从领域模型中利用被测软件的领域语言描述测试用例,还要对测试的用例和关键字进行有效的设计、分析、开发和组织管理,这样可以使得测试更有效。领域驱动自动化的优势主要有:

(1)在测试的过程中利用领域描述可以使得测试更好理解。

(2)在进行软件测试时,工作人员可以根据要求随意的进行关键字和设置参数的整合,确保软件测试工作的顺利进行。

(3)假如被测试软件产品发生变化的话,还要将领域驱动进行更新,从而可以更加适应这种变化,而对测试用例不用修改。

3.5 功能驱动的自动化测试技术

这种自动化测试技术首先要将整个系统进行划分,从而形成多个独立的模块,每个模块都可以作为测试的载体,还要包含相应的数据信息和测试函数,是一个独立的测试用例,在需要的时候可以根据不同的需要调用相应的测试模块进行应用,从而将模块中的数据进行读取。虽然应用模块将计算机系统中的所有系统界面、操作以及输入等封装整合在一起,但是,由于这些模块是相对独立存在的,因此,工作人员在进行计算机软件的维护时,也必须根据要求对其进行单独的维护。

3.6 指令驱动的自动化测试技术

以指令驱动为基础的自动化测试实际上是一种以数据驱动自动化技术为基础改进优化而来的软件测试技术,这一技术主要是在软件测试的过程中,通过响铃的指令驱动系统,进行软件的测试。

4 结束语

总而言之,软件测试是非常重要的,是不可忽视的重要环节,软件的测试影响着产品的质量和用户的体验感。目前软件的功能越来越多,规模也会更加大、环境更复杂,这对软件测试提出更高的挑战。因此要不断的完善软件测试技术,不断创新和改进,从而提高测试的效率,满足用户的需求。

猜你喜欢
测试工具测试人员关键字
履职尽责求实效 真抓实干勇作为——十个关键字,盘点江苏统战的2021
成功避开“关键字”
Http并发连接测试工具
高校分析测试中心测试队伍建设方案初探
手车式真空断路器回路电阻测试电流线接头研究
福禄克推出先进的连接式测试工具系统
犯罪心理测试人员素质要求分析
智能垃圾箱