文章目录

  • 前言
  • 模型覆盖度
    • 覆盖度种类
      • Execution Coverage (EC)
      • Decision Coverage (DC)
      • Condition Coverage (CC)
      • Modified Condition/Decision Coverage (MCDC)
      • Lookup Table Coverage
      • Signal Range Coverage
      • Signal Size Coverage
      • Objectives and Constraints Coverage
      • Saturate on Integer Overflow Coverage
      • Relational Boundary Coverage
    • Simulink Test中的配置选项
      • Record coverage for system under test
      • Record coverage for for referenced models
      • 覆盖度选项
  • 附表

前言

在网上查找了一番关于测试覆盖度的资料,发现大部分都讲的不太清楚。本文参考官方Simulink Coverage User’s Guide结合自己的理解进行一下总结。

模型覆盖度

覆盖度种类

Execution Coverage (EC)

执行覆盖是覆盖的最基本形式。对于每个项目,执行覆盖决定项目是否在仿真期间执行。这个覆盖度选项是必选的,不需要勾选生成的报告里也会带。只要模块执行了,就表示覆盖到了。

Decision Coverage (DC)

决策覆盖分析模型中表示决策点的元素,例如Switch块或statflow状态。对于每个项目,决策覆盖度表示为仿真所遍历的项目与仿真路径总数的百分比

例如:对于一个Switch来说,在测试过程中,true和false都要执行,才可以保证Decision Coverage为100%

决策分析表列出了决策的可能结果,以及结果在每个测试模拟中出现的次数(如上图中的19907)。未发生的结果在表行中以红色高亮显示

Condition Coverage (CC)

条件覆盖分析其输入(例如,logical Operator块)和statflow转换的块的输出逻辑组合。当测试用例使模型中逻辑块的每个实例的每个输入和转换中的每个条件在仿真期间至少一次为真,在仿真期间至少一次为假时,测试用例实现了完全覆盖。条件覆盖分析报告测试用例是否完全覆盖了模型中每个块
例如:下面的条件在仿真过程中都为False,没有一次为True,所以Condition Coverage只有50%

条件分析表列出了对应块的每个输入端口上true和false条件出现的次数。

注意:如果在Simulink Coverage中disableTreat Simulink logic blocks as short-circuited,则该Condition Coverage可能达不到100%.

Treat Simulink logic blocks as short-circuited:

指定覆盖率必须考虑执行逻辑运算的块(例如,逻辑运算符块)中的操作数顺序。

ON:覆盖率分析不考虑由于另一输入而变得冗余的逻辑操作的输入

OFF:覆盖率分析考虑逻辑操作的所有输入

例如,如果考虑到逻辑AND块的两个输入的顺序,则当第一个输入为假时,第二个输入是冗余的。因此,对于第一输入为假的情况,不考虑通向第二输入的路径进行覆盖。按道理应该是需要设置为ON的。

Modified Condition/Decision Coverage (MCDC)

改进的条件/决策覆盖(MCDC)利用Simulink coverage软件,扩展了决策和条件覆盖能力。它分析输出其输入和Stateflow转换的逻辑组合的块,以确定测试用例测试逻辑块输入和转换移条件独立性的程度。

1.当一个输入中的更改(独立于任何其他输入)导致模块输出中的更改时,测试用例实现了模块的完全覆盖

2.当条件中的更改至少有一次触发每个条件的转移时,测试用例实现了statflow转移的完全覆盖。

如果您的模型包含定义表达式的模块,这些表达式具有不同类型的逻辑运算符超过12个条件,软件就不能记录MCDC覆盖率

因为Simulink Coverage MCDC可能无法实现完全的决策或条件覆盖,所以可以在不实现100%决策覆盖的情况下实现100%的MCDC覆盖。见附表

当您为一个模型收集覆盖率时,您可能无法实现100%的MCDC覆盖率。例如,设定了Treat Simulink logic blocks as short-circuited,您可能无法对该块实现100%的MCDC覆盖

MCDC分析表列出了对应块表示的MCDC输入条件用例,以及报告的测试用例覆盖条件用例的程度

MCDC分析表的每一行表示块的特定输入的条件情况。一个模块的输入n的条件是输入值的组合。输入n称为条件情形的决定性输入。单独改变输入n的值会改变模块的输出值

MCDC分析表显示了一个字符串类型的条件表达式(TF):

•字符串中某个字符的位置对应于输入端口号,比如第一个T为第一个输入条件。

•位置上的字符表示输入的值。(T:True;F:False)。

蓝色字符对应决定输入的值

Decision/Condition列为输入条件情况中指定的决定输入True Out列指定决定输入值,该值使模块输出为真值
True Out列使用一个条件表达式(例如FF)来表示块的所有输入的值,其中决定输出的值以粗体显示。

