故障注入测试(Fault Injection Test)评价类型说明

这周新一篇技术文章来袭,上周我们对故障注入测试(Fault Injection Test)方法进行了初步的了解,本周要分享的技术文章是《故障注入测试(Fault Injection Test)评价类型说明》,将针对故障注入测试进行更深层的说明。


故障注入测试是指在系统正常运转期间,强制注入人为的系统缺陷,检测测试系统对异常情况的反应(强韧性)的方法。在上一篇的技术文章中我们已经介绍了故障注入测试的基本信息,本次将对故障注入测试评价类型进行说明。
故障注入测试的评价类型大致可分为输入/输出功能安全评价和控制功能安全评价。 输入/输出功能安全评价是针对输入/输出数据时可能发生的Fault进行评价的方法;控制功能安全评价是对控制器工作时可能出现的缺陷(Teak, memory等)进行评价的方法。 下面我们来详细了解一下这两种评价方法。

输入/输出功能安全评价

1.Filtering

Filtering方法是确认输入的信号在一定时间内是否保持特定值的一种方法。通过观察输入信号变化的方法,来确认在测试时定义的数据是否正常输入,提取持续输入的数据的平均值,并将输入的值依次与之前的值作比较。如果维持比较的数据,则反映维持值,并可用于控制运算。此时,通过Filtering方法暂时输入的数据与持续输入的数据相异时,会将此数据视为错误并忽略。通过Filtering技术进行故障注入测试时,可检测此错误,从而免受暂时输入的非正常数据的影响,以确保控制器系统的安全性。

2.Complementary Data R/W
在这里插入图片描述
这是一种为了检测出因内存区域错误导致数据产生变化的方法。由于外部因素导致内存区域发生变形时,与特定区域相邻的内存区域的数据会受损。为感知这一现象,通过检查存储在不同内存空间内的数据和补充值,可以确认数据的完整性。 内存的错误在任何地方都可能发生,但如果用于运算的输入数据受损,则可能会对控制器动作造成严重错误,因此要在数据传入阶段应用此方法进行验证。评估确认是否对超出输入或输出数据范围的数据进Range Check检测。

控制功能安全评价

1.Preiodic Task Check

这是为了检测以一定周期执行的任务的驱动顺序错误而采取的方法。将任务在规定执行时间之前执行时定义为任务过度执行,任务执行时间超出设计时考虑的标准时,将其定义为任务执行延迟。这样的任务执行错误是通过watchdog功能感知到的,Watchdog对每个周期执行的任务进行监视,如果感知到比周期更频繁执行或超出执行时间的任务,则通过OS内部定义的错误处理函数进行相应错误内容的处理。脱离周期的任务对整个系统产生严重影响时,应通过系统Reset进行处理,其影响仅限于发生错误的任务时,可仅对相应任务进行Reset,恢复其功能。通过Preiodic Task Check方法,在故障注入测试中可延长任务的执行时间或制造过度执行的情况,从而评价系统能否正常感知。

2.RAM、ROM ECC(Error Check and Correct) Check

检查用户以读/写访问内存区域的值是否被改变为与存储值不同的值。此时如果因感知错误而发生1bit变更或2bit变更,则根据各MCU的ECC处理方式复原bit或告知用户错误。用于车载控制器的MCU发生1bit变更时可自行恢复bit,2bit发生变更时可告知用户存在错误,以便对感知的错误进行reset等处理。通过RAM、ROM ECC(Error Check and Correct) Check方法,在故障注入测试中发生此类问题时,可感知并评价ECC Check 功能是否正常工作。

3. 堆栈监控
在这里插入图片描述
在执行时间内,检查system是否超过设计的堆栈区域使用的方法。在故障注入测试中,在给定的堆栈区域中分配最大值,发生溢出时,评价是否正常感知及处理。通过堆栈监控方法,在故障注入测试中堆栈溢出时,可通过重置任务或OS来处理。

如今不论是对已体现的功能进行测试的方法,还是对可预见的缺陷提前预防的故障注入测试方法,大家的关注度都在日渐提高。
故障测试方法除此之外还可以无限扩展,青岛硕索福特自主研发的工工具也支持可以确保安全性的故障注入测试。我们的故障注入测试工具FIT可以帮您实现高品质低费用的软件故障自动化注入测试,自动生成测试结果报告,帮您满足ISO 26262故障注入测试标准。

往期精彩回顾

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

MATLAB Simulink数据的小数点设计

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

软件优化方法介绍

MISRA–C 2012修改指南说明

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

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

  • 0
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Fault coverage和test coverage是软件测试中的两个重要指标。 Fault coverage是指在测试过程中能够发现的故障或错误的比例。它衡量了测试用例是否足够全面地覆盖了系统中的潜在故障。在报告中,一般会看到test coverage比fault coverage稍微高一些,这意味着测试用例覆盖了更多的系统功能和代码,但仍有一些故障可能没有被发现。 Test coverage是指测试用例覆盖了被测试系统的程度。它衡量了测试用例是否能够触发系统中的各种功能和路径。通过插入test point,可以测试到没有被覆盖到的点,同时提高某个故障被发现的概率。这种方法可以增强manufacturing fault coverage,即在制造过程中提高故障的检测能力。 因此,fault coverage关注的是发现故障的能力,而test coverage关注的是测试用例的覆盖程度。两者都是评估软件测试质量的重要指标。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [[ATPG] test coverage 的计算方法](https://blog.csdn.net/SH_UANG/article/details/53180164)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* *3* [fault coverage enhancement](https://blog.csdn.net/weixin_34037977/article/details/86344846)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值