指定全面覆盖的参数配置
关于此示例
此示例描述了如何创建和分析一个简单的 Simulink® 模型,并为其生成实现决策覆盖率的测试用例。然而,在这个例子中,只有当 Simulink Design Verifier™ 在分析过程中将特定的模块参数视为变量时,才有可能实现完整的决策覆盖率。此示例说明如何指定用于分析的参数配置。
以下工作流程将指导您完成此示例的过程。
任务 | 描述 | 请参阅... |
---|---|---|
1 | 构建示例模型。 | |
2 | 将变量指定为 Constant 模块参数的值。 | |
3 | 约束 Constant 模块指定的变量的值。 | |
4 | 为您的模型生成测试用例并解释结果。 | |
5 | 仿真测试用例并测量最终的决策覆盖率。 |
构建示例模型
构建一个简单的 Simulink 模型用于本例中:
创建一个空的 Simulink 模型。
将以下模块复制到空的 Simulink 编辑器中:
来自来源库:
来自信号路由库:Multiport Switch 模块提供简单的逻辑
来自 Sinks 库:一个 Outport 模块来接收输出信号
双击 Multiport Switch 模块以访问其对话框并将其数据端口数量选项指定为
2
。连接各个模块以使您的模型看起来如下所示。
在仿真选项卡上,点击准备部分右侧的箭头,然后点击模型设置。
在“配置参数”对话框中,选择求解器。在求解器选择下,将类型选项设置为定步长,然后将求解器选项设置为离散(无连续状态)。
在诊断窗格中,将自动求解器参数选择设置为无。
点击确定应用更改并关闭“配置参数”对话框。
将您的模型保存为
ex_defining_params_example
以便在下一个过程中使用。
参数化 Constant 模块
通过将变量指定为 Constant 模块的常量值参数的值来参数化模型中的 Constant 模块:
双击 Constant 模块。
在常量值框中,输入
A
。点击确定应用您的更改并关闭 Constant 模块参数对话框。
保存您的模型。
预加载工作区变量
预加载 Constant 模块引用的 MATLAB® 工作区变量 A
的值:
在建模选项卡上,选择 模型设置 > 模型属性。
点击回调选项卡。
在
PreLoadFcn
中输入:A = Simulink.Parameter(int8(1)); A.Min = 1; A.Max = 2;
点击确定关闭“模型属性”对话框并保存更改。
关闭模型。
打开您的模型。
打开模型时,
PreLoadFcn
定义了一个类型为A
的变量int8
,其值为 1。
自动生成参数约束
使用参数表将变量 A
限制为指定值。
在 App 选项卡上,点击 App 部分右侧的箭头。
在模型验证、确认和测试下,点击 Design Verifier。
在 Design Verifier 选项卡的准备部分中,从模式设置的下拉菜单中点击设置。
在“配置参数”对话框中,选择 Design Verifier > 参数和变体。
选择使用参数表。
点击查找参数。
参数表中填充了您的模型的参数。如果可能,它会根据模型中参数的数据类型和位置自动生成每个参数的约束值。
在这种情况下,会出现一行与您定义的参数
A
对应。A
的表行显示以下信息:在名称列中,参数名称(
A
)。在约束列中,对参数
A
指定的约束。参数表自动生成约束值[1, 2]
。在值列中,基础工作区中
A
的值。该值为 1。在模型元素列中,
A
所在的模型组件(ex_defining_params_example/Constant
)。在用途列中,一个复选框指示是否配置表中指定的约束值进行分析。
在参数表中,在参数
A
的行中,确保选中用途复选框。当启用该参数配置时,在 Simulink Design Verifier 分析时,参数
A
仅取int8
的值 1 和 2。在“配置参数”对话框中,点击确定。
保存您的模型。
分析示例模型
使用刚刚创建的参数配置对模型进行分析,并生成分析报告:
在 Design Verifier 选项卡的模式部分中,选择测试生成。点击生成测试。
Simulink Design Verifier 分析您的模型以生成测试用例。
当软件完成分析后,在 Simulink Design Verifier 结果摘要窗口中,点击 HTML 即可访问详细的分析报告。
该软件显示一个名为
ex_defining_params_example_report.html
的 HTML 报告。保持“结果摘要”窗口打开,以便进行下一步操作。
在 Simulink Design Verifier 报告目录中,点击
Test Cases
。点击
Test Case 1
可显示该测试用例的子部分。本节提供有关 Simulink Design Verifier 为满足模型中的覆盖率目标而生成的测试用例 1 的详细信息。在这个测试用例中,参数
A
的值为 1 满足目标。
仿真测试用例
仿真生成的测试用例并查看仿真产生的覆盖率报告:
在 Simulink Design Verifier 结果摘要窗口中,选择创建框架模型。
该软件创建并打开一个名为
ex_defining_params_example_harness
的框架模型。框架模型中标记为
Inputs
的模块是包含测试用例信号的 Signal Editor 模块。双击Inputs
模块以查看模块中的测试用例信号。在框架模型窗口中,点击全部运行(覆盖率)按钮。
Simulink 软件依次仿真每个测试用例,收集每次仿真的覆盖率数据,并在最后一次仿真结束时显示合并覆盖率结果的 HTML 报告。
在模型覆盖率报告中,查看摘要部分:
本节总结了框架模型及其测试单元子系统的覆盖率结果。观察子系统实现 50% 的决策覆盖率。
在摘要部分中,点击
Test Unit
子系统。该报告显示了
Test Unit
子系统的详细覆盖率结果。摘要部分显示,由于测试用例锻炼了每条切换路径,因此 Multiport Switch 模块实现了 50%的决策覆盖率。