主要内容

覆盖范围模型报告Stateflow图表

方法模拟模型时,将自动生成模型覆盖率报告运行按钮。如果你没有使用运行按钮,或者您加载的覆盖率数据没有模拟模型,生成一个模型覆盖率报告使用cvhtml.对于Stateflow®图表,金宝app®覆盖™记录图表本身的执行,以及构成每个决策的状态、转换决策和个别条件的执行。在模拟结束后,模型覆盖率报告了一个模型被测试的彻底程度。报告显示:

  • 由于父超状态历史记录,每个独占子状态执行或退出父超状态并进入父超状态的次数是多少

  • 每个过渡决策被评估为真或假的次数是多少

  • 每个条件被判断为真或假的次数是多少

请注意

要度量状态流程图的模型覆盖率数据,您必须:

  • 拥有状态流许可证。

  • 为图表启用调试/动画。

指定覆盖率报告设置Stateflow图表

中指定覆盖记录设置报道窗格中的“配置参数”对话框。

启用覆盖率分析还可以选择不同的覆盖率度量。下面几节只讨论影响状态流程图报告的覆盖率度量。这些指标包括决策覆盖率、条件覆盖率和MCDC覆盖率。

覆盖范围模型报告Stateflow图表

模型覆盖率报告的以下部分是通过模拟生成的sf_boiler模型,其中包括砰砰的枪声控制器图表。的覆盖度量MCDC为该报告启用。

摘要报告组

Summary部分显示了整个测试的覆盖率结果,并出现在Model coverage报告的开头。

层次结构中的每一行都总结了该级别及其以下级别的覆盖结果。您可以单击指向报告中后面部分的超链接,该部分具有相同的已分配的层次顺序号,该顺序号详细说明了覆盖率及其子覆盖率。

顶层,sf_boiler,是Simulin金宝appk模型本身。第二层,Bang-Bang Controller,是状态流程图。下一个层次是图表中的超状态,按照层次包容的顺序。每个超级州都使用一个SF:前缀。底层,锅炉厂模型,是模型中的一个附加子系统。

子系统和图表详细信息报告部分

在为状态流程图记录覆盖率时,金宝app仿真软件覆盖软件报告图表的两种类型的覆盖——子系统和图表。

  • 子系统-本节报告图表的覆盖范围:

    • 覆盖范围(此对象):将图表的覆盖数据作为容器对象

    • 覆盖范围(有限公司)后代:图表的覆盖数据以及图表中的状态和转换。

    如果单击节标题中子系统名称的超链接,Bang-Bang Controller块将在框图中突出显示。

    不适用决策范围(NA),因为这个图表没有明确的触发点。不适用于条件覆盖范围和MCDC (NA),但适用于其后代。

    Bang-Bang Controller子系统的覆盖结果报告该子系统获得了71%的决策覆盖率(14个条件结果中有10个满足),95%的决策覆盖率(22个决策结果中有21个满足)和43%的MCDC覆盖率(7个条件中有3个独立地影响决策结果)。

  • 图表-本节报告图表的覆盖范围:

    • 覆盖范围(此对象):图表及其输入的覆盖数据

    • 覆盖范围(有限公司)后代:图表的覆盖数据以及图表中的状态和转换。

    如果单击节标题中图表名称的超链接,则图表将在状态流编辑器中打开。

    决策覆盖率显示在图表及其子图中。不适用于条件覆盖范围和MCDC (NA),但适用于其后代。

    Bang-Bang Controller图表的覆盖结果报告,该图表获得了71%的决策覆盖率(14个条件结果中有10个满足),95%的决策覆盖率(22个决策结果中有21个满足)和43%的MCDC覆盖率(7个条件中有3个独立影响决策结果)。

州详情报告组

对于图表中的每个州,覆盖率报告包含一个状态部分,详细说明该州的覆盖率记录。

sf_boiler模型,状态在盒子里加热器是一个超状态,它包含:

  • 两个亚态而且规范

  • 历史的转折点

  • 这个函数温暖的

覆盖报告包括一个状态国家部分

“开启”状态的覆盖结果报告,该州在不包括其后代的情况下获得了83%的决策覆盖率(6个决策结果中有5个满足),在包括其后代的情况下获得了88%的决策覆盖率(8个决策结果中有7个满足)。

决策覆盖范围为状态测试执行哪个子状态的决定。

报告中列出了三项决定:

  • 亚态执行,何时执行哪个子状态执行。

  • 父状态退出时子状态退出,何时哪个子状态是活动的退出。规范什么时候被列为从未活动退出,因为覆盖工具看到了超转换规范作为一个过渡

  • 由于历史原因,先前处于活跃状态,哪个子状态重新进入时重新执行。历史连接记录先前活动的子状态。

因为每个决定都可能导致任何一种结果规范,总可能结果为3 × 2 = 6.结果表明,在模拟过程中测试了六种可能结果中的五种。

