陈荣兴
摘要:对于高可靠软件的可靠性评估一般有两种方法,一种是选择在小样本失效数据情况下能够准确进行软件可靠性评估的模型,另一种方法是基于故障注入技术和加速寿命试验原理,短时间内获得待评估软件更多的失效数据。该文主要对基于故障注入技术和加速寿命试验原理的软件可靠性评估技术进行研究,介绍了故障注入原理和技术分类、加速寿命试验原理和模型,并结合两者分析了可靠性评估技术的可行性,提出了需要解决的问题和对应的解决思路。
关键词:故障注入;加速寿命试验;可靠性评估;高可靠软件
中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2018)04-0265-02
随着计算机的广泛使用,计算机系统的可靠性越来越受到人们的关注。在一些关键领域,如高铁、航空航天、核工业等领域,计算机的失效会导致重大的经济损失,甚至丧失生命。如何获取系统的可靠性指标,如可靠度、平均失效时间(MTTF)、失效率等,显得尤为重要。
1 背景
关于软件可靠性评估的研究始于1956年,Weiss对于失效服从泊松分布的复杂系统提出了估计可靠性增长的方法,1972年Jelinski和Moranda提出了著名的软件可靠性评估J-M模型,自此开始,软件可靠性模型研究取得了突飞猛进的发展,人们在已有软件可靠性模型的基础之上根据不同软件的特性不断提出新的模型和方法[1]。对于一般软件来说,在一段运行时间内,往往可以得到足够的失效数据,但对于一些高可靠软件来说,一般得不到充足的失效数据。高可靠软件大多功能单一,开发过程中引入了可靠性设计,且前期的軟件测试也比较充分,因此可靠性测试阶段一般很少会发生失效。如果选择了不合适的模型,由于失效数据较少,模型的评估结果一般会有较大偏差。基于故障注入技术和加速寿命试验原理的可靠性评估技术能够在短时间内获取待评估软件更多的失效数据。
2 故障注入
2.1 故障注入原理
故障注入用一般用于验证,使用确定性的或随机的方法,在被验证的系统中人工制造故障,即用人工故障代替自然产生的物理故障,以缩短验证的周期。它按照选定的故障类型,用人工的方法产生故障,再将其施加于目标计算机系统上以加速它出错,相应的故障响应信息被及时收集和分析,最终的试验结果将提供给有关人员。
2.2 故障注入技术分类
根据注入对象是否为真实系统,可以将其分为基于模拟的方法以及基于原型的故障注入,如图1所示[2]。对于基于模拟的故障注入方法,根据系统的层级进行划分,可以分为晶体管级、逻辑级和功能级。基于原型的故障注入方法根据其具体实施手段的不同,可以分为硬件实施、软件实施和物理实施,每种实施方法又对应不同的实施工具。
3 加速寿命试验
3.1 加速寿命试验原理
加速寿命试验的基本原理是在不改变产品的失效机理,不增加新的失效因素的前提下,提高试验应力,加速产品的失效过程,促使产品在短期内失效,再根据试验数据,运用加速寿命曲线或加速寿命方程推算出正常应力下的产品寿命。试验应力包括机械应力、热应力、电应力等。根据应力施加方式,试验类型可以分为:恒定应力加速寿命试验、步进应力加速寿命试验和序进应力加速寿命试验。
3.2 加速寿命试验模型
加速寿命试验主要需要考虑应力集、工作负载、试验对象和结果集等四个因素。用于加速寿命试验的模型(AT)可以用以下四元组来描述:
其中,S、W、T、R分别为应力集、工作负载、试验对象和结果集,S与W构成AT的输入域,R为AT的直接测量值。
加速寿命试验模型如图 2所示。从应力集选取,从工作负载选取, 同时施加于试验对象,试验产生的结果写回结果集,构成一组加速寿命试验的数据。
4 基于故障注入技术和加速寿命试验原理的高可靠软件评估技术所面临的问题与挑战
结合故障注入技术的特点,以及加速寿命试验的试验要求,对高可靠性软件进行可靠性评估有以下问题需要解决。
1) 寿命试验类型的选择
由于恒定应力加速寿命试验方法操作简单,数据处理模型成熟,精度较高,在实际中被广泛采用。而将加速寿命试验原理应用于软件的评估尚处于初步阶段,采用恒定应力加速寿命试验可以降低试验的难度。随着技术研究地不断深入,可以进行恒定应力加速寿命试验等。
2) 应力的构建
以嵌入式应用软件为例,嵌入式平台的气候环境应力、机械环境应力、生物及化学环境应力、电应力及辐射应力等各种环境应力汇集而成的导致其失效的作用力之一。各应力的综合作用,导致待评估软件的运行环境产生故障。因此,我们可以选取故障及其相关属性来构建应力,例如故障的数量[3]、危害度和故障发生频率等。
3) 应力水平的确定
应力水平是应力所处的某个级别,加速寿命试验需要分别在不同应力水平下进行试验并获取失效数据。加速应力水平的确定将涉及三个参数:最低应力水平、最高应力水平和加速应力水平的数量。一般来说,应力水平数量越多,试验得到的数据越多,统计分析的精度越高。然而,试验次数会相应增多,试验时间和试验成本也会上升。在确定了最低应力水平、最高应力水平和加速应力水平的数量之后,可以用某种应力间隔划分算法来获取当中的应力水平,如等间隔划分法。
4) 加速应力的施加
加速应力的施加是通过故障注入技术来实现的。以嵌入式应用软件为例,故障注入的对象包括嵌入式平台的专用硬件层、系统软件层。考虑到可靠性评估的要求和注入的成本,一般以软件实施的故障注入方式进行动态注入。
5) 加速寿命试验的停止时间
为了缩短试验时间,降低试验成本,同时又不降低统计分析的精度,一般在组成恒定应力加速寿命试验的每组寿命试验中采用定数截尾寿命试验。根据GB-T2689.1-1981,每个应力水平下的样品数量不少于10只,特殊产品不少于5只。 对一般产品的截尾试验要求是否同样适用于软件,还需要进一步地验证。
5 结束语
基于故障注入技术和加速寿命试验原理的软件可靠性评估技术方法,能够在短时间内获取更多的失效数据,为高可靠软件的可靠性评估提供一种实践方法。同时,将加速寿命试验应用于软件的相关理论和技术都非常匮乏,可以围绕其展开大量的研究工作。
参考文献:
[1] 陆民燕. 软件可靠性工程[M]. 北京: 国防工业出版社, 2011: 282-296.
[2] Mei-Chen Hsueh, Tsai T K, Iyer R K. Fault injection techniques and tools[J]. IEEE Transactions on Computers, 1997, 30(4):75-82.
[3] 靳昂, 江建慧, 楼俊钢. 基于加速寿命试验的Web服务器测评[J]. 计算机研究与发展, 2010(S1):229-236.