主要内容

扩展现有的测试套件

此示例显示如何使用Simulink®Design Verif万博1manbetxier™扩展现有的测试套件以获取缺失的模型覆盖范围。

您分析示例模型并生成测试套件以实现完整的覆盖范围。然后,修改模型,使得测试用例不再实现完全覆盖范围。最后,您将通过使用Simulink®Design Verifier™分析修改的模型以获得缺失的覆盖范围。万博1manbetx

生成初始测试套件

分析sldvdemo_cruise_control.模型并生成一个实现全模型覆盖的测试套件。要分析模型以生成提供模型覆盖的测试用例,请使用Sldvrun.功能。设置设计验证参数sldvoptions.

Open_System.'sldvdemo_cruise_control';选择= sldvoptions;opts.mode ='testgeneration';opts.modelcoverageObjectives ='MCDC';Opts.SaveHarnessModel ='离开';opts.savereport =.'离开';[状态,文件] = sldvrun('sldvdemo_cruise_control',选择,真实);

测试生成分析结果显示在“Simulink Design Verifier Requipue摘要”窗口中万博1manbetx。

close_system('sldvdemo_cruise_control',0);

验证完整的覆盖范围

sldvruntest.功能使用现有的测试套件模拟模型。这cvhtml.函数生成一个覆盖率报告,该报告指示sldvdemo_cruise_control.模型。

Open_System.'sldvdemo_cruise_control';[outdata,initialcov] = sldvruntest('sldvdemo_cruise_control',files.datafile,[],true);cvhtml('初始覆盖',initialcov);close_system('sldvdemo_cruise_control',0);

修改模型

加载修改后sldvdemo_cruise_control_mod.模型。控制器目标速度值限制为70,通过使用a饱和堵塞。

load_system.'sldvdemo_cruise_control_mod';load_system.'sldvdemo_cruise_control_mod / controller';

测量现有的测试套件实现的覆盖范围

sldvruntest.功能模拟了修改的sldvdemo_cruise_control_mod.具有现有测试套件的模型和输入相同sldvdemo_cruise_control.模型。这cvhtml.函数生成一个覆盖报告,表示已修改的sldvdemo_cruise_control_mod.模型不再达到全面覆盖。

[outdata,startcov] = sldvruntest('sldvdemo_cruise_control_mod',files.datafile,[],true);cvhtml('用原始Testsuite的覆盖范围, startCov);

扩展现有的测试套件

实现完整的模型覆盖率,sldvgencov功能分析模型并扩展现有的测试套件。

[状态,covdata,文件] = sldvgencov('sldvdemo_cruise_control_mod',选择,真实,startcov);

验证完整的覆盖范围

验证新的测试套件是否可以为此实现全面的覆盖范围sldvdemo_cruise_control_mod.修改模型。这sldvruntest.函数用扩展的测试套件来模拟修改后的模型。这cvhtml.报告显示了所实现的总覆盖范围sldvdemo_cruise_control_mod.模型。

[exposestout,extaptaincov] = sldvruntest('sldvdemo_cruise_control_mod',files.datafile,[],true);totalcov = startcov +额外的科夫;cvhtml('额外保险,overcov);

要完成示例,请关闭模型。

close_system('sldvdemo_cruise_control_mod');