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