主要内容

模型覆盖的类型

万博1manbetx®Coverage™可以执行多种类型的覆盖分析。

执行覆盖(EC)

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

决策覆盖范围(DC)

决策覆盖范围分析了代表模型中决策点的元素,例如交换块或eventsflow®状态。对于每个项目,决策覆盖范围通过遍历模拟的项目确定模拟路径总数的百分比。

有关模型覆盖报告中的决策覆盖数据的示例,请参阅分析的决定

条件覆盖(CC)

条件覆盖范围分析块输出其输入的逻辑组合(例如,逻辑运算符块)和状态流转换。当在模型中导致逻辑块的每个实例以及在模拟期间,在模拟期间至少一次的每个条件,在模拟期间,在模拟期间至少一次的情况下,测试案例达到全面覆盖。条件覆盖分析报告测试用例是否完全覆盖了模型中每个块的块。

收集模型的覆盖范围时,您可能无法实现100%的条件覆盖范围。例如,如果您通过选择指定短路逻辑块,请选择将Simul万博1manbetxink逻辑块视为短路在里面报道窗格中,您可能无法为该块实现100%的条件覆盖率。看到MCDC分析为更多的信息。

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

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

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

  • 当一个输入的一个完全的输入,无关的任何其他输入时,测试案例为块的完全覆盖率导致块输出的变化。

  • 当在条件的变化触发每个条件时,测试案例在状态流过渡时实现了全面的覆盖范围。

如果您的模型包含定义具有不同类型逻辑运算符和超过12条条件的表达式的块,则该软件无法记录MCDC覆盖范围。

因为万博1manbetxSimulink覆盖范围MCDC覆盖范围可能无法实现完全决策或条件覆盖,您可以实现100%MCDC覆盖范围没有实现100%的决策覆盖范围。

一些Sim万博1manbetxulink对象万博1manbetx支持MCDC覆盖,一些对象仅支持条件覆盖范围,以及一些对象仅支持决策覆盖范围。表中的表覆盖范围的模型对象列出哪些对象接收哪种类型的模型覆盖范围。例如,组合逻辑块可以接收决策覆盖范围和条件覆盖,但不是MCDC覆盖范围。

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

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

如果您独立运行测试用例并累积所有覆盖结果,则可以确定您的模型是否遵守修改的条件和决策覆盖标准。有关DO-178C / DO-331标准的更多信息,请参阅DO-178C / DO-331支票(万博1manbetxSimulink检查)

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

圈复杂性

圈复杂度是对模型结构复杂性的度量。它近似于由模型生成的代码的McCabe复杂度度量。生成的代码的复杂性度量可能与模型的不同,这是由于该分析没有考虑到的代码特性,例如整合逻辑和错误检查。

要计算对象的循环复杂性(例如块,图表或状态),模型覆盖范围使用以下公式:

C = σ. 1 N O. N - 1

N对象所代表的决策点的数量和O.N是该的成果数量N决策点。该计算考虑向量化操作或多端口交换机块作为一个决定点。该工具将1添加到原子子系统和状态流图的复杂性编号。

对于模型覆盖报告中的循环复杂性数据的示例,请参阅圈复杂性

查找表的报道

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

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

笔记

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

信号范围覆盖范围

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

该软件没有记录用于控制信号的信号范围覆盖,由一个块使用的信号用于启动另一个块的执行。看到控制信号

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

对于模型覆盖报告中的信号范围覆盖数据的示例,请参阅信号范围分析

笔记

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

信号尺寸覆盖范围

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

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

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

有关可变大小信号的更多信息,请参见适应信号基础知识

目标和限制

万博1manbetxSimulink覆盖范围软件收集以下模型覆盖数据万博1manbetxSimulink Design Verifier™块和matlab.®用于代码生成功能:

