基于接口仿真的雷达软件测试自动化技术研究与应用
发布时间:2021-06-09
摘要:嵌入式软件在雷达装备中发挥核心作用,采用传统的用户界面动态测试手段,难以实现充分的软件测试,易造成缺陷遗漏.本文针对基于接口仿真的软件测试技术展开研究,提出了适合于雷达软件的接口仿真自动化测试框架.同时针对雷达软件接口测试中,测试数据的结构建立与生成环节存在操作数据多、易出错、效率低等问题,以雷达软件接口定义头文件为输入,通过自动解析头文件结构体定义,为雷达软件接口仿真测试框架自动化建立通讯报文结构;总结定义了雷达软件接口测试数据设计的一般规则,并通过规则分析自动生化成测试数据,在有效提升雷达软件测试的覆盖率及缺陷检出率的基础之上,进一步提升了雷达软件接口测试的自动化程度.最后通过雷达软件测试典型项目的实例研究,验证雷达软件接口仿真测试自动化框架的效果.
关键词:雷达软件;嵌入式软件;软件接口;测试自动化;测试仿真环境
0引言
近年来,雷达产品更新换代日逐渐加快,在软件定义装备发展的大趋势下,工业部门已开展多种软件化雷达研究,软件在雷达装备中的比重日益增大,软件质量对雷达装备质量而言至关重要.采用传统的用户界面动态测试手段难以实现充分的软件测试,易造成缺陷遗漏.由于接口原因直接或者间接导致软件缺陷占整个雷达软件系统缺陷的比重为20%到30%左右[1],而其中边界和异常数据是引起软件运行故障的最重要原因之一[2].
从接口端对雷达软件产品展开测试,模拟各种边界/异常数据的收发测试场景,可以提升软件测试的充分性,进而提升雷达软件的可靠性[3].而在雷达软件接口测试工作中,由于雷达软件接口形式多样、结构复杂[4],雷达软件接口测试工作量增长迅速,急需研究雷达软件接口测试的自动化方法,用以提升测试执行工作效率,从而更好地保障雷达软件质量[5].
本文将接口仿真技术应用于雷达软件测试,从而使雷达软件摆脱硬件环境的约束,满足各正常和异常场景的测试需求.此外,在接口仿真测试环境准备阶段中,纷繁复杂的数据结构建立和生成工作目前尚由人工操作完成,为此本文提出了一种自动化的解决方法,在有效提升雷达软件测试的覆盖率及缺陷检出率基础上,进一步提升了雷达软件接口测试的自动化程度,有效保障了雷达软件的质量.
1相关工作
目前,对测试自动化的相关研究非常多,王乾宇[6]提出了基于TestQuest测试工具的一套软件测试自动化方法和测试流程,在“虚拟维修训练系统”展开实例验证.在武器装备国产化道路上,国产操作系统是构建自主可控的信息安全体系的关键,其本身的稳定性、可靠性和安全性至关重要[7].在操作系统研发过程中,全面严格的测试验证成为必需,同时,为减少手工测试的劳动量和出错率,按照预定计划实现自动化测试,是操作系统研发测试验证的必然趋势和要求.通过自主开发以及引入完善、综合应用主流商用或开源软件测试工具,研究构建由测试管理、自动化测试、缺陷管理等子系统组成的国产操作系统测试体系,实现测试全过程管理统一高效的国产操作系统自动化测试平台,保证国产操作系统研发和维护时的质量可靠性,以满足建立完整的国产操作系统生态链的需要.
在雷达软件测试领域,同样对软件的稳定性、可靠性和安全性有极高的要求,建立自动化测试平台以保证雷达软件质量的可靠性十分必要.
吕江涛等人[8]围绕软件可维护性设计的7项评价标准,结合软件生命周期的各个阶段,系统全面地阐述了雷达软件可维护性设计的若干技术措施,提出了综合运用开放式软件架构、软件中间件技术等多种方法,从可理解性、可修改性、可移植性等角度全面提高雷达软件的可维护性.提升雷达软件的可维护性更多的贡献在于提升软件研制效率,节约时间成本,而非减少软件缺陷、降低软件故障发生率,雷达软件的安全性和可靠性仍然缺少更有力的保障;张其政等人[9]提出了以数据为驱动,对雷达产品软件进行定量度量的方法,并以雷达产品软件质量量化分析为基础开展质量管理.雷达软件质量度量技术的作用在于客观分析和评价雷达软件的质量,为软件质量管理提供依据和指导,借助管理的手段提升雷达产品软件质量;孙俊若等人[10]深入分析雷达系统软件的缺陷分布规律,选择与雷达系统软件缺陷预测相关的度量元,通过对雷达软件故障数据集和系统软件失效模式进行分析,构建了雷达系统软件缺陷预测模型,为预防雷达系统软件缺陷打基础,但该研究尚处于初级阶段,缺乏工程实践应用.
以上方法紧密围绕提升雷达软件质量为中心,从后期维护、研发管理以及预测预防多个角度展开相关技术研究,可以减少雷达软件缺陷的产生,但都无助于发现和修复软件缺陷,无法解决直接影响雷达软件质量的根本问题.即使采用上述方法将软件缺陷降低到只有一个,而这一个缺陷若未被检测出并进行修复,也同样对雷达软件质量存在不可估量的影响.
2基于接口仿真的雷达软件测试自动化框架技术
嵌入式软件封闭抽象、动态可变、软硬件耦合性强,因此,嵌入式软件在集成完成后到投入实际使用的两个阶段之间,缺乏一种有效的测试手段.在嵌入式软件集成阶段,由于缺少交联系统,无法完全覆盖嵌入式软件的时序、接口等测试,容易造成缺陷遗漏.而在嵌入式软件的实际使用阶段进行测试,面临两大问题的挑战:一是系统硬件设备数量和性能有限,无法满足大数据量等极限强度测试条件的需求;二是如果嵌入式软件在实际环境中出错,存在损坏硬件、影响整体系统运行甚至危害人身安全的风险,差错、纠错成本较高.
软件接口仿真测试环境旨在对嵌入式软件提供实时的、可闭环的、非侵入式的测试,支持功能性测试、边界测试、压力测试等多种测试类型,能够提供仿真模型建立、I/O设备配置、测试脚本及数据生成、测试运行及状态监控、测试结果实时显示、测试结果记录、测试结果分析、测试回放及数据分析处理、软件可靠性评估等多种功能.因此,通过基于接口仿真的方法对雷达软件进行测试,可以克服由于手工测试带来的巨大的人力、物力和财力的消耗,同时能够提升雷达软件测试的充分性.
2.1软件接口仿真环境特性分析
军用雷达系统具备硬件组成类型多、系统任务并行度高、数据处理实时性强等特点,因此,用于雷达软件测试的接口仿真环境应具备以下特点[11]:
1)供实时多任务运行
软件接口仿真环境既具备实时系统的一般特性,能够提供并支持测试激励施加和测试结果收集、模型处理数据与算法实现、测试过程监控界面等多项测试相关功能同时运行,同时为满足嵌入式软件测试的需要,又具备其独有特性,例如高可靠性、高实时性、输入输出的确定性、ISA和PCI设备动态可配置等.
2)测试环境仿真虚拟化
软件接口仿真环境以数字仿真的方法对被测嵌入式软件的运行环境进行仿真,模拟外部硬件系统或软件系统与被测嵌入式软件进行通信交互,使得被测软件可以在脱离特定硬件环境约束的条件下执行测试,仿真环境相较于真实运行环境而言更易于测试人员操作、控制,被测软件的运行也更加便捷、灵活.
3)仿真环境通用性强
当前雷达系统是由多个配置项软件组成的,不同雷达系统的配置项组成与交互方式各不相同,且各配置项软件所依赖的硬件平台也不尽相同,因此软件接口仿真环境要在多个层次提供通用性的解决方案,使用户能够通过灵活的环境设置,实现对不同系统的测试[12].在硬件通讯设备仿真层次,采用虚拟设备驱动(VDD)技术,支持添加不同的I/O设备;在网络体系结构层次,在基本的分布式体系结构下,可以通过扩展节点,从而实现对复杂系统的测试;在被测系统结构仿真层次,可通过通讯协议设置、接口格式定义等配置实现不同系统的构型;在测试环境开发层次,采用通用的测试用例及测试脚本开发环境(TC-SIDE),提供统一的测试用例和测试脚本开发方法和语言,便于测试用户使用和移植
.2.2基于接口仿真的雷达软件测试流程
基于接口仿真的雷达软件接口测试,是以仿真的方式模拟外部系统与被测的雷达系统之间进行信息交互,通过测试数据的收发以及对测试结果的分析,完成对被系统的测试,基于接口仿真的雷达软件接口测试工作流程如图1所示.
基于接口仿真的雷达软件接口测试主要通过以下步骤执行:
1)测试环境仿真建模
以软件接口设计文档为输入,构建各雷达分系统软件关联环境模型,定义输入输出属性,正确反映出各分系统软件的数据交互关系,同时要将各个分系统之间的通讯协议映射到仿真模型的连接属性中,雷达软件接口测试仿真模型如图2所示.
2)测试脚本编写
测试脚本是整个软件测试正常运行的“剧本”,是驱动整个软件测试正常运行的关键因素.根据需要执行的测试用例编写相应的测试执行脚本,由实时调度程序驱动测试脚本解释器对测试脚本进行实时解释,动态生成并分发测试数据到各仿真模型,同时通过解释器、各仿真模型与被测软件之间的交互,对测试反馈进行处理,从而达到测试的目的
3)测试数据准备
雷达软件接口测试过程中需发送大量的测试数据,为提升测试执行效率,可以将预进行测试的数据全部存储在数据源文件中,在测试执行过程中通过载入数据源文件实现测试数据的读取和发送,从而完成测试
.4)测试执行
通过模型和脚本的编译构建、链接完成测试环境初始化并开始执行测试,同时在测试执行过程中实时监控测试执行状态、显示测试结果.
5)测试结果分析与评估
根据设置采集方案记录相应的返回数据,测试人员可利用采集的数据进行数据回放与分析,依据分析结果对软件的可靠性进行评估.
相关期刊推荐:《测试技术学报》本刊是以基础理论、应用科学和工程技术为主的学术期刊,创刊于1986年。重点报道有关测试技术的重点科研项目、基金项目的研究成果以及兵器及民用测试的应用技术,内容包括:声与超声测量;在线测试;测量仪器;ADC,DAC和数据采集;试验技术与标准;动态测试系统;环境测量;数据压缩;人工智能与神经网络;电磁测量;微波测量;测控技术与总线技术;噪声与振动测量;遥感、遥测与遥控;VXI仪器;无损检测;传感器技术;微型机械电子系统;分析测试;材料测试;软件测试等。
3测试数据结构自动建立与生成技术研究
在软件接口仿真环境搭建与准备接口测试数据环节,仍需手工操作,由于雷达软件测试项目的接口数量和规模都相对较大,手工操作存在数据多、易出错、效率低等问题,为此,本文针对如何自动化解决这个问题展开研究.
3.1测试数据结构自动建立
当前雷达装备的大多数嵌入式软件系统依托C/C++语言开发,软件通讯接口的定义是通过头文件中的结构体实现的,这为软件编码提供了方便,但是无法直接在接口仿真环境中导入作为通信报文结构的定义.为此,本文提出一种从头文件到仿真环境通信协议自动化定制的方法,主要步骤如下:
1)解析接口定义头文件
在头文件中,软件接口是通过结构体进行定义的,设计师通常将多个软件接口间复用性较高的数据字段定义为子结构体,复杂的软件接口往往涉及多层嵌套,因此,需要对数据结构进行迭代解析,逐层展开嵌套结构,最终获得软件接口的完整结构;
2)解析接口仿真环境配置文件
接口仿真环境中的通讯接口定义是通过环境配置文件的定义实现的,一般的仿真环境配置文件以可扩展标记语言编辑和存储、解析接口仿真环境配置文件的标记结构、获得仿真环境中通讯接口的分布情况;
3)通讯接口结构导入
将从头文件中解析得到的软件接口元素依次按照仿真环境模型配置文件的语句结构,写入到相应的通讯接口中,从而脱离手工操作,通过自动写入底层配置文件,完成软件接口数据的自动建立,有效提升接口测试的自动化程度,降低人为操作的错误率.
3.2测试数据自动生成
在对雷达软件接口进行接口测试数据设计时,要针对该接口所处理的每一条报文的每一个元素进行分析和设计,单一元素要进行边界值分析及异常值分析,测试数据设计工作量庞大,传统人工分析的方式容易造成设计数据遗漏,手工生成测试数据的方式工作效率较低.
通过总结历史雷达软件接口测试数据分布情况与设计方法,本文提炼了软件接口测试数据设计规则:
1)有效数据
依据接口元素的有效值定义,若为枚举类型数据,则该元素的有效值应包含所有的枚举值;若为一定范围内的连续值,则任意取有效范围内(不含边界)的任一值.
2)边界数据
依据接口元素的有效范围,取有效范围的边界值以及上下边界的越界值共6种数据作为该元素的边界测试数据,如若接口元素的有效范围为[min,max],则边界数据为min-1,min,min+1,max-1,max,max+1.
3)异常数据
异常数据为接口元素有效值或有效范围以外的值.
4)异常报文
异常报文是指报文长度不符合接口定义的报文,主要包括以下两种形式:测试报文长度小于有效报文长度和测试报文长度大于有效报文长度.
依据以上定义的数据生成规则,通过自动化解析软件接口中各元素定义的有效值范围,自动化的生成雷达软件接口测试数据[13,14],具体步骤如下:
1)建立软件接口数据定义模板文件
以软件接口定义头文件为输入,解析生成预定格式的接口数据定义模板文件(简称模板文件),模板文件中包含接口元素名称、元素数据类型、元素枚举值、元素有效范围等信息(如图3所示),各元素有效范围按照数据类型的默认范围自动生成,模板文件支持人工编辑、修改枚举值、有效范围等信息.——论文作者:刘宇1,刘畅2,吴辉1,柳溪1