扩展闭环系统测试用例
假设您有一个带有闭环控制器的模型,该模型由 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)以记录决策、条件和修正条件/决策覆盖率。
点击确定。
点击分析覆盖率。
要打开覆盖率报告,请在查看结果部分中点击生成报告。
仿真完成后,生成的覆盖率报告将在 HTML 查看器中打开。该报告显示引用模型的以下覆盖率结果:
决策:25% (1/4) 决策结果
条件:50% (4/8) 条件结果
MCDC:0% (0/2) 的情况扭转了结果
执行:86% (6/7) 的目标结果
覆盖率结果也在参考模型
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模型中右键点击该模型并选择作为顶层模型打开。在 Design Verifier 选项卡上,点击测试生成设置。
在“配置参数”对话框的测试生成窗格中,在模型覆盖率目标框中选择 MCDC。
在高级参数下,选择针对缺失覆盖率添加测试。
选中使用现有数据扩展复选框。
在测试数据字段中,指定包含记录数据的
MAT文件的名称,在本例中为existingtestcase.mat点击确定。
点击生成测试。
分析首先加载已记录的测试用例所满足的目标。然后,它会为这些测试用例添加额外的时间步并尝试满足任何缺失的目标。当分析完成后,Simulink Design Verifier 日志窗口将打开并指示所有
16目标均已满足。要查看模型的分析结果,请在 Simulink Design Verifier 日志窗口中选择在模型上突出显示分析结果。
Simulink Design Verifier 结果在引用模型
sldemo_mdlref_counter中突出显示。您可以选择单个模型对象来在 Simulink Design Verifier 结果对话框中查看具体的分析结果,如下面的屏幕截图所示。
为了验证分析结果并查看生成的测试用例,在 Simulink Design Verifier 日志窗口中选择详细分析报告。
要使用扩展测试套件收集模型覆盖率,请在 Simulink Design Verifier 日志窗口中选择仿真测试并生成模型覆盖率报告。
仿真完成后,生成的覆盖率报告将在 HTML 查看器中打开。该报告现在显示引用模型
sldemo_mdlref_counter的以下覆盖率结果:决策:100% (4/4) 决策结果
条件:100% (8/8) 条件结果
MCDC:100%(2/2)的情况扭转了结果
执行:100% (7/7) 目标结果