Main Content

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

生成模型决策覆盖率的测试用例

构建示例模型

为此示例构建一个模型:

  1. 创建一个Simulink®模型。

  2. 将以下模块复制到空白模型窗口中:

    • 从 Sources 库中,Inport模块启动其值由 Simulink Design Verifier™ 控制的输入信号。

    • 从源库中获取两个 Constant 模块作为 Switch模块数据输入。

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

    • 从 Sinks 库中,一个 Outport模块接收输出信号。

  3. 在您的模型中,双击其中一个 Constant 模块并将其 常量值 参数指定为 2

  4. 连接各个模块以使您的模型类似于下图。

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

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

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

  7. 在配置参数对话框中,选择 求解器 窗格。在 求解器选择 中:

    • 类型 选项设置为 定步长

    • 求解器 选项设置为 离散(无连续状态)

    Simulink Design Verifier 仅分析使用固定步长求解器的模型。

  8. 单击“OK”保存更改并关闭“配置参数”对话框。

  9. 使用名称 ex_generate_test_cases_example 保存您的模型。

检查示例模型的兼容性

每次Simulink Design Verifier分析模型时,在分析开始之前,软件都会执行兼容性检查。如果您的模型不兼容,软件将无法分析它。

在开始分析之前,您还可以确保您的模型与 Simulink Design Verifier 软件兼容:

  1. 打开ex_generate_test_cases_example模型。

  2. Design Verifier 选项卡上,点击检查兼容性

    该软件显示日志窗口,表明您的模型是否适合分析。

    您刚刚创建的模型是兼容的。

如果模型部分兼容怎么办?

如果兼容性检查表明您的模型部分兼容,则您的模型至少包含一个 Simulink Design Verifier 不支持的对象。您可以分析部分兼容的模型,但默认情况下,不受支持的对象将被删除。分析结果可能不完整。

有关自动桩件的详细信息,请参阅 使用自动桩件处理不兼容性

配置测试生成选项

配置Simulink Design Verifier以生成对ex_generate_test_cases_example模型实现100%决策覆盖率的测试用例:

  1. 打开ex_generate_test_cases_example模型。

  2. Design Verifier 选项卡的 模式 部分中,选择 测试生成

  3. 点击 Test Generation Settings

  4. 在配置参数对话框的 测试生成窗格中,将 模型覆盖率目标 参数设置为 决策

    对于此示例,分析生成仅记录决策覆盖率的测试用例。

    测试套件优化 参数默认设置为 自动 。如果要生成更少但更长的测试用例,请为测试套件优化参数选择LongTestcases

  5. 单击“OK”保存更改并关闭“配置参数”对话框。

  6. 保存ex_generate_test_cases_example模型。

分析示例模型

Design Verifier 选项卡上,点击生成测试Simulink Design Verifier 分析您的模型以生成测试用例。

在分析过程中,“结果摘要”窗口显示分析的进度。它显示处理的测试目标的数量以及满足了哪些目标等信息。

查看分析结果

当软件完成分析时,“结果摘要”窗口将显示这些用于查看结果的选项。

以下部分介绍如何查看分析结果:

审查模型的分析结果

突出显示示例模型上的分析结果:

  1. ex_generate_test_cases_example 分析的结果摘要窗口中,点击在模型上突出显示分析结果

    Switch模块以绿色突出显示,这表明Switch模块具有满足其测试目标的测试用例。

    Simulink Design Verifier 结果窗口打开。当您点击模型中的对象时,此窗口将发生变化,显示该对象的详细分析结果。默认情况下,Simulink Design Verifier 结果窗口始终是最顶层的可见窗口。要允许窗口移动到其他窗口后面,点击 并清除 Always on top

  2. 单击突出显示的Switch模块。

    Simulink Design Verifier 结果窗口表明分析针对两个测试目标生成了测试用例:

    • trigger > threshold

    • trigger < threshold

