主要内容

用代码编译激活时间验证和验证变体模型

这个例子展示了如何验证和验证不同的模型代码编译使用Simulink®Design Verifier™和Simulink Test™的变体激活时间。

Simulink设计验证器和Simulink测试概述

Simulink Design Verifier识别隐藏的设计错误,并检测导致整数溢出、死逻辑、数组访问违规和除零的模型构造。它还为模型覆盖率生成测试用例。有关更多信息,请参见关于使用Simulink Design Verifier进行系统模型验证(Simulink Design Verifier)

Simulink Test提供了用于创建、管理和执行系统的、基于模型、生成的代码以及模拟或物理硬件的模拟测试的工具。您可以创建非侵入式测试工具来隔离被测组件,并使用测试管理器来管理和执行用户定义的测试。有关更多信息,请参见验证功能测试(仿真软件测试)

请注意:变型模型slexVariantVnVWorkflow本例中使用代码编译变量激活时间。对于这样的模型,Simulink Test默认只分析活动变量的选择。您必须切换活动变量选择并重新运行测试以分析所有选择。要使Simulink测试工作流迭代,您可以使用启动改变激活时间并在快速重启中运行测试迭代。的启动具有快速重新启动工作流的变体允许您在每次迭代中切换活动变体的选择,而不需要重新编译模型来更改活动变体。有关显示具有启动变量和快速重新启动的Simulink测试工作流的示例,请参见用启动激活时间验证和验证变量模型

探索模式

打开模型,slexVariantVnVWorkflow

open_system (“slexVariantVnVWorkflow”);

该模型包含一个Variant Subsystem块,ComputeTargetSpeed,有两个不同的选择,ComputeTargetSpeed_Config1而且ComputeTargetSpeed_Config2.在这个例子中,我们使用Simulink Design Verifier来生成满足条件和决策覆盖目标的测试用例。该模型使用了一个测试装置,slexVariantVnVWorkflow_mdlHarness,使用Simulink Test创建,并包含针对每个变体选择的基于需求的测试。线束与模型一起保存。

  • 要启动Simulink Design Verifier并为模型中的变体选择自动生成测试用例,请双击SLDV运行按钮。

  • 要启动Simulink Test Manager并查看测试工具中的测试套件,slexVariantVnVWorkflow_mdlHarness,双击打开Simulink测试管理器按钮。

使用Simulink设计验证器生成测试用例

默认情况下,Simulink Design Verifier只分析变量模型中的活动变量选择。您可以编写MATLAB®脚本来为所有变体选择生成测试用例。

要查看与此模型的Simulink设计验证器相关的配置参数:

  • 在Simulink编辑器中建模选项卡上,单击模型设置

  • 在“配置参数”对话框中,单击设计验证器在左侧窗格中。在分析选项节中,模式设置为测试生成.在测试生成类别,模型覆盖目标设置为条件决定

在MATLAB命令窗口中,运行对应于这些步骤的脚本。的SLDV运行按钮自动执行相同的脚本。

步骤1:设置所需的Simulink设计验证器选项。有关选项的信息,请参见sldvoptions(Simulink Design Verifier)

modelName =“slexVariantVnVWorkflow”;open_system (modelName);为模型创建一个设计验证选项对象。。opts = sldvoptions(modelName);指定生成测试用例时要使用的优化策略。选择。TestSuiteOptimization =“汽车”生成并保存Simulink设计验证器报告。选择。SaveReport =“上”为每个变量选择创建唯一的报告。。选择。MakeOutputFilesUnique =“上”创建由Simulink设计验证器分析生成的线束模型。。选择。SaveHarnessModel =“关闭”%指定分析模式。选择。模式=“TestGeneration”

步骤2:设置需要为其生成测试的变量选择,然后分析模型。

在基本工作区中将活动变量选项设置为ComputeTargetSpeed_Config1。assignin (“基地”“speedConfig”1);为分析报告指定一个文件名,以指示正在分析的变量选择。选择。ReportFileName = ([modelName . txt“report_speedConfig1”]);从MATLAB命令提示符跟踪执行进度。disp([换行符“为模特进行SLDV跑步”modelName'与变体选择:SpeedConfig 1']);调用模型更新命令来激活变量选择。set_param (modelName“SimulationCommand”“更新”);分析模型以生成测试用例,并在日志窗口中显示消息。[status, filename] = sldvrun(modelName, opts, true);

步骤3:重复步骤2对于变体的选择ComputeTargetSpeed_Config2

assignin (“基地”“speedConfig”2);选择。ReportFileName = ([modelName . txt“report_speedConfig2”]);disp([换行符“为模特进行SLDV跑步”modelNameSpeedConfig 2]);set_param (modelName“SimulationCommand”“更新”);[status1, filename] = sldvrun(modelName, opts, true);

步骤4:显示测试生成状态。

如果状态和状态1“Simulink设计验证器测试生成完成。”);结束

分析完成后,将打开“Simulink设计验证器结果摘要”窗口,并显示使用结果的不同方式。看到回顾分析结果(Simulink Design Verifier).若要将生成的测试导出到Simulink Test,请单击将测试用例导出到Simulink test

使用Simulink测试执行测试

可以使用Simulink测试执行用户定义测试或从Simulink设计验证器导入的测试。要执行测试并分析结果,请使用测试管理器。的变量模型默认情况下,Simulink Test只分析活动的变量选择代码编译变量激活时间。分析这类模型中所有的变量选择:

1.在应用程序选项卡,在模型验证、验证和测试部分中,点击仿真软件测试

2.在测试选项卡上,单击Simulink测试管理器

3.用所需的测试用例创建一个测试集束,并在test Manager中选择集束模型。

4.中的参数集中添加变量控制变量参数将覆盖部分。

5.对于每个测试用例,根据每个变量选择更改参数集中的变量控制变量的值,然后重新运行测试。

探索测试束模型

要查看控制模型中的测试套件,slexVariantVnVWorkflow_mdlHarness,双击打开Simulink测试管理器按钮在模型中。

  • 在测试套件中CruiseControl_SpeedConfig_1时,活动变量选择设置为ComputeTargetSpeed_Config1.在CruiseControl_SpeedConfig_2,则主动选择设置为ComputeTargetSpeed_Config2

  • 选择一个测试套件并单击运行在Simulink工具条中运行测试。当测试完成时,单击结果和工件在Test Manager中的选项卡中检查聚合的结果和覆盖率度量。看到执行功能测试并分析测试覆盖率(仿真软件测试)

另请参阅

Baidu
map