卫星地球站监控软件自动化测试
2019-09-10安茂波王松考
安茂波 王松考
摘要:卫星通信地球站监视控制软件实现对地球站内各类设备的综合管理,管理的对象多、设备参数繁杂,软件在交付前需对设备参数的覆盖程度、各参数值域的正常及异常处理能力等进行全面测试。当前使用的测试方法主要是人工测试,测试时间长、用例数量有限,很难做到对所有设备参数的全域测试。结合工程应用,设计了基于模板的地球站监控软件自动测试工具,依据设备模型文件动态加载生成包含测试用例、测试规则在内的测试模板,并基于各个参数定义的类型、值域等实现监控参数的全覆盖测试,记录测试过程,生成测试报告。
关键词:地球站监控软件;自动测试;模型文件;联动参数
中图分类号:TP391.4文献标志码:A文章编号:1008-1739(2019)10-69-3
0引言
卫星通信地球站监控软件主要负责对地球站内各种通信设备进行集中的监视和控制,是实时掌握地球站整体运行状态、及时处理异常问题和提高地球站智能化管理的重要保证[1]。地球站监控软件需要监控的设备数量多、种类多、协议差异性大、专用性强,通过人工手动或者常用的LoadRunner、TestBed等商用测试工具难以实现对地球站监控软件监控参数的全覆盖测试[2-3]。
基于地球站监控软件松耦合、组件化的开放体系架构[4],在不修改现有软件主体的情况下,通过构建测试模板,设计实现一种自动化的软件测试方法,具备动态生成测试用例、自动生成测试报告、测试完毕自动恢复原有参数值的能力,在有效完成全覆盖测试的同时,大大节省测试周期,提高工作效率。
人工定义全部测试或部分测试,测试期间可随时终止测试用例并自动恢复参数,并可随测试自动计算平均控制响应时间和最大控制响应时间。
1地球站监控软件
1.1软件组成
地球站监控软件主要实现对地球站被监控设备的集中监视和控制,为操作维护人员提供简单、易用、智能化的地球站管理软件,包括核心管理服务、设备模型单元、操作终端、网管代理、数据库服务、软件自维护、软件自维护及数据总线服务,如图1所示。
核心管理服务单元实现软件模块的加载、线程调度、消息转发时序控制控制;设备模型单元实现参数解析、指令生成等设备监视和控制功能的封装;操作终端软件单元为操作维护人员提供友好、易用的操作界面;数据库服务单元负责存储监控过程中生成的给类事件、参数变化、告警故障等信息;数据总线服务单元负责在各软件单元之间按统一的规范进行信息交互和流转;自动化测试单元负责根据被监控设备数量和导出的XML模型文件生成测试用例[5],发送查询指令和设置指令,生成测试报告[6]。
1.2参数属性分类
①对于设备的各被测参数,被赋予只读、单设置、可读写及禁用等访问属性[7]。对于单设置、禁用属性的参数,由于无法闭环确认,不自动测试,需人工验证确认。
②对于整数类型和浮点数类型,测试过程按参数的上限值、下限值及步进值进行遍历测试。
③对于枚举类型,根据设备模型配置文件中已知的值进行遍历测试。
④对于字符串类型,按参数格式化中约定的字母组合进行遍历测试。
1.3联动参数
在许多被监控设备中,部分监控参数并不是孤立的,而是相互关联、相互制约,一个参数值的变化会影响其他几个参数的变化,这些相互关联的参数就是联动参数。对于具有关联关系的联动参数,软件会动态建立基于规则的临时参数列表,在测试完成后释放。
2自动测试软件
2.1实现原理
自动测试软件单元基于地球站监控软件中配置的设备类型、数量、各类设备内参数、参数类型及参数属性等信息生成测试模板,并按规则进行自动执行和生成测试报告。
当启动自动测试功能后,自动测试软件单元首先循环检索地球站监控软件中已经加载运行的被監控设备配置信息,将标识设备的指针插入动态测试队列中。测试队列构建完成后,自动测试软件依次对测试队列中所有测试节点调用相应的测试函数,并生成报告,测试过程如图2所示。
2.2测试方法和功能
①常态化测试:软件自动发现整站所有在线设备,并依次根据设备关联的测试模板进行测试,对每个设备测试完成后自动生成测试报告保存到磁盘。
②指定设备测试:按需对单台或多台指定的设备执行测试。
③指定参数测试:操作员可有选择地针对一个或者几个参数进行遍历测试,以减少测试时间。
④保存/加载当前参数:测试软件在开始测试前将当前的工作参数存储到文件中,在测试完成后,可一键将原参数配置恢复到被测试设备。
⑥强制终止测试:测试过程可按需由操作员强制终止,软件只生成针对已测试设备的测试报告。
3测试流程
3.1自动测试的主要流程
自动测试时,软件首先对所有在线设备进行检查,确认对应的设备工作状态是否正常。测试单元根据站内配置的设备生成测试队列,并循环所有参数对可控制参数生成待测模板。同时根据预先定义的联动关系,对测试序列进行定义,先测试无联动关系的参数,再测试联动参数,具体测试流程如图3所示。
①被监控设备在线状态检测,建立在线设备列表;
②读取设备模型文件,生成测试用例集合(包括联动测试用例和非联动测试用例);
③向被测试设备发送查询命令,并根据查询响应分析,对设备当前的工作状态进行正确性检查;
④依次测试无联动关系的参数;
⑤依次测试有联动关系的参数;
⑥恢复参数值。
⑦生成测试报告并按约定进行存储。
3.2单个值的基本测试流程
①首先将该值发送到设备等待控制响应,如果控制失败则退出测试,否则继续测试。
②等待当前参数值是否与控制值一样,如果超时则直接返回失败。
③如果当前值与设置值一样则返回成功。
3.3有联动关系参数的测试流程
有联动关系的测试与基本测试流程类似,只需在发送测试命令前检测待测试值是否符合参数联动关系。如果符合,按照基本流程执行;如果不符合,测试需要计算设备当前参数需要改动哪些参数才可以测试当前值;如果计算测试值,则先对这些值进行测试,全部成功后再发送当前参数的测试,否则输出无法测试该节点的报告信息。
3.4测试报告
测试完成后,软件自动生成测试报告,报告内容主要包括起始时间、结束时间、测试设备数量、参数数量、用例数量、正常测试用例数、异常测试用例数及原因等,如图4所示。
4应用效果
自动化测试软件单元已经在工程应用中得到广泛使用,工作效率明显提升,表1是在工程应用中分别对调制解调器、TDMA终端、功放等设备进行对比后的测试记录表。
5结束语
本文针对站内监控软件在软件开发、版本更新、软件部署和设备更换等过程中,需要对设备监视和控制功能的正确性、完整性进行全面验证的应用需求,在不影响监控软件结构的情况下,开发设计了基于设备模型的自动测试软件单元,降低了地球站监控软件测试复杂度,缩短了测试时间、提高了测试的效率及覆盖率,并在多个项目中得到推广使用,取得了非常好的效果,并为其他软件的测试工作的开展提供了示范作用。
参考文献
[1] Gerard Maral,Michel Bousquet.Satellite Communications Systems 5th Edition[M].Chichester:John Wiley & Sons Ltd., 2009:432-434.
[2]韓柯,杜旭涛.软件测试[M].北京:机械工业出版社,2003.
[3]赵瑞莲.软件测试[M].北京:高等教育出版社,2003:182-195.
[4]安茂波.基于模型的卫星通信地球站监控系统设计与实现[D].西安:西安电子科技大学,2013.
[5]梁月圆.软件自动化测试方法研究及系统开发[D].西安:长安大学,2013.
[6]李凌.广播电视地球站综合设备管理系统的设计和实现[D].南宁:广西大学,2015,65-72.
[7]杜江,刘枫.导航地球站软件接口测试用例设计[J].时间频率学报,2015,38(4):235-242.