哈尔滨航天恒星数据系统科技有限公司,哈尔滨 150028
摘要:软件测试是软件工程化中不可或缺的质量环节。随着自动化测试的技术和思想逐渐成熟,自动化测试已广泛应用于大量工程实践中。本文以此为切入点展开横向多维度分析,针对自动化测试框架选型策略、框架应用场景、脚本复用性和可维护性等方面展开论述并得出结论。文中提出一种基于PythonCLI的测试框架,该框架结合关键字技术和数据驱动技术,采用分层设计思想,运用DAO模式将测试逻辑与数据分割。
关键词:软件测试;自动化;方法;应用
软件测试能够有效保障软件全生命周期的质量要求,其中,自动化测试已广泛用于回归测试阶段[1]。自动化测试促使回归效率获得质的提升,并有效加强被测软件的健壮性,所以自动化测试框架的应用价值不言而喻,自动化测试框架的高效性、可复用性、可靠性成为最值得研究的技术方向。
1软件自动化测试
自动化测试是软件测试的一个组成部分,在软件工程规模逐渐扩大的背景下,软件产品的功能更加丰富,性能要求更高,更新换代速度更快,但软件开发的周期缩短,这就可能导致软件中会存在一些漏洞或是问题[2]。传统的测试模式已经难以适应现代测试的根本需求,促使测试技术在自动化测试领域的升级和优化。但是自动化测试是存在应用条件的,在开展自动化测试之前,需要有效分析软件测试大纲,明确自动化测试是否适用于该软件项目,自动化测试使用场景:
第一,需求变动不频繁。自动化测试不适应需求不稳定的软件项目。频繁的需求或业务流程变更会导致自动化测试脚本的维护成本直线上升,导致自动化测试不具备快速回归意义。因此,自动化测试更适用于需求相对稳定的软件项目。
第二,项目研发和维护周期长。首先,软件产品具有长生命周期,期间发布多个版本,产生大量回归测试的需求。同时软件产品需给开发自动化脚本预留充裕时间,并多次使用该测试脚本,那么才能展现自动化测试的优势。如果使用次数低于三次,那么脚本的人力成本较高。
对于短期的一次性项目,从投入产出比角度分析并不适合实施自动化测试,建议在项目中期对较稳定的功能进行自动化测试[3],用20%精力覆盖80%的测试用例。
图1 自动化测试决策流程 图2 自动化测试框架
2软件自动化测试的策略
2.1关键字驱动
关键字驱动方式是通过数据和关键字的结合,以数据形式对测试用例进行描述,通过数据表和关键字驱动[4]测试脚本。在关键字驱动测试任务中,把待测功能和执行逻辑、判断项写入数据表中,即完成该框架下测试任务。
2.2数据驱动方式
数据驱动方式主要思想是将测试用例与测试脚本相互分离,以模块化形式为基础的测试脚本库。测试脚本能够有效地执行大量测试用例,此类方式能快速、便捷的建立起一个测试用例库,测试脚本与测试数据的架构关系降低维护工作的压力。初始建立数据的解析性、测试逻辑性以及重用组件所需要花费大量的人力, 该框架较为适合一些大型的项目,且具备一定编程能力的测试工程师[5]。
2.3独立脚本测试
脚本测试分为线性脚本和结构化脚本。对于线性脚本来说,可以使用不同的编程语言,编写非结构化的脚本进行测试,脚本可以与被测系统实现直接的交互,可以快速实施测试。但是这类脚本容易受软件变化的影响,一旦软件系统改动,脚本也受影响,修改维护成本高。线性脚本不适合运用于大型的自动化测试。而结构化脚本具有各种逻辑结构,也可以使用函数调用功能,所以此类脚本的难度比线性脚本大,但结构化脚本的可维护性比较好。
2.4robotframework测试
robotframework是一款通用的自动化测试框架。其特点为基于python的扩展性, 利用python语言创建符合自己测试需求的关键字。Robotframework还具有强大的日志管理系统,提供HTML格式的测试报告和日志文件,测试报告提供每个测试用例的执行结果,所需时间和每个测试步骤的执行结果,从而可以快速找到失败的关键字,便于分析调试[6]。
3软件自动化测试的应用
基于PythonCLI的自动化测试框架是由可视化图形用户界面和Python脚本程序组成,图形用户界面承担用户操作的任务,Python脚本负责处理系统逻辑。其主要原理是通过界面编辑、设定关键字结合灵活、可复用的测试用例进行驱动,并且进行分层设计,上层是基本框架层,下层是通信传输层和测试执行层,利用多线程技术能够使各个功能同时进行。并且从低层向高层来提供相关服务的一种模式,能够使自动化的测试工作达到更高效率[7]。该框架完成功能自动化测试的同时还通过Request模块实现基于响应时间的性能测试。测试用例以HTML为载体将边缘测试和等价测试相结合作为测试输入。
4结束语
软件自动化测试对于保障软件自身的功能性、可靠性、兼容性都有积极的作用。在不同测试阶段,可根据实际情况,如项目节点、人员数量、技术特点等维度进行分析选取不同测试方法及框架。进行实践时,要充分理解测试需求,做好测试方案设计,准备相应的测试资源,合理完成测试工作。
参考文献:
[1]蒋愈勇.软件自动化测试理论及其实现[J].网络安全技术与应用,2014(09):85-88.
[2]孙杨.软件自动化测试集成系统的研究与实现[D].陕西:西安电子科技大学,2012.
[3]陈晔.关于软件设计可靠性自动化测试仿真研究[J].计算机仿真,2017,34(06):281-284.
[4]赵旭瑞.自动化测试方法在目标识别软件中的应用[J].电子世界,2021(12):176-177.
[5]郭佳,金鑫,邓煜.嵌入式软件PIL自动化测试技术研究[J].汽车实用技术,2021,46(12):64-67.
[6]开金星.软件自动化测试技术研究[J].信息系统工程,2021(01):76-77.
[7]吴军.智能家电控制器自动化测试系统设计与实现分析[J].仪器仪表标准化与计量,2020(06):42-46.