False Out列指定导致模块输出False值的决定性输入值,以及该值是否在报告中包含的第一个(或唯一)测试用例中出现。
表达式中的圆括号表明指定的输入组合没有出现在该报告中包含的第一个(或唯一的)测试用例中。换句话说,测试用例没有覆盖相应的条件用例

如下面的例子:input port2输入条件导致的结果True实现了,但False没实现,所以报告中标为红色。

下面这五条测试用例的由来:保证除决定性输入的条件外的其他条件不变,改变决定性输入的值,实际输出应该为对应的值,例如input port1输入为T,其他为F,期望结果为T,input port1输入为F,其他为F,期望结果为F

如果在“Configuration Parameters”对话框的“ Coverage”窗格中选择“ Treat Simulink Logic blocks as short-circuited ”,MCDC覆盖分析不会验证是否实际发生了短路输入。MCDC分析表在条件表达式中使用x(例如,TFxxx)来表示工具没有分析的短路输入。如果disable此特性,则在收集模型覆盖率时,逻辑块不会短路,那么您可能无法对该模块实现100%的覆盖率

Lookup Table Coverage

查找表覆盖(LUT)检查块,例如1-D查找表模块,它从输入和输出表中的输入输出输出信息,在表条目之间插入或从表条目外推。查找表覆盖记录了表查找使用每个插值间隔的频率。当测试用例至少一次执行每个插值和外推区间时,它就实现了完全覆盖。
对于模型中的每个查找表块,覆盖率报告显示了查找表的彩色地图,指示了每个插值。如果n-D Lookup Table块的断点总数超过150万个,软件就不能记录该块的覆盖率。

仅在仿真开始时配置查找表覆盖率。如果在运行时调整影响查寻表覆盖率的参数,则不会更新受影响块的覆盖率设置。

该覆盖度配置项一般不用勾选.

Signal Range Coverage

信号范围覆盖记录模型中每个块的最小和最大信号值,如在仿真期间测量的。只有具有输出信号的块才能接收信号范围覆盖。

如果模型中的信号总数超过65535,或者模型包含的信号宽度超过65535,则软件无法记录信号范围覆盖率。

该覆盖度配置项一般不用勾选.

Signal Size Coverage

信号大小覆盖记录模型中所有可变大小信号的最小、最大和分配大小。报告中仅包含具有可变大小输出信号的块

如果模型中的信号总数超过65535,或者模型包含的信号宽度超过65535,则软件无法记录信号大小覆盖范围。

该覆盖度配置项一般不用勾选.

Objectives and Constraints Coverage

跟Simulink Design Verifier相关,暂时没有使用过。

Saturate on Integer Overflow Coverage

在选择了Saturate on integer overflow参数的情况下,饱和整数溢出覆盖率检查块,如Abs块。只有选中此参数的块才会在整数溢出覆盖率上接收饱和。

Saturate on integer overflow coverage记录块在整数溢出时饱和的次数。

当块在整数溢出时饱和至少一次,并且至少一次不饱和时,测试用例实现完全覆盖。

这个一般不勾选。因为正常情况下都不会溢出,勾选这个后,覆盖率一般都只有50%。

Relational Boundary Coverage

关系边界覆盖检查具有显式或隐式关系操作的块、状态流图和MATLAB功能块。暂时没有使用过。

Simulink Test中的配置选项

Record coverage for system under test

在测试管理器覆盖率设置中启用或禁用覆盖率收集。对应的UI选项Record coverage for system under test

Record coverage for for referenced models

在测试管理器覆盖率设置中启用或禁用引用模型的覆盖率收集。对应的UI选项是Record coverage for for referenced models.

覆盖度选项

在Testflie中进行勾选

附表

一些Simulink对象支持MCDC覆盖,一些对象只支持条件覆盖,一些对象只支持决策覆盖。
所有的Simulink对象都可以接收到Execution coverage,除了那些没有在model coverage中被工具化的模块:

• Merge Blocks

• Scope Blocks

• Outport Blocks

• Inport Blocks

• Width Blocks

• Display Blocks

模块支持的覆盖度如下表:

若你觉得本文对你有帮助,欢迎点赞,关注,收藏,转发~~~
你的鼓励是对小弟的最大支持~~~
建了一个WX公众h,《汽车电子学习笔记》感兴趣可以关注一下~~~文章都会同步更新~

