主要内容

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

扩展闭环系统测试用例

假设您有一个带有闭环控制器的模型,该模型由 Model 模块引用。您没有记录所引用模型的 100%覆盖率。扩展现有的测试用例可以帮助您实现 100%的覆盖率。Simulink® Design Verifier™ 软件在分析参考模型实现的控制器时,为现有的测试用例添加了时间步。分析产生的测试用例真实地反映了闭环控制器预期的连续时间行为。

闭环控制器将指令传递给受控系统,并在控制指令执行时从环境接收信息。控制器在收到此信息时可以调整和改变其指令。

记录启动测试用例

本示例使用示例模型 sldemo_mdlref_basic。CounterA Model 模块引用模型 sldemo_mdlref_counter。当您仿真父模型 sldemo_mdlref_basic 并收集覆盖率时,您仅记录到 sldemo_mdlref_counter 的 75%覆盖率。记录来自仿真的数据并扩展这些测试用例以实现引用模型的 100%覆盖率。

  1. 打开示例模型 sldemo_mdlref_basic

    openExample('sldemo_mdlref_basic');
  2. App 选项卡上,点击 App 部分右侧的箭头。

    模型验证、确认和测试下,点击覆盖率分析器

  3. 覆盖率选项卡上,点击设置

  4. 在配置参数的覆盖率窗格中,选择启用覆盖率分析

  5. 选择引用模型

    请注意,分析仅记录将仿真模式设置为普通SILPIL 的引用模型的覆盖率。在 sldemo_mdlref_basic 中,CounterC Model 模块将仿真模式设置为加速,因此您无法记录它的覆盖率。

  6. 覆盖率度量下,将结构覆盖率级别设置为修正条件决策覆盖率(MCDC)以记录决策、条件和修正条件/决策覆盖率。

  7. 点击确定

  8. 点击分析覆盖率

    要打开覆盖率报告,请在查看结果部分中点击生成报告

    仿真完成后,生成的覆盖率报告将在 HTML 查看器中打开。该报告显示引用模型的以下覆盖率结果:

    • 决策:25% (1/4) 决策结果

    • 条件:50% (4/8) 条件结果

    • MCDC:0% (0/2) 的情况扭转了结果

    • 执行:86% (6/7) 的目标结果

    覆盖率结果也在参考模型 sldemo_mdlref_counter 中突出显示。您可以选择单个模型对象来在“覆盖率”对话框中查看特定的覆盖率结果,如下面的屏幕截图所示。

    Simulink Canvas for sldemo_mdlref_counter model showing coverage results.

  9. 要在仿真期间记录 sldemo_mdlref_basic 中 CounterA Model 模块的输入信号,请在 MATLAB® 命令提示符下输入以下代码:

    logged_data = sldvlogsignals('sldemo_mdlref_basic/CounterA');
  10. 将记录的数据保存在名为 existingtestcase.mat 的 MAT 文件中:

    save('existingtestcase.mat', 'logged_data');

    当您分析 CounterA (sldemo_mdlref_counter) 中引用的模型以扩展现有测试用例时,您可以指定此 MAT 文件。

扩展现有测试用例

分析 sldemo_mdfref_counter 模型,指定分析扩展已经满足的测试用例:

  1. 要打开 sldemo_mdfref_counter 模型,请在 sldemo_mdlref_basic 模型中右键点击该模型并选择作为顶层模型打开

  2. Design Verifier 选项卡上,点击测试生成设置

  3. 在“配置参数”对话框的测试生成窗格中,在模型覆盖率目标框中选择 MCDC

  4. 高级参数下,选择针对缺失覆盖率添加测试

  5. 选中使用现有数据扩展复选框。

  6. 测试数据字段中,指定包含记录数据的 MAT 文件的名称,在本例中为 existingtestcase.mat

  7. 点击确定

  8. 点击生成测试

    分析首先加载已记录的测试用例所满足的目标。然后,它会为这些测试用例添加额外的时间步并尝试满足任何缺失的目标。当分析完成后,Simulink Design Verifier 日志窗口将打开并指示所有 16 目标均已满足。

  9. 要查看模型的分析结果,请在 Simulink Design Verifier 日志窗口中选择在模型上突出显示分析结果

    Simulink Design Verifier 结果在引用模型 sldemo_mdlref_counter 中突出显示。您可以选择单个模型对象来在 Simulink Design Verifier 结果对话框中查看具体的分析结果,如下面的屏幕截图所示。

    Simulink canvas showing Simulink design Verifier results for sldemo_mdlref_counter.

  10. 为了验证分析结果并查看生成的测试用例,在 Simulink Design Verifier 日志窗口中选择详细分析报告

  11. 要使用扩展测试套件收集模型覆盖率,请在 Simulink Design Verifier 日志窗口中选择仿真测试并生成模型覆盖率报告

    仿真完成后,生成的覆盖率报告将在 HTML 查看器中打开。该报告现在显示引用模型 sldemo_mdlref_counter 的以下覆盖率结果:

    • 决策:100% (4/4) 决策结果

    • 条件:100% (8/8) 条件结果

    • MCDC:100%(2/2)的情况扭转了结果

    • 执行:100% (7/7) 目标结果

另请参阅

主题