主要内容

扩展现有的测试套件

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

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

生成初始测试套件

分析sldvdemo_cruise_control模型并生成一个实现完整型号覆盖率的测试套件。要分析模型以生成提供模型覆盖范围的测试用例,请使用Sldvrun功能。使用sldvoptions

Open_System'sldvdemo_cruise_control';opts = sldVoptions;opts.mode =“测试变成”;opts.modelcoverageObjectives ='MCDC';opts.saveharnessmodel ='离开';opts.savereport ='离开';[状态,文件] = sldvrun('sldvdemo_cruise_control',opts,true);

测试生成分析结果出现在Simulink设计验证验结果摘要窗口中。万博1manbetx

CLOSS_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(“初始覆盖范围”,初始科夫);CLOSS_SYSTEM('sldvdemo_cruise_control',0);

修改模型

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

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(“带有原始测试仪的覆盖范围”,startcov);

扩展现有的测试套件

为了实现完整的模型覆盖范围,Sldvgencov功能分析模型并扩展现有的测试套件。

[状态,covdata,files] = sldvgencov('sldvdemo_cruise_control_mod',选择,true,startcov);

验证完整的覆盖范围

验证新的测试套件是否实现了sldvdemo_cruise_control_mod修改模型。这sldvruntest功能使用扩展测试套件模拟修改模型。这CVHTML报告显示了sldvdemo_cruise_control_mod模型。

[额外,额外Cov] = sldvruntest('sldvdemo_cruise_control_mod',files.datafile,[],true);totalcov = startcov + afreadcov;CVHTML(“额外覆盖范围”,totalcov);

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

CLOSS_SYSTEM('sldvdemo_cruise_control_mod');