有关模型上突出显示的分析结果的更多信息,请参阅 突出显示模型结果

查看详细分析报告

创建详细的 HTML 分析报告:

  1. Simulink Design Verifier结果摘要窗口的详细分析报告中,点击HTML

    HTML 报告将在浏览器窗口中打开。

  2. 该报告包括以下内容 目录 。单击超链接可以导航至报告中的某个部分。

  3. 目录中,点击Summary以显示报告的摘要章节。

    摘要章节列出了有关模型和目标状态(是否满足)的信息。

  4. 目录中,点击Analysis Information以显示分析信息章节。

    分析信息章节提供以下方面的信息:

    • 您所分析的模型。

    • 您为分析指定的选项。

    • 软件在分析过程中执行的近似值。

  5. 目录中,点击Test Objectives Status以显示报告的测试目标状态章节。

    该表表明,分析满足了与 ex_generate_test_cases_example模型中的 Switch模块相关的两个测试目标,并为此生成了两个测试用例。

  6. 在表格测试用例列下,点击2以显示测试用例2部分。

    本节提供有关分析生成的、为实现模型目标的测试用例的详细信息。当 Switch模块将其第三个输入传递到其输出端口时,此测试用例实现测试目标1。具体来说,软件确定 Switch模块控制信号的值为 -1 会导致模块将其第三个输入作为模块输出。

有关 HTML 报告的更多信息,请参阅 审查结果

审查框架模型

要创建一个包含满足模型中测试目标的测试用例的框架模型,请在Simulink Design Verifier结果摘要窗口中点击创建框架模型

该软件创建一个名为 ex_generate_test_cases_example_harness 的框架模型。

名为 Inputs 的 Signal Builder模块包含测试用例。双击输入模块来查看测试用例。从 Signal Builder模块中,您可以使用测试用例仿真模型并生成模型覆盖率报告,如 仿真测试并生成模型覆盖率报告 中所述。

有关框架模型的更多信息,请参阅管理Simulink Design Verifier框架模型

如果分析生成许多测试用例.  如果您有一个大型模型,则分析可能会产生包含大量测试用例的框架模型。

生成更少的测试用例:

  1. 测试套件优化 参数设置为 LongTestcases

  2. 重新运行分析。

LongTestcases优化中,分析生成更少但更长的测试用例,每个测试用例满足多个测试目标。

仿真测试并生成模型覆盖率报告

要使用框架模型中生成的测试用例来仿真框架模型:

  1. 在线框架模型中,双击输入模块以打开信号生成器对话框。

  2. 在信号构建器对话框中,点击全部运行

    该软件使用这两个测试用例仿真框架模型,收集模型覆盖率信息,并显示覆盖率报告。覆盖率报告表明测试用例对ex_generate_test_cases_example模型的决策覆盖率为100%。

您还可以在不创建框架模型的情况下仿真模型。在Simulink Design Verifier日志窗口中,点击仿真测试并生成模型覆盖率报告

有关模型覆盖率的更多信息,请参阅顶层模型覆盖率报告 (Simulink Coverage)

查看 sldvData 文件

Simulink Design Verifier 数据文件是一个包含名为 sldvData 的结构体的 MAT 文件。该结构体存储了分析过程中收集和产生的所有数据。您可以使用数据文件进行自己的分析或生成自定义报告。

要查看数据文件,点击日志窗口中的数据文件名,在此示例中为 ex_generate_test_cases_example_sldvdata.mat 。当您点击文件名时,sldvData 对象的副本将在 MATLAB® 工作区中实例化,以便您可以查看和操作数据。

有关 Simulink Design Verifier 数据文件的更多信息,请参阅 管理 Simulink Design Verifier 数据文件

在结果摘要窗口中查看分析结果

只要您的模型保持打开,您就可以在结果摘要窗口中查看最近的Simulink Design Verifier分析的结果。

Design Verifier 选项卡的 查看结果 部分中,点击Load Earlier Results结果摘要 以查看结果。

