主要内容

为模型生成测试用例

Simulink® Design Verifier™ 中,测试用例是一组输入值及其对应的期望输出,用于验证模型在特定条件下的行为是否符合预期。使用 Simulink Design Verifier,您可以为模型覆盖率和自定义目标生成测试用例。您还可以测量基于需求的现有测试用例的覆盖率,并扩展这些测试用例以增加覆盖率或实现全覆盖率。

Workflow for generating and analyzing test cases.

在开始分析前,请对模型运行兼容性检查。仅当模型与分析兼容时,Simulink Design Verifier 才进行分析。在执行了兼容性检查后,请在模型上指定测试用例生成设置并运行分析。在测试生成分析完成后,您就可以查看结果了。

有几种方法可以查看分析结果:

  • 通过在模型上突出显示结果,一目了然地查看分析结果。

  • 创建测试框架模型以对测试用例进行仿真或调试反例。

  • 生成模型覆盖率报告。

  • 在仿真数据检查器中查看生成的测试。

  • 生成包含有关分析结果的详细信息的 HTML 或 PDF 报告。

示例模型

本教程使用了一个简化的巡航控制模型 sldvexCruiseControl,该模型通过调整发动机油门保持指定的速度。您将生成满足条件和决策模型覆盖率目标的测试用例,然后对这些测试用例进行仿真以生成模型覆盖率报告。

Model sldvexCruiseControl.

此巡航控制模型 sldvexCruiseControl 满足以下要求:

  • engageenable 信号为 true 时,控制系统被激活。此条件由 AND 模块定义。

  • 当系统被激活时,Switch 模块将 set speed 传递给 PI 控制器。PI 控制器通过对由差值 set speed - current speed 定义的误差项进行积分来计算 throttle

  • throttle 继续增加或减少,直至 set speed 分别高于 current speed 或低于 current speed

  • 当系统处于非激活状态时,Discrete-Time Integrator 模块会重置。误差项为零,这意味着 throttle 处于重置位置。

当您执行测试生成分析时,Simulink Design Verifier 会为与模型中每个模型项目相关联的模型覆盖率目标生成测试用例。下表列出了相关联 Model 模块的条件和决策覆盖率目标。

模块模型覆盖率目标生成测试用例的描述
AND

条件

每个输入值单独设置为 true 或 false。

NOT

条件

输入单独设置为 true 或 false。
Switch

决策

测试用例验证 Switch 将两个输入信号都传递给输出。
Discrete-Time Integrator

决策

  • 测试用例验证积分器的饱和行为。

  • 满足外部重置条件。

在本教程中,您将对 sldvexCruiseControl 模型执行测试生成分析。该分析将生成满足条件和决策模型覆盖率目标的测试用例。

您将学习如何:

  1. 配置模型设置以进行 Simulink Design Verifier 分析。

  2. 检查模型兼容性以进行测试生成分析。

  3. 配置模型以生成测试并执行分析。

  4. 查看测试生成分析结果。

  5. 创建框架模型并生成覆盖率报告。

要开始学习本教程,请参阅准备模型以进行测试生成分析