通信行业软件系统自动化测试平台的设计研究

  • 来源:互联网周刊
  • 关键字:通信软件,自动化测试,测试脚本
  • 发布时间:2023-11-03 19:08

  文/陈阳 中国移动通信集团广西有限公司

  摘要:随着现代移动通信技术的快速发展,通信行业软件产品在各个领域中得到了广泛的应用,软件的质量成为用户更加重视的问题。传统人力方式的通信软件测试方法,既费时又费力,而且无法充分保障软件测试的准确性、缩短软件开发周期和节约资源。自动化测试技术是现阶段软件测试研究的一个热点。为了解决通信业务软件测试过程中存在的问题,本文结合移动通信软件系统和自动化测试工具的应用,以解决自动化测试平台的应用问题。

  关键词:通信软件;自动化测试;测试脚本

  引言

  自动化测试指的是指软件测试的自动化,把以人为驱动的测试行为转化为机器执行的一种实践过程,通过软件和硬件的测试方式,大量节省人力,为保障软件质量,减少重复性测试工作,自动化测试已被广泛运用。

  1. WEB自动化测试介绍

  软件回归测试作为一种具有反复测试行为系数较高的软件测试方法,软件的测试贯穿了整个软件开发的生命周期,对包含了阶段性的软件产品进行了验证及活动过程的确认,充分解决了软件中存在的问题、用户需求和不一致性等[1]。利用自动化测试工具等或者其他方法,结合回归测试运行模型,能够实现对软件的自动化测试,以达到缩短软件测试周期、提高软件性能、保障软件质量的目的。因此,自动化测试能够有效反映出软件测试的效率,降低测试时的成本消耗,并且还能够解决某些无法手动执行的测试项目,对其进行自动化测试。自动化测试是利用脚本来实现的,只需要对测试脚本进行修改,实现自动化测试,由此降低某些项目的测试工作量,提高测试效率。简单来说,WEB自动化测试能力是通过模拟人在WEB界面的操作,实现WEB系统的业务全流程自动化测试。

  2. 自动化测试遇到的问题

  在被测试系统重新发布时,因为被测系统服务停止,自动化场景将呈现大范围出错。现有的应对方式有以下两种,但均有缺点:(1)无法停止场景的继续执行,任由场景报错,只能寄希望于被测系统能尽快启动完成,被测系统重启完成后,继续执行剩下的场景,执行完成后,再分析和重新执行出错的场景。但这样会产生大量出错的场景,产生脏数据,给后期分析测试结果增加难度,并且耗时,大量出错还容易掩盖真正的系统故障,极大提高了测试结果的分析难度和故障遗漏的概率。(2)人工到每一台执行机中,强行终止计划执行,然后被测系统重新发布完成后,重新下发整个测试计划。目前每一次自动化测试场景已经达到了1000个以上,需要30台以上执行机执行。需要到每一台执行机中去强制停止计划,耗时耗力。如何在各种突发问题出现时暂停自动化测试再启动确保正常执行,这是当前急需解决的痛点。

  3. 通信行业软件系统的自动化测试平台设计研究

  为了解决该痛点,我们设计了自动化测试平台的“刹车”功能,即自动化执行的暂停重启。该功能用于出现各种意外问题时进行的中断执行,待问题解决后可以再次正常启动[2]。其他功能包括断点调试、条件暂停、手动干预等。这些功能提供了灵活的暂停执行方式,使测试人员能够在需要时进行调试、验证、人工干预等操作。通过断点调试,测试人员可以在关键位置暂停执行,检查环境和变量值;条件暂停允许根据特定条件暂停执行,以便进行验证;手动干预功能让测试人员能够手动暂停执行,进行人工操作。基于自动化软件工具SilkTest特有的4Test语言开发,并且在SilkTest工具的自动化框架基础之上进行改造,自动化测试管理平台下发测试计划后调度SilkTest生成工程文件,在自动化执行流程当中的用例初始化阶段进行定时检测暂停标识,执行机中获取当前计划执行的测试数据回传到自动化管理平台服务器,再次启动将会进行先进先出原则的排队机制有序执行,测试数据、测试报告依据获取的暂停前状态标识正常衔接,具体设计框图如图1所示。

  3.1 一键暂停标识模块

  测试人员决策是否暂停,可对暂停标识进行配置,执行机中探测执行暂停标识,可支持错开时间随机处理暂停,统一为执行机暂停自动化,保存测试计划当前进度,保存待下次启动队列排队。

  (1)在测试过程中的关键阶段TestcaseEnter和TestcaseExit中,添加条件判断语句。根据特定条件判断是否满足暂停测试的条件。

  (2)如果满足暂停条件,则触发暂停操作。通过使用暂停标识作为依据,在一定的时间范围内循环获取暂停标识,只要反馈还处于暂停状态,继续等待,并不再继续执行用例步骤,从而实现暂停测试执行的目的。

  (3)在暂停期间,可以记录相关信息,如计划的RunID、PlanID、案例名称、场景名称、暂停时间、测试结果等,这些记录有助于后续的跟踪和分析。

  3.2 保存执行状态模块

  利用记录相关信息,如计划的RunID、PlanID、案例名称、场景名称、暂停时间、测试结果等,有助于后续的跟踪和分析。创建一个数据表用于记录暂停反馈信息,包括暂停时间、测试结果等字段。在测试脚本中,当触发暂停操作时,将相关暂停反馈信息插入到数据表中。

  3.3 暂停环节模块

  记录当前测试计划暂停的相关信息,同时,记录一个待启动的计划队列,按照测试工号为主的对应测试计划RunID排列,以便在下一次启动计划时按照队列顺序有序启动。在测试脚本的TestcaseEnter和TestcaseExit阶段处理暂停操作[3]。在TestcaseEnter阶段,检查是否存在待处理的自动化暂停标识,并在数据表中记录当前测试计划暂停的相关信息,同时,记录一个待启动的计划队列,按照测试工号为主的对应测试计划RunID排列,以便在下一次启动计划时按照队列顺序有序启动。在TestcaseExit阶段,再次检查是否存在待处理的自动化暂停标识,处理的逻辑依然是记录计划暂停的相关信息和计划待启动的队列。

  3.4 再次启动计划模块

  处理已存储的暂停计划相关信息,维护一个待启动的测试队列,使用先进后出(FIFO)的方式。再次启动执行计划,在TestcaseEnter阶段,检查自动化暂停标识是不是已开放,如果暂停已经开放,不再循环等待,开始继续执行流程。当重新启动测试执行时,从关联测试工号的待启动队列获取首个RunID,并根据当前测试计划的RunID情况进行判断。如果符合当前测试计划的RunID,则开始执行,否则继续暂停,继续循环获取暂停标识是否开放。恢复后继续执行测试,在测试场景的具体步骤中,直到已完全打开登录系统后的页面,才将待启动队列中的首个RunID移除。其他执行机同样获取待启动队列RunID,直到队列中的所有RunID都被处理完毕。在重新启动执行时,为避免自动化测试工号的登录冲突,可以在启动之前设置一定的随机时间作为延迟测试工号的登录。使用合适的函数,如一个固定时间加一个随机时间数,在启动之前等待一段时间。

  3.5 暂停异常处理模块

  在测试计划中捕获可能引发暂停、重启动的异常,例如特定的错误或条件。当出现异常时,测试计划会暂停执行,并可以在异常处理程序中定义相关操作,例如记录错误信息、生成报告或触发其他操作。

  3.6 日志信息处理模块

  在软件测试工作开始之前,传统的通信软件测试平台的操作步骤和过程非常复杂,场景较多。因此,为了解决测试过程中存在的各种复杂问题,需要对自动化平台当中的日志信息进行文件保存,以此能够完成对测试结果的标准进行对比。

  4. 测试结果与成效

  4.1 测试工具

  为了进一步验证本文开发设计功能模块的可行性,本文选择使用Silktest作为测试工具,SilkTest是一款对企业级应用进行功能测试的产品,可用于测试Web、Java或是传统的C/S结构。SilkTest 提供了许多功能,使用户能够高效率地进行软件自动化测试。这些功能包括:测试的计划和管理;直接的数据库访问及校验;灵活、强大的4Test 脚本语言,内置的恢复系统(Recovery System);具有使用同一套脚本进行跨平台、跨浏览器和技术进行测试的能力。

  4.2 实践测试与成效分析

  实践测试结果见表1,其结果支持一键配置自动化暂停标识,同时支持统一调度执行机中断/执行,通过中途暂停自动化执行,可以调试和排查问题、提高测试效率和允许人工干预,还可以提供灵活性和可控性、适应多环境测试以及验证测试结果等。

  实践证明本设计具有技术先进性和独立性,此能力可有效解决自动化测试中断后不能再续的痛点。其价值体现在调试和排查问题、提高测试效率、提供灵活性和可控性以及适应多环境测试等方面,可以帮助测试人员更好地管理测试进度和资源,并提高自动化测试的质量和效果。本方案的成果好处主要体现在以下几个方面:

  (1)提高测试效率:断点和继续执行功能可以避免重复执行已经完成的测试用例。当遇到问题或异常情况时,自动化测试可以暂停,而不需要从头开始执行整个测试计划。这节省了执行时间,提高了测试效率。

  (2)精确定位问题:通过刹车启停方案,可以在测试过程中刹车暂停,使得测试人员可以精确地定位问题所在。测试人员可以检查失败的测试用例、错误日志等信息,以便更准确地分析问题的根本原因。

  (3)减少资源消耗:刹车启停方案可以减少资源的消耗。当出现问题时,可以及时暂停测试,避免产生脏数据。

  (4)提高测试准确性:被测系统如果遇到异常情况(如重新发布),未有本方案前,自动化测试场景会大范围报错,大量的报错加大了测试人员分析结果难度,极大可能掩盖了系统真正的故障。采用本刹车启停方案,则避免了此类大范围报错的发生,测试人员可以集中精力分析真正的出错故障,提高故障检出能力,有效提高测试准确性。

  结语

  综上所述,自动化软件测试是充分保障软件质量的一种手段。因此,根据自动化测试工具的基本原理,以及自动化工具自身可灵活扩展的一套自动化框架,设计了一种自动化测试暂停重启方案并已开发完成,本文详细介绍了该平台的主要功能设计与实现。总体来说,通信行业软件系统的自动化测试平台设计需要结合具体的业务需求和技术环境进行综合考虑,通过科学合理的设计和实施,可以提高软件的质量和效率,降低人力成本,为企业的研发和运营带来巨大的价值。

  参考文献:

  [1]刘丽丽,杜永锋.通信设备技术指标自动测试与故障诊断系统设计[J].软件, 2023,44(5):52-56.

  [2]王奚,王新月,李航,等.面向PLC产品的自动化测试系统平台设计与实现[J].自动化仪表,2022,43(5):8-11,19.

  [3]傅瑞华.面向测试用例生成的自动化方法研究[D].成都:四川大学,2022.

  作者简介:陈阳,本科,工程师,研究方向:开发测试。

……
关注读览天下微信, 100万篇深度好文, 等你来看……
阅读完整内容请先登录:
帐户:
密码: