此示例显示如何使用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');