主要内容

模型覆盖的类型

动态仿真模块®覆盖™可以执行几种类型的覆盖率分析。

执行范围(EC)

执行保险是最基本的保险形式。对于每个项目,执行覆盖率决定该项目是否在模拟期间执行。

决策范围(DC)

决策覆盖分析模型中表示决策点的元素,例如Switch块或Stateflow®州。对于每个项目,决策覆盖率决定模拟遍历的通过项目的模拟路径总数的百分比。

对于模型覆盖报告中的决策覆盖数据示例,请参见决策分析

投保范围(CC)

条件覆盖分析输出其输入的逻辑组合的块(例如,逻辑运算符块)和状态流转换。当测试用例使模型中逻辑块的每个实例的每个输入和转换上的每个条件在模拟期间至少一次为真,并且在模拟期间至少一次为假时,测试用例实现了完全覆盖。条件覆盖分析报告测试用例是否完全覆盖模型中每个块的块。

当您为一个模型收集覆盖率时,您可能无法达到100%的条件覆盖率。例如,如果指定要短路逻辑块,则通过选择将Simulink逻辑块视为短路报道窗格中,您可能无法为该块实现100%的条件覆盖。看到MCDC分析获取更多信息。

有关模型覆盖率报告中条件覆盖率数据的示例,请参见条件分析

修改条件/决策覆盖率(MCDC)

修改条件/决策覆盖分析仿真软件覆盖软件扩展了决策和条件覆盖能力。它分析输出输入和状态流转换的逻辑组合的块,以确定测试用例在多大程度上测试逻辑块输入和转换条件的独立性。

  • 当一个输入的变化独立于任何其他输入,导致块输出的变化时,测试用例实现了对块的完全覆盖。

  • 当条件中的更改触发每个条件的转换时,至少有一次,那么测试用例就实现了状态流转换的完全覆盖。

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

因为仿真软件覆盖MCDC覆盖率可能无法实现完全决策或条件覆盖率,但可以实现100% MCDC覆盖率没有达到100%的决策覆盖率。

一些Simulink对象支持MCDC覆盖,一些对象只支持条件覆盖,一些对象只支持决策覆盖。表格中为接受覆盖的对象建模列出哪些对象接收哪些类型的模型覆盖。例如,组合逻辑块可以接收决策覆盖和条件覆盖,但不能接收MCDC覆盖。

如DO-178C/DO-331标准所定义,为您的模型实现100%的MCDC覆盖报道窗格中的“配置参数”,选择修改条件/决策覆盖率(MCDC)随着结构覆盖水平

当您收集模型的覆盖率时,您可能无法实现100%的MCDC覆盖率。例如,如果指定短路逻辑块,则可能无法实现该块的100% MCDC覆盖。

如果您独立地运行测试用例并积累所有的覆盖结果,您可以确定您的模型是否遵循修改后的条件和决策覆盖标准。有关DO-178C/DO-331标准的更多信息,请参见- 331 - 178 - c /做检查吗(仿真软件检查)

有关模型覆盖率报告中MCDC覆盖率数据的示例,请参见MCDC分析。有关累积覆盖率结果的示例,请参见累计覆盖

圈复杂度

使用这个度量来计算模型的圈复杂度。圈复杂度是模型结构复杂度的度量。模型的复杂性度量可能与生成的代码不同,因为此分析没有考虑代码特性,例如合并逻辑和错误检查。

为了计算对象(如块、图表或状态)的圈复杂度,模型覆盖率使用以下公式:

c = 1 N o n 1

N对象所代表的决策点的数量和on结果的数量是多少n决策点。计算考虑矢量化操作或多端口切换块作为单个决策点。该工具为原子子系统和状态流图的复杂性增加了1。

结果为以下情况提供了局部和聚合圈复杂度:

  • 模型

  • 子系统

  • 图表

  • MATLAB®功能

局部复杂度是对象在其层次级别上的圈复杂度。聚合圈复杂度是一个对象及其后代的圈复杂度。

圈复杂度:

  • 不在库模型上运行。

  • 分析屏蔽子系统中的内容。

  • 不分析非活动变量。

  • 如果指定,则分析库链接块或引用模型的内容。

  • 不以加速模式分析参考模型。

有关模型覆盖报告中圈复杂度数据的示例,请参见模型覆盖率报告中的圈复杂度。有关代码圈复杂度的详细信息,请参见圈复杂度

查找表覆盖范围

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

有关模型覆盖率报告中查找表覆盖率数据的示例,请参见n维查找表

请注意

只在模拟开始时配置查找表覆盖。如果在运行时调优影响查找表覆盖的参数,则不会更新受影响块的覆盖设置。

信号范围

信号范围覆盖记录模型中每个块的最小和最大信号值,在模拟过程中测量。只有具有输出信号的块接收信号范围覆盖。

该软件不记录控制信号的信号范围覆盖,控制信号是一个块用来启动另一个块的执行的信号。看到控制信号

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

有关模型覆盖报告中信号范围覆盖数据的示例,请参见信号范围分析

