软件自动化测试的方法分析
2020-08-27杜鸿飞
杜鸿飞
摘 要: 软件测试能够有效保障软件的质量安全,在软件系统工程中也是不可缺少的一个组成部分,随着我国软件业的发展,人们对软件的质量要求也逐渐严格。因而,软件测试技术也随之更加科技化与复杂化。目前社会上已经有很多测试方法都可以有效地确保软件质量的稳定性,自动化测试能够让测试的效率获得提高,同时也可以让测试质量更加准确,所以自动化测试已经成为目前软件测试中使用最为普遍的一项方式。
关键词: 软件;自动化;测试
【中图分类号】TP311.56 【文献标识码】A 【文章编号】1674-3733(2020)17-0208-02
软件的出现改变了人们的工作方式,提高了工作效率,被广泛的应用于各个工作领域。为了确保软件能够平稳高效的运行,就要对其进行系统全面的测试,排除其中存在的问题。传统的人工测试方法已经无法满足当前人们对于软件测试工作效率与准确性的要求,为了满足软件测试工作的需求,就要将自动化测试方法有效的运用于软件测试工作中,进而提高测试的工作效率,为软件的质量提供可靠保障。
1 计算机软件测试的内涵与特点
1.1 计算机软件测试内涵
软件测试是验证交付的软件能够达到预期的功能需求,或者检测软件的实际输出功能与预期的功能之间是否存在差异,以及软件在安全性、功能性、容错性、稳定性方面是否满足要求。软件测试最终目标是发现开发的软件是否存在错误。一般来说,是从用户使用的视角出发,通过测试发现软件中存在不符合预期的功能、隐藏的错误与缺陷。从开发者的视角出发分析,希望开发的软件不存在错误、具有容错异常处理能力,是一个成熟可靠,具有高质量的“艺术品”,以保证开发的软件能够满足客户的要求,对用户是友好易操作的,以此来提高用户对软件使用的信心。
1.2 计算机软件测试特点
(1)功能的可靠性验证。在测试验证中,要求软件运行稳定,功能可靠,及时反馈响应,能够按照用户的操作要求,及时完成正确功能操作,和用户之间建立可信任、可靠及时响应的操作。
(2)系统的安全性检测。在软件持续运行的过程中,验证软件系统、交互组件、数据的安全性能否满足要求,是否存在潜在的黑客攻击、数据盗取、数据篡改、系统破坏等潜在的风险安全。
(3)适用可理解性测试。要在指定使用条件下,在软件使用的过程中,能否满足大多数用户的需求,需对软件进行测试,保证软件在使用中,能够被用户理解、学习与使用。
(4)容错与故障处理。是指为保证软件在运行的过程,能否在用户的错误操作下稳定的运行,并具有相应的容错恢复能力。
(5)功能测试。依据软件开发的业务功能,对其进行测试验证,以证明开发的产品能够满足预期的业务要求。
(6)性能要求測试。主要是对软件系统中的用户指标能否满足要求,以验证系统中是否存在瓶颈或者不稳定的问题,及时对存在性能隐患的地方进行修复,主要目标是及时修复发现的性能问题,避免性能问题导致系统瘫痪或功能不可用的风险。
2 软件自动化测试方法
2.1 数据驱动的自动化测试技术
随着软件测试技术的不断发展,软件测试技术已经发展到自动化模式,在实际的测试过程中,只需要对各个测试点的参数值、属性值以及预期值进行系统全面的检测,就能快速判断该项功能能否顺利实施。该种测试技术能够从文件中读取相应的数据,并且还能隔离数据的读取和操作,其通过将输入数和预期输出构成表格,再依次对表格中的数据进行测试。在测试过程中,表格中的数据读取是一行一行进行的,这样能够避免漏测数据,然后再将事先录制好的或者是工作人员手工编写的测试脚本用变量的方式传入,进而就能将不同类型的输入、输出数据进行科学合理的组合,提高测试的工作效率,具有比较广泛的应用空间。
2.2 关键字驱动的自动化测试技术
在关键字驱动的测试过程中,测试人员在进行自动化的测试过程中,为了能够提高测试精度,需要采用语言的方式对测试用例进行系统全面的描述,并且还需要将相应的测试脚本进行有针对性的抽象化处理,这样就能大大降低测试的难度,测试人员不需要看懂代码,就能通过测试工具完成软件的测试工作。关键字驱动自动化测试比较抽象,整个测试过程具有非常强的逻辑性,在其测试过程中,需要将测试脚本与数据进行有效的分离,在测试中还要将描述与具体的现实细节进行分离,在测试过程中需要予以充分的重视。
2.3 领域驱动的自动化测试技术
领域驱动测试是在关键字测试的基础上发展而来的,该测试技术能够利用被测试软件的领域语言对测试用例进行科学合理的描述,进而能够在一定程度上提高测试的精确度。驱动领域测试所具有的优势有:
(1)借助领域描述能够大大降低测试的理解难度,便于测试工作的顺利进行。
(2)在测试过程中,测试人员能够结合测试工作的实际需求对关键字和设置参数进行有针对性的整合,进而促进测试工作的顺利实施。
(3)假如被测试软件产品发生变化的话,还要将领域驱动进行更新,从而可以更加适应这种变化,而对测试用例不用修改。
2.4 功能驱动的自动化测试技术
功能驱动测试是将整个系统划分为若干个独立的测试模块,每个模块都可以单独作为一个测试载体,其中包含了测试所需要的数据信息和测试函数,是一个独立的测试用例。在进行测试的过程中,测试人员能够结合测试工作的需求,调用相应的测试模块进行测试,进而就能读取测试模块中的数据。由于上述的测试模块是独立存在的,这就需要测试人员对此类模块采取相应的维护措施,确保其始终处于良好的工作状态。
3 软件自动化测试的实际应用
3.1 Linux GUI自动化测试
Linux GUI自动化测试是以当代Linux自动化测试法为中心,Linux自动化测试法是上文提到的关键字驱动方法中的一种。GUI测试仅是软件测试类型中的一种,主要是以形状页面为核心的测试对象。Linux GUI自动化测试法的根本就是用操作很多关键字驱动,通过对结构框架的分类,达到所有功能的同时操作,其服务模式可以使自动化测试工作达到高效率。Linux GUI自动化测试法在现实中应用时,相关人员应注重对软件功效性、稳定性、灵活性的检测。在软件功效性测试中,需要高密度测试工作,因此人为手工测试无法达到此项测试要求。在软件稳定性测试中,其根本是测试软件在很长时间、超大容量等一些特殊情况下运行的稳定程度,经过特殊情况的情景再现,对软件成熟性、使用功能上进行测试。在软件灵活性测试中,由于测试单元复杂多变,所以仅对小单元检测,即便如此,软件自动化测试也各层适用。
3.2 Python CLI自动化测试
CLI是一种文本类型的命令接口,其主要功能是使用终端或者远程端口建立起用户和网络设备相互之间的通信渠道。在控制的过程中,主要是在用户基础上使用键盘来输入的一种文本命令,以此来对相关的网络设备进行一定的监管与维护。CLI的主要测试模式是由命令协议、命令外壳以及命令集所构成的,CLI其主要的测试原理是使用用户操作来驱动终端,再通过终端发送命令给相关用户端,通过远程通信协议之间进行相互沟通,之后服务终端就会进行运作,然后再通过终端,对服务终端外壳进行驱动,使用命令来解析用户命令。在使用CLI自动化测试法的过程中,首先需要选择更加科学合理的测试框架,且在这个基础上对CLI自动化测试法的整体功能实施一定的整合与总结,再按照整合出来的结果以及测试框架来设计测试方案。目前我国相关专业单位就对这种自动化测试方法进行了深入的探索,并建立起一个自动化程度相对较高的测试脚本,只需要测试人员将某些命令输入,予以选择出相关的测试数据,则将会在系统测试环境的初始化功能完成之后,系统就可以自动对相关测试数据进行读取,在翻译与执行测试、输出等各方面,通通都是自動化的测试环节,从而结束对软件自动化测试的工作。不仅如此,这种自动化测试的脚本仍然具备测试完毕后自动清理的功能,从而为之后的测试准确性打下优质的基础。
4 结语
通过丰富的软件自动化测试方式,目前阶段的测试人员已经可以在一定程度上更加全面,且准确的探索相关软件的可优化空间。利用自动化的测试方式,能够有效减少人力和物力等相关资源的耗费。因此相关测试人员需要更加积极地使用自动化测试方法,从而降低人工测试的整体比例,在提升测试效率的基础上,也促进性能测量可以更加准确,让自动化测试帮助软件获得全面发展。
参考文献
[1] 邓绍伟.软件自动化测试方法的应用[J].电子技术与软件工程,2019(21):32.
[2] 张蓝图.软件自动化测试方法的应用[J].电子技术与软件工程,2019(18):30-31.
[3] 李玉,尉双梅,汪添生,等.基于QTP的企业级应用软件自动化测试方法[J].计算机系统应用,2016(02):91-92.