覆盖范围模型报告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
),但适用于其后代。图表-本节报告图表的覆盖范围:
覆盖范围(此对象):图表及其输入的覆盖数据
覆盖范围(有限公司)后代:图表的覆盖数据以及图表中的状态和转换。
如果单击节标题中图表名称的超链接,则图表将在状态流编辑器中打开。
决策覆盖率显示在图表及其子图中。不适用于条件覆盖范围和MCDC (
NA
),但适用于其后代。
州详情报告组
对于图表中的每个州,覆盖率报告包含一个状态部分,详细说明该州的覆盖率记录。
在sf_boiler
模型,状态在
在盒子里加热器
.在
是一个超状态,它包含:
两个亚态
高
而且规范
历史的转折点
这个函数
温暖的
覆盖报告包括一个状态国家部分在
.
决策覆盖范围为在
状态测试执行哪个子状态的决定。
报告中列出了三项决定:
下亚态执行,何时执行哪个子状态
在
执行。下父状态退出时子状态退出,何时哪个子状态是活动的
在
退出。规范
什么时候被列为从未活动在
退出,因为覆盖工具看到了超转换规范
来从
作为一个过渡在
来从
.下由于历史原因,先前处于活跃状态,哪个子状态重新进入时
在
重新执行。历史连接记录先前活动的子状态。
因为每个决定都可能导致任何一种结果高
或规范
,总可能结果为3 × 2 = 6.结果表明,在模拟过程中测试了六种可能结果中的五种。
的后代也适用圈复杂度和决策覆盖率在
状态。根据情况所需要的决定(温暖())
因为从HIGH到NORM的转换使得总可能的决策结果为8。不适用于条件覆盖范围和MCDC (NA
)为一个国家。
请注意
组成圈复杂度计算的节点和边与模型对象(状态、转换等)没有直接关系。相反,这种计算需要等效控制流的图形表示。
过渡详情报告组
转换的报告出现在其所属对象的报告部分之下。转换不会出现在Summary部分的模型层次结构中,因为该层次结构基于拥有其他statflow对象的超状态。
这个转换的决定取决于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
的左边|
如果任意一个条件都是假的C1
,C2
,或C3
是假的。这同样适用于右边的结果C4
或C5
是假的。当搜索通过改变一个条件来改变决策结果的匹配对时,保持其他一些条件不变是无关紧要的。在这些情况下,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。