姿轨控软件黑盒测试方法研究
总结姿轨控软件的黑盒测试心得,对于姿轨控软件测试技术的总体提高有着重要意义,且对与之相似的中大型上层总体控制软件的测试有着一定的参考价值。
1 姿轨控软件的测试输入
与一般星载软件以发送指令==>查看指令执行情况为主要测试流程的测试方法不同,姿轨控由于具有众多的下位单机(包括敏感部件和执行部件)、复杂的软件内部功能,其测试用例的输入条件五花八门,仅靠遥控指令并不能实现某些复杂功能相关测试用例的全部输入,在此,我们将姿轨控软件测试中需要用到的测试输入罗列如下:
1)遥控指令和传送指令
2)星上计时
3)下位单机反馈的接口数据
4)下位单机的运行状态和故障状态
5)动力学计算的卫星姿态相关数据
其中,遥控指令和传送指令由地面测试设备注入、星上计时由地面修正,此两者可以由地面完全控制。下位单机反馈的接口数据是姿轨控软件最重要的输入,接口测试、数据处理测试、功能测试中的很多测试输入都由此而来,接口数据一般由动力学模拟提供,根据测试平台的开发情况不同,其中部分输入可以进行手动调整。下位单机的运行状态和故障状态一般由姿轨控软件自主判断生成,测试人员可以通过测试平台创造条件使其发生变化。动力学计算的卫星姿态相关数据完全由动力学模型计算生成,测试人员只能通过更改软件内部运行流程对其进行影响,不可直接控制[2]。
2 由底而上的故障状态输入
对于黑盒测试平台而言,实现软件功能的正常控制流程是基本功能,而对于正常流程之外的异常故障判断处理,则相对不易实现,因为单机的故障包括底层硬件接口故障、中层数据处理故障、上层系统诊断故障,而在功能用例执行过程中,需要输入的一般是上层系统诊断出的最终故障状态,所以此时,可以采用一种由底而上的故障状态输入方法进行测试用例设计。
下面以卫星姿轨控软件中的星敏+陀螺系统举例说明,星敏+陀螺是卫星机动中常用的姿态输入系统,卫星机动时以该系统为判断依据。如下图1所示,当底层硬件接口发生故障,或数据处理中识别出单机输入数据有异常时,通过故障状态的层层向上传递,最终由星敏+陀螺系统进行系统级的故障诊断以及基准选择,将诊断的结果交给姿态机动功能函数,由该函数按照软件需求进行统筹控制。
作为软件测试人员,被测试的软件是整个姿轨控软件,也就是需要对上图中所有的模块均抱有怀疑的态度,在未测试之前认为其不可信,只有在所有模块都通过测试之后,才能认为系统功能正确。在通常情况下正常功能树的测试中,仅当所有子功能和子子功能全部正常时,父功能才能正常实现全部功能,父功能可以认为是子功能“相与”的结果。而在故障系统测试中,各种子故障只要有一个判断出异常,就将导致父故障返回异常的判断结果,父故障可以认为是子故障“相或”的结果[3]。下图2父子功能和故障的正常异常关系示意图。
测试工作实际展开时,若直接对上层系统的故障情况进行测试,测试人员只能输入底层故障由姿轨控软件本身层层上报并仲裁,这样不仅容易出现正常系统测试中常见的发现了错误难以定位到具体模块的问题,甚至可能导致漏测问题的情况发生。
由此,采用由底而上的故障状态测试手段,仍以图1中的星敏+陀螺系统为例,首先在接口测试里,对星敏和陀螺相关接口的各种故障进行测试,确保软件能够正常识别各种接口故障,向上层模块反馈接口故障状态字;之后同样在数据处理测试里,对各种数据异常情况进行测试,同时包括下层接口故障时数据的处理;最后在功能测试中,以接口测试和数据处理测试中输出的故障状况作为测试输入,对星敏+陀螺系统的故障诊断和基准选择进行测试,并最终产生故障标志,对机动功能造成影响。
采用此种测试方式,有以下几点好处:
1)方便故障定位。子故障模式测试完毕后再进行父故障模式测试,一旦测试用例不通过,可以仅在父故障模式中寻找问题产生原因,省去步步排查的麻烦。
2)子故障测试用例的输出结果可以作为父故障测试用例的输入。由于故障标志由底而上层层传递的特性,下层的测试用例通过某种测试输入实现了故障状态的输出后,中上层的测试用例可以直接使用该测试用例作为该故障状态的输入,例如对于某些单机,接口校验错可以作为数据无效的输入,接口超时错可以作为整个单机故障的输入等。
3)对于某些黑盒测试平台难以模拟的故障状态,一般通过白盒测试实现,在上层系统故障用例测试时可以避开这类测试输入。由前文可知,多种底层的故障状态对于上层系统而言可能是同一个故障,所以测试时可以使用平台较容易实现的底层故障输入方法作为测试输入,提高测试效率和有效性。
4)有利于循序渐进掌握测试平台。无论什么平台,对于首次接触的测评师而言都是相对陌生的,这种由底而上,由点及面的测试顺序有利于测试人员循序渐进地掌握测试平台的使用方法,为后期最上层复杂系统功能的测试提供基础。
3 结论
姿轨控软件由于其较高的软件复杂性以及相对单一的测试输入方法,导致黑盒测试中很多测试用例难于执行,此时,采用由底而上的故障状态输入方法,能够一定程度上解决这个问题,有助于测试工作的有效展开,同时提高了工作的效率和质量。对于与姿轨控软件相似的中大型综合控制系统软件,如雷达主控软件、武器控制软件等,也可以参考本文的方法进行测试[4]。
参考文献:
[1] 章仁为. 卫星轨道姿态动力学与控制[M]. 北京: 航空航天大学出版社, 1997.
[2] 印玲. 星载姿轨控软件仿真测试平台研究[D]. 上海: 华东理工大学, 2015.
[3] 金亮亮. 基于故障树的航天器故障诊断专家系统研究[D].南京: 南京航空航天大学, 2008
[4] 高赛军, 戴小倩. 基于嵌入式武控软件的数学模型验证研究[J]. 电脑知识与技术, 2015, 11(4): 58-60.
上一篇:电子关锁编码与解码识别方法研究
下一篇:“热工测量技术”课程教学研究探讨