目录
可靠性是评估软件质量的重要属性,关键安全系统(Safety Critical Systems,SCS)对可靠性的要求尤为严格,因其一旦失效,将可能对生命、财产或环境造成重大损害。以汽车为例,ISO26262中ASIL D要求相关系统失效率低于10 Fit(Failure in time),即每千件产品在10∧9小时内的故障数需低于10件。
测试软件可靠性的诸多方法中,较为常见的一种为故障注入测试——根据选定的故障模型选择故障注入工具,人为地将故障注入系统并采集系统反应行为信息,从而进行可靠性分析。
学术上,故障注入技术可根据方式的不同分为基于硬件的故障注入、基于仿真的故障注入和基于软件的故障注入三大类;实际应用中,可根据应用场景的不同分为基于仿真的故障注入与基于原型的故障注入两大类。
本文将从学术领域与实际应用两大角度出发,详述各类故障注入技术的方法与工具。
一、学术领域
*学术领域将故障注入划分为基于硬件、基于仿真与基于软件三大类,由于实际应用中也有仿真类别的分类,本章节仅针对软件与硬件类展开叙述。

▲故障注入系统
故障注入系统通常由目标系统和故障输入系统组成。从物理上看,控制器是可以单独在目标系统或计算机上运行的程序。故障注入器为定制的硬件或软件,本身支持不同的故障类型、位置、时间和部分适配的硬件语义或软件结构,注入的内容则来自故障库。图示中的故障库是一个具备更大灵活性和可移植性的单独组件。
软件故障注入和硬件故障注入在前期选择上,主要受故障类型影响。陷入类故障(如迫使软件中某个点保持永久值),则最好选用硬件注入方法;数据损坏类的故障选用软件注入方法足矣。其他诸如储存单位中的位翻转等故障则可采用任意一种方式进行故障注入,此类情况下,成本、准确性、可重复性等都会影响最终方法的选择。
适合硬件故障注入的故障类型有:
- 开短路故障
- 桥接故障
- 固定型故障(电路中的某个信号不可控,永远固定在同一值)
- 杂散电流故障(指在设计电路外,因泄漏导致流动的电流)
- 电涌故障(指电压瞬间超过了正常工作电压)
适合软件故障注入的故障类型有:
- 存储数据损坏(如寄存器、内存、磁盘)
- 通信数据丢失(如总线和通信网络)
- 软件缺陷(机器级或更高级的软件缺陷)
1.硬件故障注入
硬件故障注入需要使用额外的硬件将故障引入目标系统的硬件,通常可根据注入故障的类型及其注入位

文章详细介绍了故障注入技术在评估软件特别是关键安全系统可靠性中的作用。硬件故障注入和软件故障注入各有优势,前者能测试低级别的错误检测机制,后者更适合高级别机制测试。SkyEye作为一种全数字实时仿真软件,简化了基于仿真的故障注入过程,支持物理层、电气层和协议层的故障模式模拟。
最低0.47元/天 解锁文章
1万+





