樊婧雯 戚若宇
中国电子科技集团公司第二十八研究所 江苏 南京 210000
摘要:目前,我国的经济在快速发展,社会在不断进步,由于工程师们日常在软件测试上所花费的成本很高,且完成工作的效率有限,论文考虑将自动化测试技术在软件测试上进行应用,并根据已有的架构足够稳定的样本进行自动化测试技术的相关研究。这一研究通过分析软件的数据流程和用户需求,结合行业或领域的历史数据,根据需要来构建软件测试的专业平台以及专业的关联工具库。做好这些基础设施的构建之后,并可以以此作为基础,让软件自动生成对应的测试专用的脚本和测试用例等,进而完成自动化测试。这里需要注意的是,自动化测试的平台并不是一次性的,而是具有可继承性,并且可以在原基础上进行扩展来满足将来软件的更新维护,并考虑到不同客户的不同需求。同时,自动化的测试也可以让软件更新等操作变得更加灵活方便[1]。
关键词:软件测试;数据库;测试用例
引言
软件的出现改变了人们的工作方式,提高了工作效率,被广泛的应用于各个工作领域。为了确保软件能够平稳高效的运行,就要对其进行系统全面的测试,排除其中存在的问题。传统的人工测试方法已经无法满足当前人们对于软件测试工作效率与准确性的要求,为了满足软件测试工作的需求,就要将自动化测试方法有效的运用于软件测试工作中,进而提高测试的工作效率,为软件的质量提供可靠保障。
1软件自动化测试分析
软件自动化测试是基于某种程序开展的语言编制测试程序,是在传统手动测试基础上创新而言,以电脑自动检测替代了传统的手工检测,在测试时,需要将测试流程、自动化编程、测试体系整合。应用软件自动化测试,为程序回归测试提供了便利,如果回归测试程序良好,那么测试结果能够预想,这能够减少测试时间,提升测试效率。另外,软件自动化测试能够重复利用,测试结果、内容高度一致,测试软件能够反复使用[2]。
2软件自动化测试技术研究
2.1PythonCLI自动化测试
CLI是一种文本类型的命令接口,其主要功能是使用终端或者远程端口建立起用户和网络设备相互之间的通信渠道。在控制的过程中,主要是在用户基础上使用键盘来输入的一种文本命令,以此来对相关的网络设备进行一定的监管与维护。CLI的主要测试模式是由命令协议、命令外壳以及命令集所构成的,CLI其主要的测试原理是使用用户操作来驱动终端,再通过终端发送命令给相关用户端,通过远程通信协议之间进行相互沟通,之后服务终端就会进行运作,然后再通过终端,对服务终端外壳进行驱动,使用命令来解析用户命令。在使用CLI自动化测试法的过程中,首先需要选择更加科学合理的测试框架,且在这个基础上对CLI自动化测试法的整体功能实施一定的整合与总结,再按照整合出来的结果以及测试框架来设计测试方案。目前我国相关专业单位就对这种自动化测试方法进行了深入的探索,并建立起一个自动化程度相对较高的测试脚本,只需要测试人员将某些命令输入,予以选择出相关的测试数据,则将会在系统测试环境的初始化功能完成之后,让系统就可以自动对相关测试数据进行读取,在翻译与执行测试与输出等各方面,通通都是自动化的测试环节,从而结束对软件自动化测试的工作。不仅如此,这种自动化测试的脚本当仍然具备测试完毕后自动清理的功能,从而为之后的测试准确性,也将打下优质的基础。
2.2单元测试
由于现代软件规模的增大,大多开发工作由团队承担,通过对软件的需求分析,细化开发内容,分摊给各个成员。每个成员负责软件的一个或几个单元的开发工作,并在开发完成后进行集成,形成系统。单元开发一般有两种开发模式,一种是直接编写代码,编译通过,待全部单元编写完成后集成;第二种是对每个开发完成的单元进行测试,确认结果与期望一致,最后将测试通过的单元进行集成。前者可以较早地完成代码编写工作,但集成时,往往难以得到期望的输出;后者在单元开发工作结束集成演示时,往往能较好地运行。这就是单元测试的优势所在。
早期的单元测试往往是程序员在编写完一个单元后通过手写测试代码对其进行测试,极大地牺牲了工作时间,降低了软件交付效率,因此,自动化单元测试受到越来越多的软件企业和开发人员的关注。软件单元测试包括单元功能测试、接口测试robot、数据结构测试、路径测试、错误处理测试、边界测试等,其对应的自动化测试工具也不尽相同。目前单元自动化测试工具,如Mocha、JUnit5、xUnit、TestNG、Selenium、WebTEST、WebDriver、Watir、Notetests等,使用较为广泛。实施单元测试,可以有效提升产品质量,帮助企业提升市场的形象,虽然耗费了部分时间,但正是“磨刀不误砍柴工”。
2.3测试数据
测试数据的提取,并不是毫无标准。软件测试的整个流程便是将准备好的测试数据输入,经过整个软件流程,得到输出数据,并籍由输出数据来判断软件运行的情况。因此,输入大量的符合整个行业需求的测试数据,以供软件进行测试,是软件测试必要的第一步,也是自动化软件测试平台无法跳过,必须完成的一个步骤。但平台所需求和寻找的数据并不是普通的测试数据,而是经过多次不同情况下的软件测试筛选出来的,足以覆盖所有输入输出情况,具有很强代表性的数据。这些数据才是自动化软件测试平台所需求的测试数据,平台根据这些数据在软件中运行的情况,可以将其分类整理,建立起完善的数据库,以供今后的自动化软件测试所用[3]。
2.4LinuxGUI自动化测试
LinuxGUI自动化测试本质上属于关键字驱动的测试方法,其是建立在Linux自动化测试开源软件的基础之上。GUI测试主要是针对图形界面为主的软件,需要进行测试的项目主要包括:软件窗口、界面图标、软件菜单以及指示设备等,在实际的测试过程中,需要进行有针对性的优选。GUI测试是在关键字的驱动下进行的,通过其独有的分层结构框架,进而对软件的各项工作进行同时测试,并能经由该方法中低层向高层提供服务的模式,以达到高效化的自动测试工作。
2.5综合测试
软件测试按照软件开发生命周期从编码开始到软件产品交付,大致可分为五个环节,每个环节都有对应的测试工具。不同的自动化测试工具所适用的软件开发语言、环境及规模不同,选择合适的自动化测试工具,可以帮助我们降低测试工作的强度,并提高测试的效率和质量。此外,软件开发云平台作为集项目管理、配置管理、代码检测、编译、测试、发布、部署于一体的一站式云端应用开发平台,被越来越多地应用在软件项目中,如浙江省软件开发云平台、阿里云效、华为开发云、禅道等等。上述平台集成了大量的自动化测试工具,例如浙江省软件开发云平台中涵盖了软件测试云平台以及多家优秀云商提供的云开发平台如阿里云效等工具,阿里云效中涵盖了单测集成、SAT接口测试、集成化自动发布、用例管理等工具,这极大地方便了开发和测试工程师的软件测试工作,使其免于安装、配置多个测试工具之苦。
结语
即使现在软件市场上已经有了各种软件测试相关辅助工具,人工测试依旧要花费大量的时间和金钱。本文研究的是一种以各种数据库作为工具库,依靠软件稳定的框架来进行自动化软件测试脚本组装,并完成测试,生成测试报告的自动化软件测试平台。相信在将来,这种平台一旦搭建起来,它的优点是可以延续下去的,而及时补充更新数据,也可以让平台越来越强大,最终,平台的实用性也会越来越强[4]。
参考文献
[1]王致富.基于样本程序和规则库的代码自动化检查工具[D].北京:中国科学院研究生院,2011.
[2]周惠群,左春,蔡玉宝.特定领域的数据参考模型建模方法研究[J].计算机工程与设计,2009,30(3):605-609.
[3]高远,杨欣,李凯.基于Jtest的自动化单元测试技术[J].指挥信息系统与技术,2018,9(4):91-95.
[4]杨俊,高远,唐芸.指挥信息系统软件GUI自动化测试分析及应用[J].指挥信息系统与技术,2014,10(5):82-85.