万博1manbetx仿真软件设计验证器 用于MATLAB的代码生成函数
测试条件(万博1manbetxSimulink Design Verifier) sldv.condition(万博1manbetxSimulink Design Verifier)
测试目标(万博1manbetxSimulink Design Verifier) sldv.test.(万博1manbetxSimulink Design Verifier)
证明假设(万博1manbetxSimulink Design Verifier) sldv.assume(万博1manbetxSimulink Design Verifier)
证明目标(万博1manbetxSimulink Design Verifier) sldv.prove.(万博1manbetxSimulink Design Verifier)

如果你没有万博1manbetx仿真软件设计验证器许可证,您可以为包含这些块或功能的模型收集模型覆盖率,但不能使用万博1manbetx仿真软件设计验证器软件

通过添加一个或多个万博1manbetx仿真软件设计验证器块或函数到您的模型中,您可以:

  • 检查一个结果万博1manbetx仿真软件设计验证器分析,运行生成的测试用例,并使用块遵守结果。

  • 使用测试目标块定义模型要求,并使用在模拟期间收集的软件的模型覆盖数据验证结果。

  • 分析模型,创建测试线束,并使用测试目标块模拟线束来收集模型覆盖数据。

  • 分析模型并使用证明假设块来验证任何CondereRexample万博1manbetx仿真软件设计验证器识别。

如果指定收集万博1manbetx仿真软件设计验证器覆盖范围:

  • 软件收集覆盖范围为万博1manbetx仿真软件设计验证器模块和功能。

  • 软件检查连接到每个信号的数据类型万博1manbetx仿真软件设计验证器堵塞。如果信号数据类型是固定点,则块参数也必须是固定点。如果信号数据类型不是固定点,则软件尝试转换块参数数据类型。如果软件无法转换块参数数据类型,则软件报告错误,并且必须明确分配块参数数据类型以匹配信号。

  • 如果您的模型包含验证子系统块,则该软件仅记录覆盖范围万博1manbetx仿真软件设计验证器街区在验证子系统(万博1manbetxSimulink Design Verifier)堵塞;它不会为验证子系统中的任何其他块记录覆盖范围。

如果您未指定收集万博1manbetx仿真软件设计验证器覆盖范围,软件不会检查任何数据类型万博1manbetx仿真软件设计验证器模型中的块和函数,不会收集覆盖范围。

的覆盖率数据示例万博1manbetx仿真软件设计验证器模型覆盖报告中的块或函数,参见万博1manbetxSimulink设计验证程序覆盖范围

在整数溢出覆盖范围内饱和

对整数溢出覆盖的饱和检查块,例如ABS块,与在整数溢出上饱和参数选择。只有具有此参数的块选择在整数溢出覆盖范围内接收饱和。

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

当块在整数溢出至少一次并且至少一次饱和时,测试案例达到完全覆盖。

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

关系边界覆盖范围

关系边界覆盖率检查具有显式或隐式关系操作的块,状态溢图和MATLAB功能块。

对于这些模型对象,度量标准记录模拟是否测试了以下操作:

  • 相同的操作数值。

    只有在两个操作数都是整数或固定点号的情况下,此部分的关系边界覆盖范围仅适用。

  • 通过一定容差不同的操作数值。

    关系边界覆盖范围的这一部分适用于所有操作数。对于整数和定点操作数,可以修复公差。对于浮点操作数,您可以使用预定义的公差,或者您可以指定您自己的公差。

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

操作数数据类型 宽容
浮点,如单身的要么

MAX(ABSTOL,RELTOL * MAX(| LHS |,| RHS |))

  • ab是您指定的绝对容差值。默认为1 e-05

  • RELTOL.是您指定的相对容忍度。默认为0.01

  • LHS.是左操作数和园艺学会正确的操作数。

  • max (x, y)回报X要么y,以较大者为准。

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

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

  1. 浮点

  2. 不动点

  3. 整数

如果两个操作数是固定点,但具有不同的精度,则精度的较小值用作容差。

在选择此度量标准时,您可以指定绝对和相对公差的值,用于浮点输入的关系边界覆盖范围覆盖度量标准部分的覆盖面板配置参数对话框。

欲了解更多信息: