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

2022-05-12 版权声明 我要投稿

摘要:随着信息技术的飞速发展,越来越多的软件被广泛地应用于电子电器、公共交通、军事科技、互联网IT等领域,同时也给我们的生活品质带来了极大地改善和提升。然而,当这些软件的数量多到一定程度时,它们的质量难以得到保证,于是软件测试行业应运而生,服务于软件开发和用户。通过测试获取数据,并分析结果,来找出软件存在的缺陷,以此来帮助开发人员解决bug,提高软件的质量,提升了用户的体验。

关键词:软件测试;自动化;测试技术;

软件种类和数量的增多,带来的不仅是开发难度的加大,同时也给测试人员带来了不小的挑战。许多中小型公司的软件测试力量十分薄弱,软件测试人员的人才储备远远不足。现在的软件越来越追求高质量和创新,如何在短时间内开发出高质量的软件显得尤为重要,而软件测试在整个软件的开发过程中起着举足轻重的作用,始终贯穿着开发的整个周期。同时,随着软件的底层算法日渐复杂,软件架构也越来越丰富多样,仅靠传统的测试技术已经很难适应最新的需求了,再加上市场需要软件产品快速研发并投入到市场中去,这往往会导致测试结果的遗漏,测试效率也比较低。因此,采用新型的软件测试技术,并且提高自动化测试的比重,才能确保高效地完成软件测试的项目,促进软件产品的快速研发和上市。

1 软件测试及自动化软件测试的背景

1.1 软件测试存在的意义

在软件产品的开发过程中,功能的设计会以用户的需求和对该产品的规划为基础,还要考虑到产品的安全性和可靠性,但由于开发人员的技术参差不齐,可能会导致开发过程中出现一些纰漏,此时,软件测试的重要性就显现了出来。软件测试能够协助软件开发人员,在开发的过程中找出项目的缺陷,包含功能上的缺陷、代码的bug以及实际运行和期待运行状况的差别等,并能够在一定时间内对项目开展全面的测试,排除问题故障,确保软件能平稳且高效地运行[1]。

1.2 开展软件测试面临的困难

首先是数量的增加。对软件测试人员而言,算法、架构趋于复杂,传统的软件测试技术难以再适应新的需求,在测试方面容易造成漏测,误测等不良的结果。其次,自动化软件测试在整个项目的软件测试中所占地比重仍然较小,大多数的测试还依赖人工的测试。受到人员和时间的限制,有些开展软件测试的相关人员,在测试之前对于该软件产品没有充分且深入地了解,导致他们在测试过程中有很多疏忽,体现在测试用例的编写上,欠缺考虑,不能全面覆盖所要测试的功能需求,给产品的质量安全性埋下隐患。

1.3 自动化软件测试的优势

与人工测试相比,自动化软件测试能较大程度地提高了软件测试的整体效率。但很多企业往往采取人工结合自动化的方式去开展测试相关的工作,而不是让自动化测试全面取代人工测试,这也侧面反映出了自动化测试虽然有很大的优势,但也不是万能的。自动化测试的另一个优势是它能够降低软件测试的风险,避免一些人为因素致使的测试问题的发生。当自动化测试担当测试的主体时,人工就能更加专注地去设计测试案例并分析结果,分工明确会让一些原本很复杂的测试项目变得简单很多,尤其是进行回归测试消耗的时间成本下降,也能大大提高工作效率[2]。

2 自动化软件测试的技术分类

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

所谓功能驱动测试,就是将原本一个独立的项目分为多个独立的子模块,这些子模块都能各自作为测试的载体,是可以独立于其他模块的测试用例,供测试人员进行单个模块的测试,其中的数据和函数都与原来的项目所包含的一致。通过这种功能的划分,能够使测试人员维护起来十分方便,提高工作效率[3]。

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

关键字驱动和其他软件测试方法比较起来,更加注重逻辑层面,整个测试过程相对而言是比较抽象的;对测试脚本做抽象化处理,是为了有利于测试人员更注重逻辑,不需要关注代码本身,一方面降低了测试难度,另一方面使整个测试过程变得易于更改。该方法将关键字与数据建立联系,但在测试过程中会将测试所需的脚本同数据分离开,一些实现的具体场景和细节也和相关的描述产生了分隔,导致整个过程显得比较抽象[4]。

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

数据驱动测试技术将被测数据和测试的脚本分隔开;被测数据可以采取多种方式存储起来,例如列表、期望值和输入值分别记录到列表中,在每次被读入数据的时候不容易发生遗漏;同时,测试的脚本由于和数据分隔开了,且它本身是带有一些存储着数据信息的标记的,因此,脚本是可以独立进行测试的,不与其他信息冲突。很显然,这种数据和脚本分隔的测试方式,能够确保测试的稳定性,由于分成了几个模块,也便于测试人员进行维护,更容易激发创新,创造出新型的测试方式。相应地,该方式也有一定的缺陷,体现在软件的兼容性的差异,导致了同一个测试脚本用于不同的软件上时,需要针对性地做出一定的改动,也就增加了整体的成本。

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

该测试技术是在数据驱动技术的基础上衍生而来的,通过一定的优化,它实现了在进行测试的过程中,依靠对响铃的指令驱动系统,来完成测试;它与数据驱动的差异在于,指令驱动的存放数据的列表不再存放数据,而是存放了指令,这一改进,在某种程度上,可以有效地提升测试的效率。

2.5 录制回放

录制回放的方式借鉴了脚本的写法,其原理是写出具有录制和回放功能的脚本,然后能使脚本模仿软件的功能,再现出软件的用户在进行操作使用时的功能状况;由于它不需要太多的编程上的技巧,它的整体架构的稳定性一般较差,而且功能的复用性差,不易转移和重复利用;这种方式已经逐渐被时代淘汰了,仅在早期会被企业用于商用的测试。

2.6 独立脚本测试

独立脚本测试分为两种,一种是线性脚本,也叫非结构化脚本,这种脚本的难度较低,因为其本身可以应用不同的编程语言,且编写好后可以同被测系统交互,方便快捷,但缺点也很明显,系统和脚本“绑定”的后果便是软件系统自身的波动和一些变化,会使脚本同样受到影响,大大增加了测试人员的维护成本。由于其维护成本较高,仅适合用于一些中小型测试项目。另一种是结构化的脚本,对测试人员而言难度较高,因为它囊括了很多结构化的内容,例如循环、调用的函数,其逻辑性也比线性脚本要强很多,测试的稳定性和效率也较高。

3 自动化软件测试的相关工具及适用条件

1)自动化软件测试的相关工具包含了测试管理工具、功能测试工具、负载压力测试工具、白盒测试工具和测试辅助工具等。

2)适用条件:软件功能及需求具备较好的稳定性;自动化测试的意义就体现在对同类型的功能进行自动化的测试,假如需求经常变动,不仅会使自动化显得没有太大的意义,还会让一些除了基本功能外的其他功能漏测;自动化不仅体现在一轮测试中,而且当测试的脚本被重复利用时,才能减少成本;适合长期的项目,短期项目不能满足时间需求,从设计测试用例到编写测试脚本等,都需要一定长的时间成本。

4 应用场景

4.1 基于Linux GUI的自动化测试

以Linux自动化测试的一部分开源软件为重,该测试方法属于关键字驱动方法;GUI测试主要是以图形的界面为主,对这些对象进行软件窗口、界面图标、软件菜单和指示设备等的测试。

4.2 基于Python CLI的自动化测试

CLI的测试模式主要是以命令协议、命令外壳和命令集构成,其测试原理主要是通过用户的操作来作为驱动终端,然后经过终端向用户端发送命令,通过远程通信协议的沟通后,服务器终端就会开始运作,然后通过终端对服务器终端外壳的驱动,利用命令集来实现对用户命令的解析。在进行该测试的时候,应该选择更科学合理的测试框架,然后总结,整合。

4.3 云端软件测试技术

云服务器、云计算等技术的出现使软件平台的架构产生了较大的变化,从本地的,实体的服务器,转移到了云端的服务器,来进行软件测试;云服务器有利于资源共享,能够便于测试人员与开发人员进行测试结果的资源共享,对测试人员而言充分地利用云平台上的软件测试的相关工具和服务,提高测试效率。虽然云端软件测试技术优点很多,但具体实现仍比较困难,与本地测试比起来,还有很多地方需要改进。

5 结语

软件测试团队的建设对于每一个处于发展中甚至是成熟的公司而言,都扮演着不可或缺的角色;尤其是随着自动化软件测试技术的发展和进步,采用新型的测试技术能够快速的掌握软件测试的核心要素,优先增大自动化的比重,削弱人工测试的比重,更好地减少人力物力的成本,更为高效地完成软件测试。在大数据、云技术发展迅速的阶段,应该勇于试错,找到合适的自动化软件测试方式,不断优化,以确保完成软件测试项目。

参考文献

[1] 王静,杨晓峰,钱斐斐.软件自动化测试方法及其应用研究[J].中国新通信,2021,23(7):91-92.

[2] 徐旻.软件测试的新技术应用及发展分析[J].计算机产品与流通,2020(5):26;29.

[3] 金宝云.软件自动化测试方法的应用[J].计算机产品与流通,2020(3):21.

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

上一篇:在新形势下,优化基层机关事业单位政工干部党建工作的策略下一篇:初中生历史材料分析能力培养