Main Content

分析覆盖率并查看结果

启用覆盖率并选择所需的度量后,您必须对模型进行仿真以收集覆盖率结果。

首先,通过点击分析覆盖率按钮对模型进行仿真。仿真完成后,Simulink® Coverage™ 会根据覆盖率完整性突出显示模型对象。

Simulink window after simulation with coverage enabled. The model is highlighted, some blocks are green, red, or grey. On the right side of the model, a coverage report is open, docked in the Simulink window.

覆盖率详细信息窗格会自动打开并显示覆盖率报告。该报告将在详细信息部分自动打开,其中列出模型对象的覆盖率结果。您可以向上滚动以查看摘要部分和模型信息,也可以向下滚动以浏览各个模块。

window_system 子系统显示为绿色,因为该子系统内的每个模块均获得 100% 的覆盖率。其他子系统显示为红色,因为其中的一个或多个模块没有获得全覆盖率。

指向某个子系统可显示每个相关度量的覆盖率的简短摘要。例如,指向 power_window_control_system 子系统模块。

Coverage results popup. Decision 100% (2/2), Condition 79% (62/78), MCDC 32% (7/22), Execution 100% (39/39).

如果您左键点击某个模块,覆盖率详细信息窗格将显示该模块的报告部分。例如,点击 power_window_control_system 子系统。

Simulink window after clicking on a subsystem. The docked coverage report shows the section of the report that details coverage results for the subsystem.

您可以进入某个子系统来查看该子系统内容的详细覆盖率结果。双击 power_window_control_system 子系统以查看其包含的模块的覆盖率结果。双击 validate_passenger,然后双击 check_up

点击 And 模块 allow_action 以显示报告的相关部分。

Simulink window after clicking on the And block. The And block is red and the coverage report is displayed on the right.

由于 And 模块输出两个输入信号的逻辑组合,因此如果两个输入信号均为 true,则输出信号为 true。从条件表中可以看到,输入信号 1 在每个时间步均为 False,而输入信号 2 在 878 个时间步为 True,在 884 个时间步为 False

Condition table for the And block in the coverage report.

由于有四种条件结果,而其中一种没有出现,因此 allow_action 模块获得了 75% 的条件覆盖率。

已分析条件表下方是 MC/DC 分析表。

MCDC table for the And block in the coverage report.

MCDC 分析表列出了由于一种条件结果从 true 变为 false 或从 false 变为 true 而发生的决策逆转。此表报告在第一个条件的仿真期间只出现了 FF 情形,第二个条件没有出现 MCDC 目标,这导致报告的 MCDC 为 0%。

命令行信息

要从命令行执行相同的步骤,请输入以下命令:

simOut = sim(simIn);
covData = simOut.covData;
cvmodelview(covData);

相关主题