金宝app®覆盖™可以执行多种类型的覆盖分析。
执行覆盖是覆盖的最基本形式。对于每个项目,执行覆盖率决定了是否在模拟期间执行该项目。
决策覆盖范围分析了代表模型中决策点的元素,例如交换块或eventsflow®州。对于每个项目,决策覆盖率决定了模拟所遍历的项目的模拟路径总数的百分比。
有关模型覆盖报告中的决策覆盖数据的示例,请参阅决策分析.
条件覆盖范围分析块输出其输入的逻辑组合(例如,逻辑运算符块)和状态流转换。当在模型中导致每个输入到模型中的逻辑块的每个实例以及在模拟期间,在模拟期间,在模拟期间至少一次的每个条件,测试案例会达到完全覆盖范围条件覆盖率分析报告测试用例是否完全覆盖了模型中每个块的块。
收集模型的覆盖范围时,您可能无法达到100%的条件覆盖范围。例如,如果您通过选择指定短路逻辑块,请选择将Simul金宝appink逻辑块视为短路在报道窗格中,您可能无法为该块实现100%的条件覆盖率。看到MCDC分析为更多的信息。
有关模型覆盖报告中的条件覆盖数据的示例,请参阅条件分析.
改进的条件/决策覆盖分析金宝app仿真软件覆盖软件扩展了决策和条件覆盖能力。它分析输出逻辑组合的输入和状态流转换的块,以确定测试用例在多大程度上测试逻辑块输入和转换条件的独立性。
当一个输入的更改(独立于任何其他输入)导致块输出的更改时,测试用例实现了块的完全覆盖。
当条件中的更改触发每个条件的转换至少有一次的时候,测试用例就可以实现statflow转换的完全覆盖。
如果您的模型包含定义具有不同类型逻辑运算符和超过12条条件的表达式的块,则该软件无法记录MCDC覆盖范围。
因为金宝app仿真软件覆盖MCDC覆盖可能无法达到完全的决策或条件覆盖,但可以达到100%的MCDC覆盖没有实现100%的决策覆盖率。
一些Sim金宝appulink对象支持MCD金宝appC覆盖,一些对象仅支持条件覆盖范围,以及一些对象仅支持决策覆盖范围。表中的表覆盖范围的模型对象列出哪些对象接收哪些类型的模型覆盖。例如,组合逻辑块可以接收决策覆盖和条件覆盖,但不能接收MCDC覆盖。
要为您的型号实现100%MCDC覆盖范围,由DO-178C / DO-331标准定义报道窗格中,选择修改条件/决策覆盖率(MCDC)作为结构覆盖水平.
当您收集模型的覆盖率时,您可能无法实现100%的MCDC覆盖率。例如,如果指定短路逻辑块,则可能无法对该块实现100%的MCDC覆盖。
如果您独立地运行测试用例并积累所有的覆盖结果,您可以确定您的模型是否符合修改的条件和决策覆盖标准。有关DO-178C/DO-331标准的更多信息,请参阅- 331 - 178 - c /做检查吗(金宝app仿真软件检查).
圈复杂度是对模型结构复杂性的度量。它近似于由模型生成的代码的McCabe复杂度度量。生成的代码的复杂性度量可能与模型的不同,这是由于该分析没有考虑到的代码特性,例如整合逻辑和错误检查。
为了计算一个对象(如块、图或状态)的圈复杂度,模型覆盖率使用以下公式:
N.对象所代表的决策点的数量和O.N.是达成的成果数量N.决策点。该计算考虑向量化操作或多端口切换块作为一个单一的决策点。该工具将原子子系统和状态流图的复杂性数字增加了1。
有关模型覆盖报告中的循环复杂性数据的示例,请参阅圈复杂度.
查找表覆盖(LUT)检查块,例如1-D Lookup table块,它将输入信息输出到一个由输入和输出组成的表中,在表项之间插入或从表项推断。查找表覆盖率记录表查找使用每个插值间隔的频率。当测试用例执行每个插值和外推间隔至少一次时,它就会实现完全覆盖。对于模型中的每个查询表块,覆盖率报告显示一个查询表的彩色地图,指示每个插值。如果n-D查找表块的断点总数超过1,500,000,则软件无法记录该块的覆盖范围。
有关模型覆盖率报告中查找表覆盖率数据的示例,请参见n维查找表.
笔记
仅在仿真开始时配置查找表覆盖。如果调整在运行时影响查找表覆盖范围的参数,则不会更新受影响块的覆盖设置。
信号范围覆盖记录模型中每个块的最小和最大信号值,即模拟时测量的值。只有具有输出信号的块才能接收到信号范围覆盖。
该软件不记录控制信号的信号范围覆盖,一个块用来启动另一个块的执行。看到控制信号.
如果您的模型中的信号总数超过65535,或者您的模型中包含一个信号的宽度超过65535,则软件无法记录信号范围覆盖。
对于模型覆盖报告中的信号范围覆盖数据的示例,请参阅信号范围分析.
笔记
当您为具有单一范围覆盖的可重用子系统或statflow构造创建累积覆盖时,累积覆盖具有最大可能范围的信号值。有关更多信息,请参见获取可重用子系统和StateFlow®构造的累积覆盖范围.
信号大小覆盖记录模型中所有可变大小信号的最小、最大和分配大小。报告中只包含输出信号大小可变的块。
如果模型中的信号总数超过65535,或者您的模型包含宽度超过65535的信号,则软件无法记录信号大小覆盖。
有关模型覆盖报告中信号大小覆盖数据的示例,请参见信号大小覆盖可变尺寸信号.
有关可变大小信号的更多信息,请参见适应信号基础知识.
这金宝app仿真软件覆盖软件收集以下模型覆盖数据金宝appSimulink Design Verifier™块和MATLAB®对于代码生成函数:
金宝app仿真软件设计验证器块 | 用于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) |
如果你没有金宝app仿真软件设计验证器许可证,您可以为包含这些块或功能的模型收集模型覆盖率,但不能使用金宝app仿真软件设计验证器软件
通过添加一个或多个金宝app仿真软件设计验证器块或函数到您的模型中,您可以:
检查a的结果金宝app仿真软件设计验证器分析,运行生成的测试用例,并使用块来观察结果。
使用测试目标块定义模型要求,并使用在模拟期间收集的软件的模型覆盖数据验证结果。
分析模型,创建一个测试工具,并使用test Objective块模拟工具来收集模型覆盖数据。
分析模型并使用证明假设块来验证任何CondereRexample金宝app仿真软件设计验证器标识。
如果指定收集金宝app仿真软件设计验证器覆盖范围:
软件收集覆盖范围为金宝app仿真软件设计验证器模块和功能。
软件检查连接到每个信号的数据类型金宝app仿真软件设计验证器堵塞。如果信号数据类型是固定点,则块参数也必须是固定点。如果信号数据类型不是固定点,则软件尝试转换块参数数据类型。如果软件无法转换块参数数据类型,则软件将报告错误,并且必须明确分配块参数数据类型以匹配信号。
如果您的模型包含一个Verification Subsystem块,则该软件只记录以下内容的覆盖率金宝app仿真软件设计验证器块的验证子系统(金宝appSimulink Design Verifier)堵塞;它不会记录验证子系统中的任何其他块的覆盖范围。
如果您没有指定收集金宝app仿真软件设计验证器覆盖范围,软件不检查任何数据类型金宝app仿真软件设计验证器模块和函数在您的模型中,并且不收集覆盖范围。
的覆盖率数据示例金宝app仿真软件设计验证器模型覆盖报告中的块或函数,参见金宝appSimulink设计验证器覆盖.
对整数溢出覆盖的饱和检查块,例如ABS块,整数溢出饱和参数选择。只有选择此参数的块才会在整数溢出覆盖上饱和。
Saturate on integer overflow coverage记录了块在整数溢出上饱和的次数。
当块在整数溢出时至少饱和一次且不饱和至少一次时,测试用例将达到完全覆盖。
在模型覆盖报告中的整数溢出覆盖数据上的饱和示例,请参阅饱和整数溢出分析.
关系边界覆盖率检查具有显式或隐式关系操作的块,extendflow图表和matlab函数块。
对于这些模型对象,度量记录了模拟是否使用以下方法测试关系操作:
操作数的值相等。
关系边界覆盖的这一部分只适用于两个操作数都是整数或定点数的情况。
通过一定容差不同的操作数值。
关系边界覆盖的部分适用于所有操作数。对于整数和定点操作数,可以修复公差。对于浮点操作数,您可以使用预定义的公差,或者您可以指定您自己的公差。
容忍值取决于两个操作数的数据类型。如果两个操作数具有相同的类型,则公差遵循以下规则:
操作数数据类型 | 宽容 |
---|---|
浮点数,例如单身的 或双 |
|
不动点 | 最小有效位对应的值。有关更多信息,请参见精度(定点设计师).要找到精度值,请使用lsb (定点设计师)函数。 |
整数 | 1 |
布尔 | N/A |
枚举 | N/A |
如果两个操作数有不同的类型,则公差遵循更严格类型的规则。如果其中一个操作数是布尔值,则容忍值遵循另一个操作数的规则。严格程度按以下顺序递减:
浮点
不动点
整数
如果两个操作数都是固定点,但具有不同的精度,则使用较小的精度值用作容差。
属性中选择此度量时,将为浮点输入的关系边界覆盖指定绝对公差和相对公差的值覆盖度量标准部分的覆盖面板的对话框。
欲了解更多信息:
这个覆盖率指标是如何出现在报告中的,看到了吗关系边界.
哪个模型对象接收这个覆盖范围,参见覆盖范围的模型对象.
如何从Matlab命令行获取覆盖结果,查看收集模型中受支持块的关系边界覆盖金宝app.