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

2022-04-20 07:06王贺涛段丽丽吴明雨
科教创新与实践 2022年3期
关键词:测试用例脚本软件测试

王贺涛 段丽丽 吴明雨

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

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

引言

传统软件测试策略有静态和动态两个方面。静态测试比较简单,它不测试软件程序本身,而是直接寻找程序中的明显错误以及评估代码的合理性、规范性。对采用的技术、设计文件和软件文档进行评审。动态测试则需要通过输入具体的示例对程序进行运行,看是否能得出预期的结果。包括了黑盒测试、白盒测试、灰盒测试,这里不做赘述。传统的软件测试经过多年的运用和不断地改进,已经相当成熟,并且有了自己的流程和标准规范。大数据软件测试实际上也是采取这样的策略,但在执行标准方面,更加侧重于其功能、性能和兼容性。

1自动化测试平台软件介绍

本文中所述的自动化测试平台的软件大致分为测试执行软件和测试用例编制软件。测试执行软件采用的是VECTOR的CANoe软件,该软件可以实现CAN总线的分析仿真及测试,可以同时进行多个网络节点模拟仿真,因此可以根据整车实际情况模拟整车网络架构,实现被测控制器全部网络环境模拟。另外,CANoe软件还可以编辑DBC数据库,DBC数据库中包含着被测控制器相关的网络节点,CAN报文和信号的层级关系,便于测试控制器的逻辑功能。CANoe软件中的CANdelaStudio插件可以编制诊断数据库CDD,CDD中包含着被测控制器的诊断服务以及可以实现的诊断功能层级关系,便于测试控制器的诊断功能。DBC和CDD都是实现自动化测试的基础。测试用例编制软件采用的是vTESTstudio软件,该软件用以进行测试用例的设计,加载DBC和CDD文件后,基于控制器ECU的测试需求,对相应的逻辑功能和诊断功能设计对应的测试步骤,编制完成并编译通过之后,生成的测试脚本文件可加载到CANoe中,进行测试执行。

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

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

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

2.2数据预处理验证

数据预处理验证是大数据测试的第一步,也叫作Pre-hadoop阶段。本阶段主要用来验证以下几个方面:首先,需要对各类关系数据库、日志系统、社交网络、互联网文本和文件等各种数据资源的收集进行验证,用以验证相关的资源能被正常地加载进系统;其次,对数据加载验证之后,需要对hadoop系统中的数据和源数据的一致性进行验证;最后,需要验证正确的数据被提取和被加载到HDFS(HadoopDistributedFileSystem)正确的数据节点中。

2.3诊断功能测试

诊断功能测试与逻辑功能测试的过程基本一致,都是先编制数据库,再编制测试用例,最后测试执行。诊断测试的数据库是用CANoe的CANdelaStudio插件编制诊断数据库CDD文件。编制测试用例的过程与编制逻辑功能测试用例的过程也基本一样,都是建立测试工程、建立测试单元、建立测试表、建立测试用例。只不过诊断测试用例编制时使用的命令不同,主要用到的是DiagnosticsService:诊断服务命令,用以添加诊断描述文件CDD中的所有诊断命令,向控制器ECU发送诊断需求报文;DiagnosticsUnlockECU:诊断解锁ECU命令,主要用以安全访问,解锁ECU,实现对ECU相应数据更改控制。

2.4 MapReduce验证

MapReduce验证,这个其实最早是由Google公司提出的,是一种面向大规模数据处理的并行技术模型,其通过各个公司和计算机工程师进行运用之后被认为是最简单和高效的大数据并行处理技术。MapReduce验证的核心思想是“分而治之”,它将整个任务分成了两个阶段:Map和Reduce。验证执行前先进行数据拆分,一个大的MapReduce作业,会被分解为多个小的Map任务。中间环节,可能会有Combiner处理Map生成的数据;之后数据到达Partitioner,将中间结果分配到对应的Reducer所在节点上;Reducer会处理中间数据,得到最终的结果。

结束语

自动测试过程控制方式是实现产品自动化测试过程中需解决的众多问题中的重要技术问题之一,本文举例阐述了两种常见的自动测试过程控制方式,对于实现铁路信号产品的自动测试有重要的借鉴意义。上述两种自动测试过程控制方式在铁路列控产品测试中均有成功应用,为保障铁路安全运行起了重要作用。

参考文献:

[1]刘玉珍.基于Markov链的Web应用系统测试用例生成技术[D].南京邮电大学,2020.

[2]彭洪超.基于Android系统的自动化测试用例的实现和优化[D].南京邮电大学,2020.

[3]李畅.5G基站自动化测试系统的设计与实现[D].中国科学院大学(中国科学院大学人工智能学院),2020.

猜你喜欢
测试用例脚本软件测试
软件测试方向人才培养“1+X”融合研究
大数据背景下软件测试技术的发展
自动推送与网站匹配的脚本
关于 Web 应用系统的软件测试的研究
面向多目标测试用例优先排序的蚁群算法信息素更新策略
举一反三新编
软件测试发展现状及前景的探讨
捕风捉影新编
基于TestLink的测试管理系统研究
测试用例集的优化技术分析与改进