的后代也适用圈复杂度和决策覆盖率状态。根据情况所需要的决定(温暖())因为从HIGH到NORM的转换使得总可能的决策结果为8。不适用于条件覆盖范围和MCDC (NA)为一个国家。

请注意

组成圈复杂度计算的节点和边与模型对象(状态、转换等)没有直接关系。相反,这种计算需要等效控制流的图形表示。

过渡详情报告组

转换的报告出现在其所属对象的报告部分之下。转换不会出现在Summary部分的模型层次结构中,因为该层次结构基于拥有其他statflow对象的超状态。

“(40秒后)[cold()]”过渡报告的覆盖结果表明,过渡获得67%的条件覆盖率(满足6个条件结果中的4个),100%的决策覆盖率(满足2个决策结果中的2个),以及33%的MCDC(3个条件中的1个独立影响决策结果)。

这个转换的决定取决于40秒的时间延迟和条件(冷()).如果在40秒延迟后,环境是冷的(Cold () = 1),决定执行这个转换并打开加热器。对于其他时间间隔或环境条件,决定不执行。

对于决策覆盖率,有真结果也有假结果。因为发生了两个决策结果中的两个,覆盖率是完全或100%。

条件覆盖率显示,6个条件结果中只有4个进行了测试。时间逻辑语句(40秒后)表示两个条件:的发生证券交易委员会还有时间延迟(40秒后).因此,过渡存在三个条件:证券交易委员会(40秒后),冷().因为每个决定都可能是真或假,所以存在六种可能的条件结果。

条件分析表将每个条件显示为一行,其中记录了每个结果的出现次数(真或假)。没有出现可能结果的决策行被阴影覆盖。例如,第一行和第三行没有记录错误结果的发生。

在MCDC报告中,所有转换条件的出现集都被扫描,以寻找每个条件的特定决策对,其中以下条件为真:

  • 条件从真到假不等。

  • 影响决策结果的所有其他条件保持不变。

  • 决定的结果从真到假,或者相反。

对于由隐含AND运算符关联的三个条件,这些条件的出现可以满足这些标准。

条件测试

真正的结果

错误的结果

1

TTT

Fxx

2

TTT

TFx

3.

TTT

TTF

注意,在每一行中,测试的条件从真变为假,而另一个条件保持不变。不相关的贡献者用“x”编码(下面讨论)。如果在测试过程中出现这两种结果,则测试条件的覆盖率是完整的(100%)。

前面的报告示例只显示了条件2的覆盖率。条件1和3所需的错误结果都没有出现,在这两个条件下都用括号表示。因此,条件行1和3是阴影的。条件2已经过测试,条件1和3未经过测试,MCDC为33%。

对于某些决策,某些条件的值在某些情况下是不相关的。例如,在决策[C1 c2 c3 | c4 c5的左边|如果任意一个条件都是假的C1C2,或C3是假的。这同样适用于右边的结果C4C5是假的。当搜索通过改变一个条件来改变决策结果的匹配对时,保持其他一些条件不变是无关紧要的。在这些情况下,MCDC报告用“x”标记这些条件,以表明它们与结果无关。这些条件如下所示。

考虑第一对配对。的条件1为真真正的结果列,匹配时必须为假结果列。这使得条件C2而且C3与错误的结果无关C1 c2 c3总是false,如果C1是假的。此外,由于假的结果被要求评价为假的,评价C4 & c5也一定是假的。在这个案例中,找到了匹配C4= F,制造条件C5无关紧要的。

中C/ c++代码的代码覆盖率Stateflow图表

金宝app仿真软件覆盖如果状态流程图包含自定义C/ c++代码,则可以记录代码覆盖率。有关更多信息,请参见在Simulink模型中覆盖自定义C/ c++代码金宝app

模式覆盖范围Stateflow状态转换表

状态转换表是在statflow中表达模态逻辑的另一种方法。状态流程图以图形的形式表示模态逻辑,状态转换表可以以表格的形式表示等效的模态逻辑。有关更多信息,请参见状态转换表(Stateflow)

状态转换表的覆盖结果与等效状态流程图的覆盖结果是相同的,除了时间逻辑的覆盖略有不同。例如,考虑时间逻辑表达式蜱虫后(4)的模式逻辑图中slvnvdemo_covfilt模型的例子。

在图表覆盖中,蜱虫后(4)转换表示两个条件:发生蜱虫还有时间延迟蜱虫后(4).因为时间事件蜱虫永远不会为假,第一个条件是不满足的,你不能记录100%的条件和MCDC覆盖的过渡蜱虫后(4)

在状态转换表覆盖范围中蜱虫后(4)转换表示单个决策,没有发生的子条件蜱虫.因此,只记录决策覆盖率。

对于包含时间逻辑决策的状态转换表,如上面的示例,不记录条件覆盖和MCDC。