主要内容

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

Simulink Design Verifier 中的修改条件和决策覆盖率

根据您对 Simulink® Coverage™ 覆盖率记录所应用的设置,Simulink Coverage 中用于模型覆盖率分析的修改条件和决策 (MCDC)覆盖率的定义与 Simulink Design Verifier™ 中用于测试用例生成分析的定义之间可能会有所不同。

Simulink CoverageSimulink Design Verifier 的 MCDC 定义

Simulink Design VerifierSimulink Coverage 以两种不同的方式表示 MCDC 目标:

  • Simulink Coverage 将逻辑表达式的每个条件视为 MCDC 目标。

  • Simulink Design Verifier 将每个独立对的真假部分视为单独的 MCDC 目标。

Simulink Design Verifier 结果窗口显示已申述符合任何合理的 MCDC 目标。点击相应的查看链接即可在 Simulink Design Verifier 分析过滤器窗口中查看过滤器规则。

无法满足或未确定的 MCDC 目标包括申述链接。点击此链接可以创建相应的过滤器规则。由于 Simulink Coverage 中的每个 MCDC 目标都与 Simulink Design Verifier 中的两个 MCDC 目标相对应,因此 Simulink Design Verifier 中的 MCDC 目标是成对的。

例如,在下图中,当您点击 MCDC 表达式 expression for output with input port 4 false申述链接时,将创建一个过滤器规则,以对此 MCDC 目标以及该表达式为 true 时的 MCDC 目标进行申述。

On the left, the Simulink Design Verifier Results window shows results for the model analyzed. On the right, the Analysis Filter window shows justified MCDC outcomes and their rationales.

Simulink Design Verifier 始终使用封装 MCDC 定义来生成测试用例。默认情况下,Simulink Coverage 在记录覆盖率时也使用封装 MCDC 定义。但是,如果将 CovMcdcMode 模型配置参数设置为 'UniqueCause'Simulink Coverage 将在记录覆盖率时使用唯一原因 MCDC 定义。有关封装 MCDC 定义和唯一原因 MCDC 定义之间的差异的信息,请参阅 Simulink Coverage 中的修改条件和决策覆盖率 (MCDC) 定义 (Simulink Coverage)

CovMcdcMode 模型配置参数设置为 'UniqueCause' 可能会导致 Simulink Coverage 中的 MCDC 报告与 Simulink Design Verifier 中的测试生成之间出现差异。在包含 ANDOR 运算符混合的逻辑表达式的分析结果中可以看到这种差异的一个示例,就像这个 Stateflow® 转移一样。

Stateflow transition 1 condition [(A && B) || C] that sets {out = 1;}. Transition 2 does not have a condition and sets {out = 0;}.

假设 ABC 分别是单独的输入,则有五种可能的方法来评估 Stateflow 转移的条件,如下表所示。

 ABC(A && B) || C
1FXFF
2FXTT
3TFFF
4TFTT
5TTXT

满足布尔变量的 MCDC 需要一对条件评估,表明仅该变量的变化就会改变整个表达式的评估。在此示例中,对于 C,无论是 1、2 对还是 3、4 对,MCDC 都可以满足。在这两种情况下,表达式的值都会因为 C 的值发生变化而发生变化,而所有其他变量值保持不变。

每对都有一组不同的 AB 值,这些值保持不变,但每对包含一个 Cout 为真的评估以及一个 Cout 为假的评估。为了满足 C 的 MCDC,Simulink Design Verifier 测试生成分析接受 Cout 的任意一对包含一个真值评估和一个假值评估的对。在此示例中,Simulink Design Verifier 测试生成分析不仅接受对 1、2 和对 3、4,还接受对 1、4 和对 2、3。Simulink Coverage 使用唯一原因 MCDC 定义的模型覆盖率分析仅满足对 1、2 或对 3、4。

前面的示例假设 ABC 都是单独的输入。当输入 A 被限制为与 C 相同的值时(如在此模型中),只有一部分条件评估是可能的。

下表显示了 Stateflow 转移的条件评估子集。

 ABC(A && B) || C
1FXFF
4TFTT
5TTXT

评估 2 和 3 不再可能,因此对 1、2 和对 3、4 都不可能。因此,在 Simulink Coverage 模型覆盖率分析中,C 的唯一原因 MCDC 不再能够满足。但是,由于对 1、4 仍然是可能的,Simulink Design Verifier 测试生成分析报告称 C 的 MCDC 是可满足的。

对于混合使用 ANDOR 运算符的逻辑表达式的 MCDC 分析的复杂性,导致了设置为唯一原因 MCDC 分析的 Simulink CoverageSimulink Design Verifier 的结果之间存在差异。默认的 CovMcdcMode 模型配置参数值 'Masking' 不会导致这种差异。然而,如果您需要在 Simulink Coverage 中使用唯一原因 MCDC 分析,则可以通过在 Simulink Design Verifier 中使用 IndividualObjectives 测试套件优化进行测试生成分析来尽量减少这种影响。有关详细信息,请参阅 测试套件优化 的提示部分。

另请参阅

主题