故障注入测试(Fault Injection Test)方法

这周新一篇技术文章来袭,今天要分享的技术文章是《故障注入测试(Fault Injection Test)方法》


过去只被归类为机械装置的汽车,现在变成了包括许多电子控制装置在内的尖端产品。最近上市的汽车上基本上都搭载了100个以上的控制器,由此也增加了过去没有发生过的与HW及SW有关的问题。2007年10月20日,在美国发生了一起因丰田凯美瑞(Camry)的突然加速而导致人员伤亡的事故。嵌入式软件专家迈克尔•巴教授分析该事故原因并发表了Report,该教授在Report中指出该汽车软件源代码存在缺陷,但整个系统中却没有应对该缺陷的设计,次缺陷最终对Throttle Valve控制产生了影响,导致汽车突然加速。最终该Report在法庭上被采纳为证据,当时丰田被处罚款12亿美元,召回费用24亿美元,赔偿消费者16亿美元。
这里的主要内容是,所有控制器都必须对缺陷进行Fail -Safe设计,故障注入测试(Fault Injection Test)则是验证这些Fail-Safe功能的方法。Fault具有HW和SW两种类型,并具有验证系统Fail Safe[1]功能的特点。故障注入测试(Fault Injection Test)是评价控制器系统可靠性的重要方法,在ISO 26262[2]的软件及硬件开发阶段的测试方法(Part5, 6)和系统开发阶段的测试方法(Part4)中均有所规定。

Fail Safe[1] : 系统发生故障而导致运转错误或性能下降时,为维持主要功能,防止Error(要求的动作和偏差)发展为Failure(功能运行失败)而进行的设计。ISO 26262[2]: ISO 26262或汽车功能安全国际标准是为有效防止因汽车搭载的E/E (Electric & Electronic) 系统错误而发生事故,由ISO制定的汽车功能安全国际标准。

测试方法按以下顺序进行:

1.根据Fault对象生成Fault根据Fault对象选定类型,并据此确定发生时间和发生次数,生成Fault。
故障注入测试(Fault Injection Test)方法_第1张图片
图1 Fault生成方法

2. 监控系统发生Fault时的运行状态

按照制定的Fault方法,监控运行中的Target系统发生Fault时的动作状态。
故障注入测试(Fault Injection Test)方法_第2张图片
图 2 防止生成Failure策略
故障注入测试(Fault Injection Test)方法_第3张图片

3. 测试结果

通过2次运行状态监测,发生与Task schedule相关的Fault及CPU 寄存器、软件组件、变量污染和代码变异、Bit Flip、内存不足等Fault时,系统中检测出Error后,如转换到Safe State则为正常;若处于Failure状态,则有可能导致错误操作及性能下降,故应重新设计Fail-Safe,修改至不再发生Failure

正如前面所说,如果车辆系统发生严重错误,人的生命和财产将遭受巨大损失。 为了预防这些缺陷,需通过故障注入测试充分测试系统的Fail-Safe功能,确保安全性。


青岛硕索福特科技有限公司的FIT故障注入测试工具将为您提供在进行测试时所需的所有功能,为您的软件安全保驾护航,关于FIT的更多信息请关注往期文章→故障注入测试自动化工具FIT

往期精彩回顾

MATLAB Simulink数据的小数点设计

何为次时代技术B2V(Brain-to-Vehicle)

软件优化方法介绍

MISRA–C 2012修改指南说明

上海汽检与青岛硕索达成战略合作,为智能网联汽车关键软件保驾护航

基于设计需求的单元测试和单元测试详细说明书

你可能感兴趣的:(技术文章,静态检测,测试)