主要内容

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

指定全面覆盖的参数配置

关于此示例

此示例描述了如何创建和分析一个简单的 Simulink® 模型,并为其生成实现决策覆盖率的测试用例。然而,在这个例子中,只有当 Simulink Design Verifier™ 在分析过程中将特定的模块参数视为变量时,才有可能实现完整的决策覆盖率。此示例说明如何指定用于分析的参数配置。

以下工作流程将指导您完成此示例的过程。

任务描述请参阅...
1

构建示例模型。

构建示例模型

2

将变量指定为 Constant 模块参数的值。

参数化 Constant 模块

3

约束 Constant 模块指定的变量的值。

自动生成参数约束

4

为您的模型生成测试用例并解释结果。

分析示例模型

5

仿真测试用例并测量最终的决策覆盖率。

仿真测试用例

构建示例模型

构建一个简单的 Simulink 模型用于本例中:

  1. 创建一个空的 Simulink 模型。

  2. 将以下模块复制到空的 Simulink 编辑器中:

    • 来自来源库:

      • 两个 Inport 模块用于启动输入信号

      • Constant 模块来控制开关

    • 来自信号路由库:Multiport Switch 模块提供简单的逻辑

    • 来自 Sinks 库:一个 Outport 模块来接收输出信号

  3. 双击 Multiport Switch 模块以访问其对话框并将其数据端口数量选项指定为 2

  4. 连接各个模块以使您的模型看起来如下所示。

    A Multiport Switch.

  5. 仿真选项卡上,点击准备部分右侧的箭头,然后点击模型设置

  6. 在“配置参数”对话框中,选择求解器。在求解器选择下,将类型选项设置为定步长,然后将求解器选项设置为离散(无连续状态)

  7. 诊断窗格中,将自动求解器参数选择设置为

  8. 点击确定应用更改并关闭“配置参数”对话框。

  9. 将您的模型保存为 ex_defining_params_example 以便在下一个过程中使用。

参数化 Constant 模块

通过将变量指定为 Constant 模块的常量值参数的值来参数化模型中的 Constant 模块:

  1. 双击 Constant 模块。

  2. 常量值框中,输入 A

  3. 点击确定应用您的更改并关闭 Constant 模块参数对话框。

  4. 保存您的模型。

预加载工作区变量

预加载 Constant 模块引用的 MATLAB® 工作区变量 A 的值:

  1. 建模选项卡上,选择 模型设置 > 模型属性

  2. 点击回调选项卡。

  3. PreLoadFcn 中输入:

    A = Simulink.Parameter(int8(1));
    A.Min = 1;
    A.Max = 2;
  4. 点击确定关闭“模型属性”对话框并保存更改。

  5. 关闭模型。

  6. 打开您的模型。

    打开模型时,PreLoadFcn 定义了一个类型为 A 的变量 int8,其值为 1。

自动生成参数约束

使用参数表将变量 A 限制为指定值。

  1. App 选项卡上,点击 App 部分右侧的箭头。

    模型验证、确认和测试下,点击 Design Verifier

  2. Design Verifier 选项卡的准备部分中,从模式设置的下拉菜单中点击设置

  3. 在“配置参数”对话框中,选择 Design Verifier > 参数和变体

  4. 选择使用参数表

  5. 点击查找参数

    参数表中填充了您的模型的参数。如果可能,它会根据模型中参数的数据类型和位置自动生成每个参数的约束值。

    在这种情况下,会出现一行与您定义的参数 A 对应。A 的表行显示以下信息:

    • 名称列中,参数名称(A)。

    • 约束列中,对参数 A 指定的约束。参数表自动生成约束值 [1, 2]

    • 列中,基础工作区中 A 的值。该值为 1。

    • 模型元素列中,A 所在的模型组件(ex_defining_params_example/Constant)。

    • 用途列中,一个复选框指示是否配置表中指定的约束值进行分析。

    Parameter table with selected parameters.

  6. 在参数表中,在参数 A 的行中,确保选中用途复选框。

    当启用该参数配置时,在 Simulink Design Verifier 分析时,参数 A 仅取 int8 的值 1 和 2。

  7. 在“配置参数”对话框中,点击确定

  8. 保存您的模型。

分析示例模型

使用刚刚创建的参数配置对模型进行分析,并生成分析报告:

  1. Design Verifier 选项卡的模式部分中,选择测试生成。点击生成测试

    Simulink Design Verifier 分析您的模型以生成测试用例。

  2. 当软件完成分析后,在 Simulink Design Verifier 结果摘要窗口中,点击 HTML 即可访问详细的分析报告。

    该软件显示一个名为 ex_defining_params_example_report.html 的 HTML 报告。

    保持“结果摘要”窗口打开,以便进行下一步操作。

  3. Simulink Design Verifier 报告目录中,点击 Test Cases

  4. 点击 Test Case 1 可显示该测试用例的子部分。

    Test case summary in the Simulink Design Verifier report.

    本节提供有关 Simulink Design Verifier 为满足模型中的覆盖率目标而生成的测试用例 1 的详细信息。在这个测试用例中,参数 A 的值为 1 满足目标。

仿真测试用例

仿真生成的测试用例并查看仿真产生的覆盖率报告:

  1. Simulink Design Verifier 结果摘要窗口中,选择创建框架模型

    该软件创建并打开一个名为 ex_defining_params_example_harness 的框架模型。

  2. 框架模型中标记为 Inputs 的模块是包含测试用例信号的 Signal Editor 模块。双击 Inputs 模块以查看模块中的测试用例信号。

    Signal Editor dialog box that shows value for TestCase_1.

  3. 在框架模型窗口中,点击全部运行(覆盖率)按钮。

    Simulink 软件依次仿真每个测试用例,收集每次仿真的覆盖率数据,并在最后一次仿真结束时显示合并覆盖率结果的 HTML 报告。

  4. 在模型覆盖率报告中,查看摘要部分:

    Coverage report for ex_defining_params_example_harness model.

    本节总结了框架模型及其测试单元子系统的覆盖率结果。观察子系统实现 50% 的决策覆盖率。

  5. 摘要部分中,点击 Test Unit 子系统。

    该报告显示了 Test Unit 子系统的详细覆盖率结果。

    Coverage report for the SubSystem block.

    摘要部分显示,由于测试用例锻炼了每条切换路径,因此 Multiport Switch 模块实现了 50%的决策覆盖率。

另请参阅