Main Content

使用 Simulink Coverage 分析模型

提示

如果您拥有 Simulink Test 许可证,则可以直接在测试管理器中收集和聚合覆盖率。有关详细信息,请参阅使用 Simulink Test 中的测试管理器分析模型覆盖率

使用 Simulink® Coverage™ 深入了解在仿真期间执行的模型部分,以发现模型中的 Bug 或测试中的缺失。您的工作流通常如下所示:

Flowchart that lists the workflow steps

启用覆盖率并选择度量

首先,您需要启用覆盖率并选择最适合您的模型的覆盖率度量。有关选择度量的详细信息,请参阅启用覆盖率并选择度量。有关特定模块的详细信息,请参阅Model Objects That Receive Coverage

分析覆盖率并查看结果

当您在启用覆盖率的情况下对模型进行仿真时,Simulink Coverage 会报告并突出显示仿真期间执行的模型元素。使用 Simulink 中的模型着色和覆盖率详细信息窗格来浏览覆盖率结果。您还可以使用覆盖率结果浏览器查看各个测试和聚合覆盖率,并查看哪些测试执行哪些模型元素。通过覆盖率聚合(也称为累积覆盖率),您可以运行多个测试(其中每个测试可能针对模型的一个特定部分),然后将每次仿真的覆盖率组合到一个报告中。

消除缺失覆盖率

查看模型覆盖率结果后,您可能会发现您的模型没有达到 100% 的覆盖率。您可以通过以下方式增加模型覆盖率:

Flowchart that lists options for resolving missing coverage.

  • 编辑模型 - 您的模型可能包含不属于所需设计的非预期功能。删除非预期功能。

  • 编辑需求 - 您的需求可能不正确或有缺失。您可以使用 Requirements Toolbox™ 在 Simulink 中编写和编辑需求。如果您添加需求,则必须为该需求添加测试用例。有关详细信息,请参阅Test Model Against Requirements and Report Results

  • 编辑测试 - 现有的测试可能无法完全执行预期的仿真输入。您可以使用 Simulink Coverage 创建附加测试,以对这些输入进行建模。有关详细信息,请参阅Automating Model Coverage TasksGenerate Test Cases (Simulink Design Verifier)。如果您拥有 Simulink Design Verifier™ 许可证,则可以自动生成附加测试以执行设计中未被测试的部分。有关详细信息,请参阅Incrementally Increase Test Coverage Using Test Case Generation

  • 过滤缺失的覆盖率结果 - 根据您的设计,模型的某些部分可能不会在仿真期间执行,例如仅在故障期间激活的子系统。要在这种情况下实现全覆盖率,您可以滤除不打算执行的模型元素的结果。有关详细信息,请参阅Create, Edit, and View Coverage Filter Rules

创建和存档报告

收集覆盖率并解决未满足的结果后,您可以创建 HTML 报告来存档结果。在覆盖率结果浏览器中,您可以根据聚合覆盖率结果或单个测试用例创建报告。

在创建独立的覆盖率报告时,默认情况下,覆盖率表仅列出覆盖率不完整的模型元素的已满足和未满足结果。这与覆盖率详细信息窗格中显示的报告不同,后者默认显示覆盖率表。您可以在“配置参数”窗口或覆盖率结果浏览器中更改报告设置。有关详细信息,请参阅Access, Manage, and Aggregate Coverage Results

要开始使用此教程,请参阅

相关主题