Simulink覆盖度详解-模型覆盖度相关推荐

  1. SVPWM控制技术+Matlab/Simulink仿真详解

    文章目录 前言 一.SVPWM的控制原理 二.空间矢量的概念 三.电压与磁链空间矢量的关系 四.三相逆变器的基本电压空间矢量 五.SVPWM 算法的合成原理 六.SVPWM 算法推导 6.1.七段式S ...

  2. 基于模糊控制的Simulink仿真详解

    基于模糊控制的Simulink仿真详解 Simulink的介绍 Simulink是一个模块图环境,用于多域仿真以及基于模型的设计.它支持系统设计.仿真.自动代码生成以及嵌入式系统的连续测试和验证. S ...

  3. PWM控制技术+Simulink仿真详解

    想要理解SVPWM控制技术,首先要了解PWM控制技术. PWM控制技术就是对脉冲宽度进行调制的技术,通过对一系列脉冲宽度进行调制来等效获得所需要的波形(包括形状和幅值). PWM控制的基本原理:冲量( ...

  4. 【直播回放】150分钟详解模型压缩理论和实践

    大家好,欢迎来到我们的付费视频直播回放栏目,在这个专栏中我们会每一次针对某一个主题,做1-2个小时左右的直播,包含PPT讲解与答疑交流. 作者&编辑 | 言有三 本文主题与资源 主讲人:言有三 ...

  5. 目标检测之Faster-RCNN的pytorch代码详解(模型准备篇)

    十月一的假期转眼就结束了,这个假期带女朋友到处玩了玩,虽然经济仿佛要陷入危机,不过没关系,要是吃不上饭就看书,吃精神粮食也不错,哈哈!开个玩笑,是要收收心好好干活了,继续写Faster-RCNN的代码 ...

  6. Midjourney用户手册中文版详解模型、命令、参数与高级用法

    最近正在上手体验目前网上很火的 AI 绘画工具 Midjourney,在B 站上找了很多教程来看,现在基本可以上手用它生成很多好玩的图片了. • Midjourney 入门教程:Midjourney零 ...

  7. cesium获取模型高度_180套经典夹具设计方案(附详解+模型),原来夹具设计这么简单!...

    180套夹具设计方案获取请见文章末尾图片 实际生产当中,很多产品的加工过程都需要有夹具辅助来完成,一套既经济实用又安全可靠的夹具不仅可以大大提高产品的生产质量还可以提高生产效率,工人操作起来也非常舒适 ...

  8. 大头菜价格预测详解+模型

    这里写目录标题 关于动森中大头菜交易 周日 周一至周六 走势模型 1.波动型 上升期 上升期的价格区间 下降期 下降期的价格区间 2.递减型 3.三期型 下降期 L1 暴涨期 H 下降期 L2 下降期 ...

  9. 第七章、模型详解 -- 模型关系

    数据库实体间有3种对应关系:一对一,一对多,多对多. 一对一关系: 一个学生对应一个学生档案编号 一对多关系: 一个学生只属于一个班级,但一个班级有多名学生 在学生表中添加班级号字段作为外键,与班级表 ...

最新文章

  1. 关于ES性能调优几件必须知道的事
  2. 《超越需求:敏捷思维模式下的分析》—第1章 1.2节交付价值
  3. 应用监控指标采集器 Prometheus 核心介绍
  4. 电离辐射防护与辐射源安全基本标准_漳武南靖段A1项目成功举办桥面系 安全防护标准化观摩会...
  5. 接口中定义的成员变量是( )。_抽象与接口
  6. Split Byte(文件分割助手) v2.4
  7. Github | 标星9W+如何准备谷歌面试?
  8. 使用.net开发手机管理软件(一至三)
  9. java snmp全面开发解决方案(web service snmp网关、代理snmp网关、网络拓扑发现、SNMP数据采集等)...
  10. NULL值的处理注意不同数据库区别
  11. 《Linux运维实战:免费md5解密工具》
  12. 解读——等级保护定级指南
  13. 【干货】交换机网络故障排除
  14. 有什么软件可以免费下载歌曲?99%不知道这3款软件!
  15. 下载jar源码时,出现:cannt not download source Sources not found for
  16. VueCLI和Vite
  17. 邮箱附件钓鱼常用技法
  18. Visual C++编译错误:error C2220: 警告被视为错误 - 没有生成“object”文件
  19. 拼多多参谋在什么地方?多多参谋的作用是什么?
  20. 各大主流招聘平台的优缺点和适合人群【总结】

热门文章

  1. 计算机编程数学英语不好怎么办,英语和数学不好的人是不是学不会编程?
  2. DIV+CSS-01
  3. 谷歌眼镜设计规范之UI设计原则
  4. NEFU java课程实验一 程序控制语句实验
  5. MACD指标与成交量指标怎么配合使用?耳闻过成交量指标可以辅助MACD指标判势吗?
  6. EditText软键盘的显示隐藏及焦点问题
  7. 在GitHub上读大学 (附github地址)
  8. 作为互金产品经理,至少要具备哪些基本素质?
  9. 绍兴哪里能买到高仿的香奈儿,普拉达包包
  10. 杭州火车南站与杭州火车站的区别 杭州一日游