主要内容

本页采用了机器翻译。点击此处可查看最新英文版本。

Stateflow 真值表的模型覆盖率

Stateflow 真值表中的覆盖率类型

Simulink® Coverage™ 在 Stateflow® 图中报告对象在仿真过程中所做决策的模型覆盖率。该报告覆盖率了真值表函数所做出的决策。

对于这种类型的真值表...该报告包括...的覆盖率数据。
Stateflow 经典

仅限条件。

MATLAB®

条件并且仅具有决策点的那些动作。

注意

使用用于代码生成动作语言的 MATLAB,您可以使用控制流结构(例如循环和 switch 语句)指定动作中的决策点。

注意

要测量 Stateflow 真值表的模型覆盖率数据,您必须拥有 Stateflow 许可证。有关 Stateflow 真值表的更多信息,请参阅获取可重用子系统的累积覆盖率

分析 Stateflow 真值表中的覆盖率

如果您有 Stateflow 许可证,您可以为真值表生成模型覆盖率报告。

考虑以下模型。

Stateflow 图包含以下真值表:

当您仿真模型并收集覆盖率时,模型覆盖率报告包括以下数据:

覆盖率(此对象) 列显示没有覆盖率。原因是真值表函数的容器对象 - Stateflow 图 - 不会决定是否执行 ttable 真值表。

覆盖率(包括后代) 列显示真值表内容的覆盖率。覆盖率(包括后代) 列中后代的覆盖率包括真值表所表示的逻辑表达式的条件和决策的覆盖率。

ttable 真值表函数中对决策及其各自条件的覆盖率如下:

覆盖率说明

没有针对默认决策 D4 的模型覆盖率

所有导致做出默认决策的逻辑都是基于所有先前决策的 false 结果。这意味着默认决策不需要逻辑,因此没有模型覆盖率。

17% (1/6) 决策覆盖率

作为真值表输入的三个常数(100)仅导致决策 D1 为 true。这些输入仅满足六个决策中的一个(D1D3TF)。

因为每个条件可以有 TF 的结果值,所以三个条件可以有六个可能的值。

17% (3/18) 条件覆盖率

三个决策 D1D2D3 具有条件覆盖率,因为输入集 (100) 仅使决策 D1 为 true。

0% (0/9) MCDC 覆盖率

MCDC 覆盖率寻找由于一个条件结果从 T 变为 F 或从 F 变为 T 而发生的决策逆转。仿真仅测试一组输入,因此模型不会推翻任何决策。

缺失覆盖率

红色字母 TF 表示这些条件缺少模型覆盖率。对于决策 D1,只有 T 决策得到满足。对于决策 D2D3D4,所有条件均不满足。