对于任何Simulink Design Verifier分析,您都可以从“结果摘要”窗口执行这些任务。

任务了解更多信息

突出模型的分析结果。

突出显示模型结果

生成详细的分析报告。

审查结果

创建框架模型,或者如果框架模型已经存在,则打开它。

如果在分析期间没有生成测试用例,则此选项不可用。

管理Simulink Design Verifier框架模型

查看数据文件。

管理 Simulink Design Verifier 数据文件

查看日志文件。

查看日志文件

关闭模型后,您将无法再查看分析结果。

定制测试生成

您可以使用 Test Condition模块在分析过程中将模型中的信号限制为某些值。

  1. 在 MATLAB 命令提示符下,输入 sldvlib 以显示 Simulink Design Verifier 库。

  2. 打开目标和约束子库。

  3. Test Condition模块从 Simulink Design Verifier 库拖到模型窗口,将其复制到模型中。

  4. 在模型窗口中,将Test Condition模块插入InportSwitch模块之间。

  5. 双击 Test Condition模块来访问其属性。

    将打开 Test Condition模块参数对话框。

  6. 框中,输入 [-0.1, 0.1] 。在为该模型生成测试用例时,分析会限制信号值,将Switch模块控制端口输入到指定的范围内。

  7. 单击“OK”保存更改并关闭“Test Condition ”模块参数对话框。

  8. 将您的模型保存为ex_generate_test_cases_with_tc_block并保持打开。

重新分析示例模型

使用Test Condition模块分析ex_generate_test_cases_with_tc_block模型。要观察 Test Condition模块如何影响测试生成,请将此分析的结果与您在 分析示例模型 中获得的结果进行比较。

  1. Design Verifier 选项卡上,点击生成测试

    Simulink Design Verifier 软件显示一个日志窗口并开始分析您的模型以生成测试用例。当软件完成分析时,“结果摘要”窗口将显示用于查看结果的选项。

  2. 在结果摘要窗口中,点击HTML 报告

  3. 要开始查看报告,请在 目录 中点击Summary

    摘要章节表明Simulink Design Verifier在模型中满足了两个测试目标。

  4. 目录 中,点击Analysis Information 。滚动到本章的底部,到“约束”部分。

    本节列出了您添加的 Test Condition模块,以将 Switch模块控制信号的值限制在区间[-0.1, 0.1] 内。

  5. 目录 中,点击Test Objectives Status

    该表表明,通过生成的两个测试用例, Simulink Design Verifier 满足了 Switch模块的两个测试目标。

  6. 在表格 测试用例 列下,点击1

    本节提供有关软件为实现模型目标而生成的测试用例的详细信息。当 Switch模块将其第三个输入传递到其输出端口时,此测试用例实现测试目标1。尽管 Test Condition模块将输入信号的范围限制在区间[-0.1, 0.1] 内,但软件确定 Switch模块控制信号的值为 -0.1 可以满足这一目标。

  7. 为了确认测试用例实现 100% 的决策覆盖率,请打开框架模型。

  8. 双击输入模块以打开信号生成器对话框。

  9. 在信号构建器对话框中,点击全部运行

    Simulink 软件使用两个测试用例仿真框架模型,收集模型覆盖率信息,并显示覆盖率报告。报告的摘要部分表明Simulink Design Verifier生成的测试用例为您的示例模型实现了完整的决策覆盖率。

分析矛盾的模型

如果分析产生错误The model is contradictory in its current configuration,则表示软件检测到模型中存在矛盾,因此无法分析该模型。

如果您的模型具有带有不正确参数的 Test Objective 模块,则可能会产生矛盾。例如,矛盾可以是这样的一个目标:当信号为常数 10 时,信号必须介于 0 和 5 之间。

如果软件检测到矛盾,所有先前的结果都将无效,并且软件会报告某些目标无法满足。

相关主题