李芳芳,余慧敏,魏冬冬,陈琦,严漪敏
(上海航天电子技术研究所,上海,201109)
控制计算机是控制系统的核心部件之一,是控制系统的计算中心、控制中心和通信中心,它收集各种传感器信息,按照设定的控制算法进行快速解算,按时序向执行机构发出各种控制指令以完成系统的姿态控制等任务,控制计算机的性能直接影响到武器的整体性能,其工作的可靠与否直接影响发射的精度乃至发射的成功与否。
在干扰作用下控制计算机系统会出现除输入输出不正常的情况外,甚至会出现无法检测出信号情况,导致工作状态紊乱,故在有干扰的情况下,抗干扰算法在控制计算机中起着至关重要。因此对控制计算机软件抗干扰算法的测试是必不可少的过程,对其测试方法的研究也随之而来。
通过labview设计平台,定制输入,根据目标输入的特点绘制输入信号,用于以后的测试。
优点:操作简单,易于控制;缺点:无法给出准确目标位置,无法精确定位错误原因。
直接在测试单元模块前,修改功能块的输入值,运行软件查看输出值是否为期望值,类似于二方测试中的单元测试,单元测试是对软件基本组成单元进行的测试,在C语言中单元指函数或者子过程,在类单元测试中可以对多个函数同时进行测试。
优点:无需考虑前端程序影响,只考虑待测试功能项,提高测试效率;缺点:无法体现抗干扰的整个过程,插桩麻烦。
某型号控制计算机通过FPGA采样,再经过一系列的算法获得脉冲的基本信息,在后续算法中通过对基本信息的处理、融合获得有效信息来形成一系列的控制指令。为了尽可能真实地体现控制计算机的工作原理,从原始数据着手,通过在中断程序、初始程序以及主函数中写代码,通过CCS编译器的数据load功能,向添加的基本信息数组所在的地址,注入写好的基本脉冲信息,根据不同的测试需求设置不同的脉冲信息,具体操作方法如下图1-图3所示。
图1
图2
图3
图4 抗干扰算法流程图
数据注入未破坏软件原有的运行路径,只是改变了中断脉冲采样的结果,这点和插桩以及上面提到的“类单元测试”方法有本质区别的。
优点:能给出脉冲位置,精确定位错误位置,能真实体现抗干扰的整个过程;缺点:数据准备工作比较复杂,需耗费大量时间。
抗干扰算法的简要流程图如下图4所示。
现选择性介绍现有三种抗干扰测试方法在各部分功能中的应用的优缺点。
本功能项为验证FPGA软件与DSP软件接口的正确性,采样时序的正确性,而数据注入方法与“类单元测试”方法均是通过仿真器修改DSP软件,对软件的流程和算法进行测试,无法完成与外界接口的测试,故此功能项只能采用脉冲定制的方法来进行测试。
2.2.1 脉冲形状有效性判断
程序中根据脉冲的基本信息对脉冲进行分类,脉冲基本信息包含的脉冲幅值、宽度等,对脉冲进行识别时,各个条件下脉冲各个基本信息满足、不满足的情况均要考虑到。
某控制计算机抗干扰算法软件,考虑到各个条件,共需设计40个用例,即需要设计40个脉冲,若采用数据注入的方法,可通过注入准备好的含脉冲基本信息的40个脉冲,一次执行40个用例,通过打断点查看全局变量的白盒测试方法,查看代码对输入脉冲处理的正确性。
若采用脉冲定制的方法,则需要定制脉冲多次,并且需要执行多个用例,也可能受定制脉冲设计限制,有些等价类无法全部覆盖。
若采用“类单元测试”方法,需要在程序中添加大量的赋值语句,不方便操作。
由此,可看出在脉冲形状有效性判断时采用数据注入方法最简单有效。
2.2.2 有效脉冲判断
满足脉冲形状的脉冲经过位置判断后才能判断为有效脉冲,在不同阶段采用不同的波门判断方法。
若采用脉冲定制方法,通过输入可以直接判断出脉冲的一些基本信息,但是脉冲位置需要通过复杂的算法计算才能得出,脉冲位置与峰值时刻相关,定制脉冲时并不能直观得知脉冲位置,为有效脉冲判断带来难度。
若采用“类单元测试”方法,直接在位置判断处,修改脉冲位置,不能真实反映脉冲处理过程。
采用数据注入方法,数据中包含脉冲位置信息,可以很好的体现脉冲识别的整个过程,缺点就是需要准备大量的数据。
综合考虑后,采用数据注入的方法对脉冲识别功能进行测试。
中间算法输入为经过脉冲识别后的有效脉冲。此功能项可采用“类单元测试”方法。
若采用脉冲定制方法,一方面无法确切得知脉冲位置,另一方面,无法准确查找错误原因。
若采用数据注入方法,由于在不同阶段,采用不同的方法对脉冲的有效性进行判断,会增加测试的复杂度。
在保证前面脉冲识别功能项正确的前提下,可以采用“类单元测试”的方法,在中间算法前直接对有效脉冲位置、相位等参数进行赋值。这样可以很大地提高测试效率。
阶段转换是一个连续的过程,每隔一段时间进行一次判断,满足条件就转阶段,不满足条件就保持。此功能项的测试采用数据注入的方法进行测试。
若采用脉冲定制方法,一方面无法确切得知脉冲位置,另一方面,无法准确查找错误原因。
若采用“类单元测试”方法,无法体现转阶段的过程性。
现有的抗干扰测试方法各有优缺点,脉冲定制方法,能很好地对脉冲采样功能进行测试,但由于无法精确确定脉冲的位置,对后续查找错误原因带来困难;“类单元测试”方法,简单易行,但是无法对整个流程进行测试;数据注入方法,虽然查找错误方便,能对除脉冲采样外的整个过程进行测试,但是数据准备工作需要花费大量的时间。
故我们针对抗干扰算法的特点以及三种测试方法的优缺点,提出不同功能项采用不同测试方法的想法,一些无需脉冲精确位置的功能项测试,如脉冲采样功能采用定制脉冲的测试方法,而一些比较独立的功能项可采用“类单元测试”方法,一些需要脉冲精确位置或需体现处理过程的功能项测试如脉冲识别功能项、阶段转换功能项,采用数据注入的测试方法。
抗干扰算法是控制计算机软件的核心部分,因此对抗干扰测试方法的研究至关重要,仍需要不断进行研究总结。
参考文献
[1] Ron Patton著,张小松,王珏,曹跃等译.软件测试[M].机械工业出版社 ,2006.
[2]柳纯录.软件评测师教程[M].清华大学出版社,2005.