1、引言
对于指挥控制系统中的射击诸元计算模块而言,该模块具有计算复杂、迭代计算多等特点,模块中的子模块之间耦合性、相关性强,但总体而言,各大模块具有较强独立性和封装性,因此可对各个模块的输入、输出变量进行注入和提取进行模块计算正确性验证,类似于黑盒测试。不同型号指挥控制系统的射击诸元计算模块功能和测试方法有一定的相似性和重用性,因此具备对该模块开展自动化测试研究的基础。
2、射击诸元计算功能与测试原理
射击诸元计算模块是指挥控制系统的一个重要模块,其功能是完成制导站与发射架分离时,目标航迹参数、导弹理论及实际杀伤区参数、遭遇参数等计算以及导引方法选择。
总结多个型号指挥控制系统射击诸元计算任务书内容,得出射击诸元计算模块输入为目标融合批号对应目标参数、雷达状态参数、导弹参数等;输出为目标融合批号的航迹参数、目标分别相对雷达车或发射车的目标航迹参数、目标分别相对雷达车或发射车的射击诸元参数、导引方法排序、导弹在杀伤区坐标系X轴投影。
经分析,测试关注的重点主要在于在给定输入条件下,模型输出是否符合预期。在测试过程中则将模型输出的结果与验证程序的输出结果进行比对,若偏差在允许范围内则认为用例通过。在人工方式下,需要对软件进行插桩、编译、运行,最后再将模型输出结果和验证程序输出结果复制到Excel表格中进行差值比对。由此可见,若对于中间参数的计算也采用这种方法去验证,时间成本是巨大的,所以对中间参数计算只采用代码审查的方式进行静态测试。
射击诸元计算模块主要是按照不同的速度、高度区间在固定系数法、半前置法和三点法三种计算方法下得出目标航迹参数、射击诸元参数、导引方法排序、导弹在杀伤区坐标系X轴投影。测试时将每种方法中的速度、高度区间进行等价类划分,将划分好的速度、高度区间作为测试输入,并观测模型计算的输出值是否与理论值一致。假设速度V(a≤V≤b),高度H(c≤H≤d)。我们要对这一个方位进行等价类用例编写,那么有:弱一般等价类划分、强一般等价类划分、考虑健壮性的弱一般等价类划分、考虑健壮性强的等价类划分。
弱一般等价类划分所需测试时间较少,但是测试覆盖率较低;强一般等价类划分所需时间稍长,测试覆盖率有所增加但是仅仅对范围内数据进行测试,未考虑异常情况数据输入的情况;考虑健壮性的一般等价类划分则对正常范围数据以及异常数据测试均有所覆盖,但是时间开销较大。对于射击诸元计算模块来说,当速度或者高度超过了任务书所规定的“模糊区”上限,软件将不再进行诸元计算。综合考虑时间开销、及测试有效性和充分性,对于本模型采用考虑健壮性的弱一般等价类划分设计测试用例。
对该模块测试还需要一定的测试约束:
a. 为了更清晰地观测测试结果,进行其中一种方法的测试时需要隔离其它方法计算的影响,所以需要采取必要的数据隔离措施,以任务书中的一个计算要求为例:对于空情处理数学模型以及粗跟目标,按相对雷达车的坐标系计算其航迹参数,并按固定系数法计算其诸元参数并输出。在实际测试过程中对测试输入不仅要考虑速度、高度区间的设置,还需要考虑目标状态的设置;
b. 需要进行连续的模块计算测试,模块计算本身具有迭代性,因此单拍测试不能反映全面的测试结果。为了获得更直观的测试结果且保证覆盖全面,应考虑系统连续多拍的状态输出。
坐标转换、输入参数预处理、目标航迹参数平滑属于数据加工处理类型计算,除了进行必要的代码审查,在自动化测试方式下也可对其进行类似于上述射击诸元计算模块的黑盒测试,从而保证测试的充分性。
1. 坐标转换
模型中涉及的坐标转换包括将地理坐标转换为以基准点为原点的极坐标、将地心直角坐标转换为以基准点为原点的极坐标、将目标以地心直角坐标转换为以基准点为原点的相对极直角坐标、相对极坐标转换为相对直角坐标、以基准点为原点的极坐标转换为地心直角坐标、相对直角坐标转换为地心直角坐标。具体的坐标转换矩阵见文献[2],坐标反映目标的位置信息,除了考虑目标点的特征点位置坐标计算的正确性,还要全面考虑一般点计算的正确性。同时还要考虑不同状态下,坐标系转换逻辑的正确性;确保所有的坐标转换功能可以正确计算之后,还需要测试软件在输入数据错误的状态下是否进行了相应处理,例如输入非法数据、或不输入数据、输入超限数据等。
2. 输入参数预处理
输入参数由于测量或环境噪声的影响,软件需对原始数据进行平滑和野点剔除等预处理。根据3σ准则判断野点:正态分布在以外的取值概率不到0.3%,几乎不可能发生,所以正负3倍标准差之外的数据可以视为异常值,需要剔除。数据预处理步骤如下:
对输入参数的预处理主要是滤波计算,测试用例设计思路为:先输入一组正常数据,观测模型计算输出值是否与理论值一致;再输入一组带有“野点”的数据,查看通过滤波计算后是否能够将该野点剔除,且野点替换值与与理论值一致。
3. 目标航迹参数平滑
目标航迹参数平滑测试方法与输入参数预处理测试方法类似。
3、自动化测试工具
3.1自动化测试功能正确性验证
通过对整个射击诸元参数计算模块的测试,表1显示了人工测试方法与自动化测试方法的效果对比。
表1人工测试方法与自动化测试方法的效果对比
4、结论
经过对多个型号指挥控制系统射击诸元计算模块分析,该自动化测试工具提供的测试输入数据类型适用于80%以上的射击诸元计算模块配置项测试过程。实践证明该自动化测试方法可达到简化测试过程,节约劳动力成本,推动测试方法重用的目的,对回归测试的质量和效率的提高更具有实践意义。
虽然本文解决了射击诸元计算模块测试目前存在的困难,但仍有不足之处需要完善:该测试工具在应用领域和适用性上仍有一定的局限性,未来需要进一步抽象软件模型与用例,同时可针对更多类型的软件功能,开展更广泛、覆盖性更强的自动化测试方法的探究。
参考文献:
[1]. 软件测试方法研究 赵瑞莲 北京:中国科学院研究生院(计算技术研究所),2001.
[2]. 防空导弹武器制导控制系统设计 彭冠一 中国宇航出版社1996.
[3]. 地理信息数据坐标系统转换软件测试策略 王雪艳 全国测绘科技信息网中南分网第二十八次学术信息交流会论文集2014.
[4]. Software Testing for Safety-Critical.Lingfeng Wang,Kay Chen Tan.IEEE Computer
Society June2005:10-15
[5]. 一种嵌入式软件覆盖和分析测试方法 朱红军 航空计算技术.2009,39(5):65.67