如何在模型在环测试中高效进行故障注入测试

描述

汽车测试领域,在模型测试阶段进行故障注入,是保障汽车安全性、可靠性的关键手段。如何提高故障注入测试的效率呢?

若需对模型中间层元素注入故障,典型实施步骤如下:

步骤一,在测试框架(testharness)中选择需要进行故障注入的模型中间元素;

步骤二,在GUI窗口中选择故障内容和故障触发方式;

步骤三,将测试用例与故障相关联;

步骤四,运行测试,查看结果。

通过上述步骤才能在用例执行期间注入故障。尽管一个模型元素可以创建多个故障,但一次仿真只能有一个故障处于激活状态,并且想要自定义故障内容还需要手动搭建故障模型,这就需要测试人员具有一定模型开发能力。

如此一来不仅影响效率,并且无法灵活应对复杂多变的测试需求,在一定程度上限制了故障注入的广度和深度。

难道就没有更高效、更灵活的方式吗?当然有!TPT新增模型故障注入功能,能够很好地提高测试效率。那TPT是如何进行故障注入的呢?

在测试框架中选定目标模型中间元素,以Server Function形式导入至TPT平台,即可在测试用例中直接调用。该方法无需额外关联操作或搭建故障模型,且支持单次仿真中对同一元素注入多类故障。

 

测试

图1 TPT Server function

下面就以灯控模型为例介绍TPT是如何进行故障注入测试的。

测试

 

图2 模型以及信号位置

一、模拟数据停滞故障

故障场景:在light_intensity信号在6.99s时数值出现卡滞。

用例如下:

测试

图3 用例内容

功能需求要求当light_switch为自动(2),并且light_intensity>70并持续3s时,头灯关闭。在运行结果中可以看到,光强数值在第6.99s时出现卡滞,未满足light_intensity>70的条件,因此在3s后headlight没有关闭。

测试

图4 运行结果

二、模拟数据突变故障:

故障场景:筛选后的光照强度在故障触发信号light_switch_isAuto为true时出现异常值120。

用例如下:

测试

图5 用例内容

在运行结果中可以看到,检测到信号light_switch_isAuto为true时,light_intensity数值发生了跳变,导致提前计时,并且在3s后headlight关闭。

测试

图6 运行结果

三、自定义故障:

故障场景:模拟数据噪声影响。在TPT中添加Script,引入Python库,自定义函数加入高斯噪声。用例如下:

测试

 

图7 用例内容

在运行结果中可以看到,当light_switch数值发生变化时,由于引入了噪声,light_intensity的数值>70,headlight关闭,功能正常。

测试

图8 运行结果

通常情况下,由于引入噪声的不确定性,需要多次运行验证软件的一致性。如图所示,该测试用例运行5次仅有一次通过,且多次运行通过率并不相同。可在模型中更改阈值或加入滞回结构规避此类问题。

测试

图9 多次运行结果

TPT灵活多样的激励方法为故障注入测试提供了新的选择。对于汽车软件来说,TPT 无疑是一个强大的 “利器”,让故障注入不再是负担,而是保障安全的有力手段。

故障注入测试前移不仅是测试效率的提升,更是平衡研发成本与周期的重要保证。北汇信息作为新思科技国内合作伙伴,始终以专业的 TPT 技术支持经验,为国内客户提供贴合行业需求的测试解决方案。我们将与您携手,共同推动汽车电子测试工作提质增效,为行业发展注入新的活力。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 相关推荐
  • 热点推荐
  • 测试

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分