标题 | 卫星软件测试中的可靠性分析技术研究 |
范文 | 周楷林+徐白 摘要:卫星型号所使用的软件为嵌入式软件。软件能否正常工作成为了保障卫星安全的重要条件之一。软件可靠性分析技术则是保障嵌入式软件可靠性的重要手段。软件可靠性也成为中国航天领域最重视的方面之一。如何在软件测试过程中采用可靠性分析方法,将软件问题准确定位,提高软件可靠性,是软件第三方测试所亟待解决的问题。 关键词:卫星软件;软件测试;SFMEA;SFTA 中图分类号: TP393 文献标识码: A 文章编号:1009-3044(2017)27-0227-02 1 软件可靠性分析技术 软件可靠性分析技术包括SFMEA和SFTA技术。SFMEA(软件故障模式与影响分析[1])是一种自底向上的可靠性分析方法,该方法将失效模式作为基础,以失效影响或后果为中心,根据分析层次和因果关系推理、归纳进行分析,来识别软件的薄弱环节,提出改进措施建议。 SFTA(软件故障树分析)是一种自顶向下的软件可靠性和安全性分析方法[2],用于表明软件中哪些模块的故障、外部事件或者它们的组合导致软件发生故障的逻辑图[1]。 2 软件测试的可靠性分析 本文根据卫星型号软件测试的特点,并结合SFMEA和SFTA各自的特点和分析方法,提出一个软件测试的可靠性分析方法。 該方法分析流程如下: 1) 从软件的设计文档开始分析,对软件进行层次结构的划分;2)参照《卫星型号软件失效模式库》建立拟分析系统的失效模式清单,清单建立完成后进入下一步;3)软件故障原因分析;4)软件故障影响分析;5)确定软件故障的严酷度等级;6)纠正措施分析;7)软件是否更改,如果更改,要对更改进行分析;8)建立SFMEA工作表;9)进行软件测试10)发现故障则进入下一步,否则只根据上面的SFMEA分析结果给出结论;11)将所发现故障定为顶事件,建立故障树;12)进行故障树定性分析;14)进行故障树定量分析;15)故障复现;16)结合SFMEA工作表,将引起软件故障的软件错误进行定位;17)综合分析结果,给出纠正措施,最后给出测试结论。 具体实施流程如图1所示。 3 软件测试过程中的可靠性分析技术应用 3.1 被测件描述、层次结构划分以及SFMEA 被测件是某型号卫星数传终端机1553B总线通信软件,属于嵌入式软件,主要负责完成1553B的接口及与数据管理系统的串口通信功能。 通过分析层次划分,总结出该软件SFMEA工作表,如表1所示。 3.2 被测件的软件故障树分析 根据实际测试需要,该被测件的动态测试采用全数字仿真来模拟,没有硬件故障的因素干扰,因此在本文中硬件都是假设完好的。 在测试时发现串口接收到由上位机传来的数据异常,通过Keil软件的command窗口中发现,串口不断发出数据0。根据SFTA的分析方法[3][4],将串口接收数据错误定为顶事件,并逐层向下分析,分析可能导致顶事件发生的直接原因,并逐步深入,直到查找出全部的基本故障原因或原因组合为止(即找到基本底事件),并用事件符号和逻辑门符号对故障树进行描述,即建立了软件故障树。本文所建立的故障树如图2所示。 3.3 最小割集及其定性分析 对图2使用下行法找该故障树的最小割集。通过下行法找到该故障树的最小割集共有七个,分别为{X1},{X2,X3,X5},{X2,X4,X5},{X3,X5,X6},{X4,X5,X6},{X3,X5,X7},{X4,X5,X7}。 对于最小割集的定性分析 [5],根据每个最小割集所包含底事件的数目(阶数)进行排序,在各个底事件发生概率相互差别不大的情况下,可按如下原则对最小割集进行比较: 1) 阶数越小的最小割集越重要; 2) 在低阶最小割集中出现的底事件比高阶最小割集中的底事件重要; 3) 在最小割集阶数相同的条件下,在不同最小割集中重复出现的次数越多的底事件越重要。 根据以上原则,底事件的重要性从高到低依次如下:X1(未能成功发送握手信号),X5(和校验正确),X3(包长为0),X4(包长为FFFFH),X2(包头为1071H),X6(包头为1072H),X7(包头为1073H),其中X3与X4的重要性相同,X2、X6和X7的重要性相同。 3.4 被测件的SFMEA和SFTA综合分析及结论 结合被测件的SFMEA工作表,可以确定基本底事件X1、X2、X5、X6、X7不会产生串口接收数据故障,底事件X3和X4会产生串口数据接收故障。由于模块A遥控数据传输功能、模块C遥控数据传输功能和模块D密钥数据传输功能中读包长函数都使用了死循环判断等待当前读写状态。 对故障进行再现,分别用包长为0和FFFFH的模块A注数指令包、包长为0和FFFFH的模块C注数指令包、包长为0和FFFFH的模块D密钥更新数据包作为输入数据包,从1553B总线向串口发送,结果如表2所示。 根据以上分析结果,可以确定由于被测件在进行等待读写状态编程方式采用死循环来判别的方式,并且未对读取包长的长度予以限制,所以建议被测件采取软件看门狗设计或在读包长时增加条件判断语句,将包长小于1或包长大于128的数据包进行丢弃处理,以保证被测件不会出现类似故障。 4 总结 本文利用提出的软件测试过程中的可靠性分析方法和实施流程,对被测件进行了软件故障模式及影响分析,并给出被测件的SFMEA工作表;对在被测件动态测试中所发现的故障进行了软件故障树分析,建立故障树,确定最小割集,进行定性分析。在SFMEA和SFTA综合分析中,对软件故障进行复现,精确定位故障点,最后提出改正意见,提高软件的可靠性。 参考文献: [1] 何鑫,杨顺昆,刘斌.基于FMEA/FTA的嵌入式软件故障诊断模型与应用[J].计算机测量与控制.2009.17(1). [2] 孙志安.软件可靠性工程进展[J].船舶电子工程,2008(6):171-175. [3] 杨海成.航天型号软件工程[J].中国宇航出版社,2011:159-162. [4] 蔡开元.软件可靠性工程基础[M].清华大学出版社,1995 [5] 刘品.可靠性工程基础:第三次修订版[M],中国计量出版社,2005 |
随便看 |
|
科学优质学术资源、百科知识分享平台,免费提供知识科普、生活经验分享、中外学术论文、各类范文、学术文献、教学资料、学术期刊、会议、报纸、杂志、工具书等各类资源检索、在线阅读和软件app下载服务。