Main Content

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

Simulink Coverage 中的修改条件和决策覆盖 (MCDC) 定义

Simulink® Coverage™ 默认使用掩蔽修改条件和决策覆盖率(MCDC) 定义来记录 MCDC 覆盖率结果。虽然您可以将 Simulink Coverage 在分析过程中使用的 MCDC 定义更改为唯一原因 MCDC 定义,但是 Simulink Coverage 记录模型覆盖率的方式会根据您使用的定义而有所不同。

Simulink Coverage 覆盖率分析中屏蔽 MCDC 和唯一原因 MCDC 之间的差异

掩蔽 MCDC 考虑了子表达式中条件的掩蔽,与 MCDC 的唯一原因定义相比,可以增加满足的 MCDC 目标的数量。因此,一些使用唯一原因 MCDC 定义获得不完整 MCDC 覆盖率的 Simulink 模型在使用掩蔽 MCDC 定义时会获得增加的覆盖率。请考虑以下示例,其中 Stateflow® 图的两个输入,条件 A 和条件 C,不能独立改变:

Stateflow chart with four input ports. Ports A and C are branches of the same signal, input signal one. Port B is input signal two, and port D is input signal 3.

这种输入依赖性导致 Stateflow 图中包含的表达式的依赖条件:

对于表达式 (A||B)&&(C||D),改变条件 C 的值也会改变条件 A 的值。由于条件 A 和 C 相互依赖,无法实现条件 C 的唯一原因 MCDC:

Coverage report showing MCDC analysis where condition C is missing coverage.

但是,可以实现对条件 C 的掩蔽 MCDC,因为掩蔽 MCDC 允许条件 A 的值在条件 C 的独立对中发生变化,只要子表达式 (A||B) 保持为 true:

Coverage report showing MCDC analysis where all MCDC outcomes are fully satisfied.

MCDC 覆盖率的认证注意事项

DO-248C 讨论文件 #13“对语句覆盖、决策覆盖和修改条件/决策覆盖的讨论”指出,屏蔽 MCDC 是可以接受的,以满足 DO-178B 认证的 MCDC 目标。

设置用于 Simulink Coverage 覆盖率分析的 (MCDC) 定义

默认情况下,Simulink Coverage 在覆盖率分析期间使用掩蔽 MCDC 定义。有两种方法可以更改用于 Simulink Coverage 覆盖率分析的 MCDC 定义:

使用模型配置参数设置使用的 MCDC 定义

  1. 打开配置参数对话框。

  2. CovMcdcMode 参数设置为掩蔽Unique-Cause

使用 cvtest 对象设置使用的 MCDC 定义

为您的模型创建一个 cvtest 对象,以将 mcdcMode 设置为 'Masking''UniqueCause'

cvt = cvtest(model)
cvt.options.mcdcMode = 'UniqueCause'
covdata = cvsim(cvt)

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

CovMcdcMode 设置为 'UniqueCause' 可能会导致 Simulink Coverage 中的 MCDC 报告与 Simulink Design Verifier™ 中的测试生成之间存在差异。Simulink Design Verifier 始终使用屏蔽 MCDC 定义来生成测试用例。有关更多信息,请参阅Simulink Design Verifier 中的修改条件和决策覆盖率

相关主题

  • MCDC (Simulink Design Verifier)