模型覆盖的类型
金宝app®覆盖™可以执行几种类型的覆盖率分析。
执行范围(EC)
执行保险是最基本的保险形式。对于每个项,执行覆盖率决定在模拟期间是否执行该项。
决策范围(DC)
决策覆盖分析模型中表示决策点的元素,例如Switch块或Stateflow®州。对于每个项目,决策覆盖率决定模拟遍历的通过项目的模拟路径总数的百分比。
有关模型覆盖率报告中决策覆盖率数据的示例,请参见决策分析.
投保范围(CC)
条件覆盖分析输出输入的逻辑组合(例如,逻辑操作符块)和状态流转换的块。当测试用例使模型中逻辑块的每个实例的每个输入以及转换的每个条件在模拟期间至少一次为真,在模拟期间至少一次为假时,它就实现了完全覆盖。条件覆盖分析报告测试用例是否完全覆盖模型中每个块的块。
当您收集模型的覆盖率时,您可能无法实现100%的条件覆盖率。例如,如果指定要短路逻辑块,则通过选择将Simul金宝appink逻辑块视为短路在报道窗格中,您可能无法为该块实现100%的条件覆盖。看到MCDC分析获取更多信息。
有关模型覆盖率报告中条件覆盖率数据的示例,请参见条件分析.
修改条件/决策覆盖率(MCDC)
修改的条件/决策覆盖率分析金宝app仿真软件覆盖软件扩展了决策和条件覆盖能力。它分析输出输入和状态流转换的逻辑组合的块,以确定测试用例在多大程度上测试逻辑块输入和转换条件的独立性。
当一个输入的变化独立于任何其他输入,导致块输出的变化时,测试用例实现了对块的完全覆盖。
当条件中的更改触发每个条件的转换时,至少有一次,那么测试用例就实现了状态流转换的完全覆盖。
如果您的模型包含定义表达式的块,这些表达式具有不同类型的逻辑运算符和超过12个条件,那么软件就不能记录MCDC覆盖范围。
因为金宝app仿真软件覆盖MCDC覆盖率可能无法实现完全决策或条件覆盖率,但可以实现100% MCDC覆盖率没有实现100%的决策覆盖率。
一些Sim金宝appulink对象支持MCD金宝appC覆盖,一些对象只支持条件覆盖,还有一些对象只支持决策覆盖。表格中为接受覆盖的对象建模列出哪些对象接收哪种类型的模型覆盖。例如,组合逻辑块可以接收决策覆盖和条件覆盖,但不能接收MCDC覆盖。
根据DO-178C/DO-331标准的定义,为使您的型号实现100% MCDC覆盖,请在报道窗格中的“配置参数”,选择修改条件/决策覆盖率(MCDC)随着结构覆盖级别.
当您收集模型的覆盖率时,您可能无法实现100%的MCDC覆盖率。例如,如果指定短路逻辑块,则可能无法为该块实现100%的MCDC覆盖。
如果您独立地运行测试用例并积累所有的覆盖结果,您可以确定您的模型是否遵循修改后的条件和决策覆盖标准。有关DO-178C/DO-331标准的详细信息,请参见- 331 - 178 - c /做检查吗(金宝app仿真软件检查).
圈复杂度
使用这个度量来计算模型的圈复杂度。圈复杂度是一个模型结构复杂度的度量。模型的复杂度度量可能与生成的代码不同,这是由于分析没有考虑到的代码特性,例如合并逻辑和错误检查。
为了计算对象(如块、图表或状态)的圈复杂度,模型覆盖率使用以下公式:
N对象所代表的决策点的数量和on结果的数量是多少n决定点。计算考虑一个向量化的操作或多端口切换块作为一个单一的决策点。该工具为原子子系统和状态流程图的复杂度增加了1。
结果为以下情况提供了局部和聚合圈复杂度:
模型
子系统
图表
MATLAB®功能
局部复杂度是对象在其层次层次上的圈复杂度。聚合圈复杂度是一个对象及其后代的圈复杂度。
圈复杂度:
不能在库模型上运行。
分析屏蔽子系统中的内容。
不分析非活动变量。
如果指定,则分析库链接块或引用模型的内容。
不以加速模式分析参考模型。
有关模型覆盖率报告中圈复杂度数据的示例,请参见模型覆盖率报告中的圈复杂度.有关代码圈复杂度的详细信息,请参见圈复杂度.
查找表覆盖范围
查找表覆盖(LUT)检查块,例如1-D Lookup table块,它从输入和输出表中的输入输出信息,在表项之间进行插值或从表项中进行外推。查找表覆盖率记录表查找使用每个插补间隔的频率。当一个测试用例至少执行一次插值和外推间隔时,它就实现了完全覆盖。对于模型中的每个查找表块,覆盖率报告显示查找表的彩色映射,指示每个插值。如果一个n-D查找表块的断点总数超过1,500,000,软件就不能记录该块的覆盖率。
有关模型覆盖率报告中查找表覆盖率数据的示例,请参见n维查找表.
请注意
仅在模拟开始时配置查找表覆盖率。如果在运行时调优影响查找表覆盖的参数,则不会更新受影响块的覆盖设置。
信号范围
信号范围覆盖记录模型中每个块的最小和最大信号值,在模拟过程中测量。只有带有输出信号的块才能接收信号范围覆盖。
该软件不记录控制信号的信号范围覆盖范围,信号被一个块用来启动另一个块的执行。看到控制信号.
如果模型中的信号总数超过65535,或者模型中包含宽度超过65535的信号,则软件无法记录信号范围覆盖。
有关模型覆盖报告中信号范围覆盖数据的示例,请参见信号范围分析.
请注意
当您为具有单一范围覆盖的可重用子系统或statflow构造创建累积覆盖时,累积覆盖具有最大的信号值可能范围。有关更多信息,请参见获取可重用子系统和Stateflow®结构的累积覆盖率.
信号大小范围
信号大小覆盖记录了模型中所有可变大小信号的最小、最大和分配大小。报告中只包括具有可变大小输出信号的块。
如果模型中的信号总数超过65535,或者模型中包含的信号宽度超过65535,则软件无法记录信号大小覆盖范围。
有关模型覆盖率报告中信号大小覆盖率数据的示例,请参见可变维信号的信号大小覆盖.
有关可变大小信号的更多信息,请参见可变大小信号基础.
目标及限制范围
的金宝app仿真软件覆盖软件为以下内容收集模型覆盖率数据金宝appSimulink设计验证器™block和MATLAB代码生成功能:
金宝appSimulink设计验证器块 | MATLAB代码生成函数 |
---|---|
测试条件(金宝appSimulink Design Verifier) | sldv.condition (金宝appSimulink Design Verifier) |
测试的目标(金宝appSimulink Design Verifier) | sldv.test (金宝appSimulink Design Verifier) |
证明假设(金宝appSimulink Design Verifier) | sldv.assume (金宝appSimulink Design Verifier) |
客观的证据(金宝appSimulink Design Verifier) | sldv.prove (金宝appSimulink Design Verifier) |
如果你没有金宝appSimulink设计验证器许可证,您可以为包含这些块或函数的模型收集模型覆盖率,但不能使用金宝appSimulink设计验证器软件
通过添加一个或多个金宝appSimulink设计验证器块或函数到你的模型中,你可以:
检查的结果金宝appSimulink设计验证器分析,运行生成的测试用例,并使用这些块来观察结果。
使用Test Objective块定义模型需求,并使用软件在模拟过程中收集的模型覆盖率数据验证结果。
分析模型,创建一个测试集束,并使用test Objective块模拟集束来收集模型覆盖率数据。
分析模型并使用证明假设块来验证任何反例金宝appSimulink设计验证器标识。
如果您指定收集金宝appSimulink设计验证器覆盖范围:
该软件收集覆盖金宝appSimulink设计验证器块和函数。
该软件检查连接到每个信号的数据类型金宝appSimulink设计验证器块。如果信号数据类型为定点,则块参数也必须为定点。如果信号数据类型不是定点,软件尝试转换块参数数据类型。如果软件不能转换块参数数据类型,则软件报告错误,您必须显式地分配块参数数据类型以匹配信号。
如果您的模型包含一个验证子系统块,软件只记录覆盖金宝appSimulink设计验证器块的验证子系统(金宝appSimulink Design Verifier)块;它不记录验证子系统中任何其他块的覆盖范围。
如果没有指定要收集金宝appSimulink设计验证器覆盖范围,软件不检查任何数据类型金宝appSimulink设计验证器块和函数,并且不收集覆盖率。
的覆盖率数据示例金宝appSimulink设计验证器模型覆盖率报告中的块或函数,请参见金宝appSimulink设计验证覆盖率.
饱和整数溢出覆盖
对整数溢出覆盖的饱和检查块,例如腹肌块,使用饱和整数溢出参数选择。只有选择此参数的块接收整数溢出覆盖饱和。
整数溢出饱和覆盖记录块整数溢出饱和的次数。
当块在整数溢出上至少饱和一次且至少不饱和一次时,测试用例就实现了完全覆盖。
有关在模型覆盖率报告中饱和整数溢出覆盖率数据的示例,请参见饱和整数溢出分析.
相关边界覆盖范围
关系边界覆盖检查具有显式或隐式关系操作的块、状态流程图和MATLAB函数块。
对于这些模型对象,度量记录模拟是否使用以下工具测试关系操作:
相等的操作数值。
只有当两个操作数都是整数或定点数时,关系边界覆盖的这部分才适用。
操作数值相差一定的容差。
关系边界覆盖的这一部分适用于所有操作数。对于整数和定点操作数,公差是固定的。对于浮点操作数,可以使用预定义的容差值,也可以指定自己的容差值。
公差值取决于两个操作数的数据类型。如果两个操作数具有相同的类型,则公差遵循以下规则:
操作数的数据类型 | 宽容 |
---|---|
浮点数等单 或双 |
|
不动点 | 对应于最低有效位的值。有关更多信息,请参见精度(定点设计师).要查找精度值,请使用lsb (定点设计师)函数。 |
整数 | 1 |
布尔 | N/A |
枚举 | N/A |
如果两个操作数具有不同的类型,则公差遵循更严格类型的规则。如果其中一个操作数是布尔型,则公差遵循另一个操作数的规则。严格程度按以下顺序递减:
浮点
不动点
整数
如果两个操作数都是定点,但精度不同,则使用精度中较小的值作为公差。
控件中选择此度量时,指定浮点输入的关系边界覆盖的绝对公差和相对公差的值覆盖率度量章节。覆盖面板的“配置参数”对话框。
欲了解更多信息:
覆盖率度量如何出现在报告中,看到了吗关系边界.
哪些模型对象接受这个覆盖,见表中的为接受覆盖的对象建模.
如何从MATLAB命令行获取覆盖率结果,参见收集模型中受支持块的关系边界覆盖金宝app.