请注意

当您为具有单一范围覆盖的可重用子系统或statflow构造创建累积覆盖时,累积覆盖具有最大的信号值可能范围。有关更多信息,请参见获取可重用子系统和Stateflow®结构的累积覆盖率

信号大小覆盖范围

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

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

有关模型覆盖报告中信号大小覆盖数据的示例,请参见可变维信号的信号大小覆盖

有关可变大小信号的详细信息,请参见可变大小信号基础

目标及限制范围

仿真软件覆盖软件为以下内容收集模型覆盖率数据Simulink设计验证器™block和MATLAB代码生成功能:

Simulink设计验证器 MATLAB代码生成函数
测试条件(Simulink Design Verifier) sldv.condition(Simulink Design Verifier)
测试的目标(Simulink Design Verifier) sldv.test(Simulink Design Verifier)
证明假设(Simulink Design Verifier) sldv.assume(Simulink Design Verifier)
客观的证据(Simulink Design Verifier) sldv.prove(Simulink Design Verifier)

如果你没有Simulink设计验证器许可证,您可以为包含这些块或函数的模型收集模型覆盖率,但不能使用Simulink设计验证器软件

通过添加一个或多个Simulink设计验证器块或函数到你的模型中,你可以:

  • 检查a的结果Simulink设计验证器分析、运行生成的测试用例,并使用块来观察结果。

  • 使用Test Objective块定义模型需求,并使用软件在模拟期间收集的模型覆盖数据验证结果。

  • 分析模型,创建测试工具,并使用test Objective块模拟工具,以收集模型覆盖率数据。

  • 分析模型并使用证明假设块来验证任何反例Simulink设计验证器标识。

如果您指定收集Simulink设计验证器覆盖范围:

  • 该软件收集覆盖Simulink设计验证器块和函数。

  • 软件检查连接到每个信号的数据类型Simulink设计验证器块。如果信号数据类型为定点,则块参数也必须为定点。如果信号数据类型不是定点,软件尝试转换块参数数据类型。如果软件不能转换块参数数据类型,则软件报告错误,您必须显式地分配块参数数据类型以匹配信号。

  • 如果你的模型包含一个验证子系统块,软件只记录覆盖Simulink设计验证器积木验证子系统(Simulink Design Verifier)块;它不记录验证子系统中任何其他块的覆盖率。

如果没有指定要收集Simulink设计验证器覆盖范围,软件不检查任何数据类型Simulink设计验证器块和函数,并且不收集覆盖率。

的覆盖率数据示例Simulink设计验证器模型覆盖报告中的块或函数,参见Simulink设计验证覆盖率

使整数溢出覆盖饱和

饱和于整数溢出覆盖检查块,例如腹肌Block,用饱和整数溢出参数选择。只有选择此参数的块接收整数溢出覆盖饱和。

整数溢出饱和覆盖记录块整数溢出饱和的次数。

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

有关模型覆盖率报告中饱和整数溢出覆盖率数据的示例,请参见饱和整数溢出分析

相关边界覆盖范围

关系边界覆盖检查具有显式或隐式关系操作的块、状态流程图和MATLAB函数块。

对于这些模型对象,度量记录模拟是否通过以下方式测试关系操作:

  • 相等的操作数值。

    关系边界覆盖的这一部分仅适用于两个操作数都是整数或定点数的情况。

  • 操作数值相差一定的容差。

    关系边界覆盖的这一部分适用于所有操作数。对于整数和定点操作数,容差是固定的。对于浮点操作数,可以使用预定义的容差值,也可以指定自己的容差值。

公差值取决于两个操作数的数据类型。如果两个操作数具有相同的类型,则容差遵循以下规则:

操作数数据类型 宽容
浮点数等

max(absTol, relstol * max(|lhs|,|rhs|))

  • absTol是您指定的绝对公差值。默认是1 e-05

  • relTol是指定的相对容差值。默认是0.01

  • 左操作数是和吗园艺学会右操作数。

  • max (x, y)返回xy,以较大者为准。

不动点 最低有效位对应的值。有关更多信息,请参见精度(定点设计师)。要查找精度值,请使用lsb(定点设计师)函数。
整数 1
布尔 N/A
枚举 N/A

如果两个操作数具有不同的类型,则公差遵循更严格类型的规则。如果其中一个操作数是布尔型,则公差遵循另一个操作数的规则。严格程度按以下顺序递减:

  1. 浮点

  2. 不动点

  3. 整数

如果两个操作数都是定点,但精度不同,则使用精度中较小的值作为公差。

对于具有浮点数据类型的关系边界,覆盖率报告使用标准间隔符号,其中方括号、[],表示包含和圆括号,(),表示排除。例如,一个表显示(tol . . 0)表示语句Value >= -tol && Value < 0

属性中选择此度量时,可以指定浮点输入的关系边界覆盖的绝对和相对容差值覆盖率度量章节。覆盖面板的“配置参数”对话框。

欲了解更多信息:

Baidu
map