扩展闭环系统测试用例
假设您有一个带有闭环控制器的模型,该模型由 Model模块引用。您没有记录所引用模型的 100%覆盖率。扩展现有的测试用例可以帮助您实现100%的覆盖率。Simulink® Design Verifier™ 软件在分析参考模型实现的控制器时,为现有的测试用例添加了时间步。分析产生的测试用例真实地反映了闭环控制器预期的连续时间行为。
闭环控制器将指令传递给受控系统,并在控制指令执行时从环境接收信息。控制器在收到此信息时可以调整和改变其指令。
记录启动测试用例
本示例使用示例模型sldemo_mdlref_basic
。CounterA Model模块引用模型sldemo_mdlref_counter
。当您仿真父模型sldemo_mdlref_basic
并收集覆盖率时,您仅记录到 sldemo_mdlref_counter
的 75%覆盖率。记录来自仿真的数据并扩展这些测试用例以实现引用模型的 100%覆盖率。
打开示例模型
sldemo_mdlref_basic
。openExample('sldemo_mdlref_basic');
在 App 选项卡上,点击App 部分右侧的箭头。
在 模型验证、确认和测试 下,点击覆盖率分析器 。
在 覆盖率 选项卡上,点击设置 。
在配置参数的 覆盖率窗格中,选择 启用覆盖率分析 。
选择 引用模型 。
请注意,分析仅记录将 仿真模式 设置为 普通、SIL 或 PIL 的引用模型的覆盖率。在
sldemo_mdlref_basic
中,CounterC Model模块将 仿真模式 设置为 加速,因此您无法记录它的覆盖率。在覆盖率度量下,将结构覆盖率级别设置为修正条件决策覆盖率(MCDC)以记录决策、条件和修正条件/决策覆盖率。
点击确定。
点击 Analyze Coverage 。
要打开覆盖率报告,请在 查看结果 部分中点击生成报告 。
仿真完成后,生成的覆盖率报告将在浏览器窗口中打开。该报告显示引用模型的以下覆盖率结果:
健康)状况:50% (2/4) 的条件结果
决策:25%(1/4)决策结果
MCDC:0% (0/2) 的情况扭转了结果
覆盖率结果也在参考模型
sldemo_mdlref_counter
中突出显示。您可以选择单个模型对象来在“覆盖率”对话框中查看特定的覆盖率结果,如下面的屏幕截图所示。要在仿真期间记录
sldemo_mdlref_basic
中 CounterA Model模块的输入信号,请在 MATLAB® 命令提示符下输入以下代码:logged_data = sldvlogsignals('sldemo_mdlref_basic/CounterA');
将记录的数据保存在名为
existingtestcase.mat
的 MAT 文件中:save('existingtestcase.mat', 'logged_data');
当您分析 CounterA (
sldemo_mdlref_counter
) 中引用的模型以扩展现有测试用例时,您可以指定此 MAT 文件。
扩展现有测试用例
分析sldemo_mdfref_counter
模型,指定分析扩展已经满足的测试用例:
要打开
sldemo_mdfref_counter
模型,请在sldemo_mdlref_basic
模型中双击 CounterA Model模块。在 Design Verifier 选项卡上,点击Test Generation Settings 。
在配置参数对话框的 测试生成窗格中,在 模型覆盖率目标 框中选择 MCDC 。
在 高级参数 下,选择 针对缺失覆盖率添加测试 。
选中 Extend using existing data 复选框。
在 覆盖率数据 字段中,指定包含记录数据的
MAT
文件的名称,在本例中为existingtestcase.mat
点击确定。
点击 生成测试 。
分析首先加载已记录的测试用例所满足的目标。然后,它会为这些测试用例添加额外的时间步并尝试满足任何缺失的目标。当分析完成后,Simulink Design Verifier 日志窗口将打开并指示所有
12
目标均已满足。要查看模型的分析结果,请在Simulink Design Verifier日志窗口中选择在模型上突出显示分析结果。
Simulink Design Verifier 结果在引用模型
sldemo_mdlref_counter
中突出显示。您可以选择单个模型对象来在Simulink Design Verifier结果对话框中查看具体的分析结果,如下面的屏幕截图所示。为了验证分析结果并查看生成的测试用例,在Simulink Design Verifier日志窗口中选择生成详细的分析报告。
要使用扩展测试套件收集模型覆盖率,请在 Simulink Design Verifier 日志窗口中选择 仿真测试并生成模型覆盖率报告 。
仿真完成后,生成的覆盖率报告将在浏览器窗口中打开。该报告现在显示引用模型
sldemo_mdlref_counter
的以下覆盖率结果:健康)状况:100% (4/4) 条件结果
决策:100% (4/4) 决策结果
MCDC:100%(2/2)的情况扭转了结果