为简化巡航控制模型生成测试用例
使用 Simulink® Design Verifier™,您可以为模型覆盖率和自定义目标生成测试用例。您还可以测量基于需求的现有测试用例的覆盖率,并扩展这些测试用例以增加覆盖率或实现全覆盖率。
本教程介绍一个控制油门速度的简化巡航控制模型。您将生成满足条件和决策模型覆盖率目标的测试用例,然后对这些测试用例进行仿真以生成模型覆盖率报告。
分析简单巡航控制模型
假设有一个简化的巡航控制模型,可通过调整油门保持稳定的设定速度。
此巡航控制模型满足以下要求:
当
engage
和enable
信号为true
时,控制系统被激活。此条件由 AND 模块定义。当系统被激活时,Switch 模块将
set speed
传递给 PI 控制器。PI 控制器通过集成由差值set speed - current speed
定义的误差项来计算throttle
。Throttle
继续增加或减少,直至set speed
高于或低于current speed
。当系统处于非激活状态时,Discrete-Time Integrator 模块会重置。误差项为
zero
,这意味着throttle
处于重置位置。
当您执行测试生成分析时,Simulink Design Verifier 会为与模型中每个模型项目相关联的模型覆盖率目标生成测试用例。下表列出了相关联 Model 模块的条件和决策覆盖率目标。有关模型覆盖率目标的详细信息,请参阅Model Coverage Objectives for Test Generation和Model Objects That Receive Coverage (Simulink Coverage)。
模块 | 模型覆盖率目标 | 生成测试用例的描述 |
---|---|---|
AND | 条件 | 每个输入值单独设置为 true 或 false。 |
NOT | 条件 | 输入单独设置为 true 或 false。 |
Switch | 决策 | 测试用例验证 Switch 将两个输入信号都传递给输出。 |
Discrete-Time Integrator | 决策 |
|
为覆盖率分析生成测试用例
分析结果详细描述了每个模型项目的覆盖率目标以及为所有满足的目标生成的测试用例。您可以对生成的测试用例进行仿真,以测量模型覆盖率。
生成测试用例
1.打开模型 sldvexSimpleCruiseControl
:
sldvexSimpleCruiseControl
2.在 Design Verifier 选项卡的模式部分中,选择测试生成。
3.要生成测试用例,请点击生成测试。
“结果摘要”窗口会显示结果。结果表明,全部 14
个目标均已 satisfied
。
查看分析结果
1.在 Design Verifier 选项卡的查看结果库中,点击在模型中突出显示。软件发现满足的模型目标会以绿色突出显示。
点击 Switch
模块。“结果”窗口会显示满足的决策目标摘要。
该摘要表明,Switch 模块的所有目标均已满足。
2.要查看 HTML 报告,请在查看结果库中点击 HTML 报告。
测试目标状态部分包括每个模型项目满足的目标以及生成的测试用例的详细描述。
对测试用例进行仿真以执行模型覆盖率分析
要查看模型覆盖率目标的测试用例,请在“结果”窗口中点击查看测试用例。框架模型和 Signal Editor 模块会打开。要对测试用例进行仿真,请点击*全部运行*按钮。打开 Signal Editor 模块,以查看测试用例。
软件会对测试用例进行仿真并突出显示框架模型。要查看模型项目的覆盖率,请将光标指向框架模型中的每个模型对象。
另请参阅
Design Verifier Pane: Test Generation | Objectives Status Chapters