这个例子说明了如何使用的Simulink设计验证™扩展现有的万博1manbetx测试套件,以获得丢失的模型覆盖。
您进行实例分析模型,并生成测试套件实现全覆盖。然后,修改模型,使得测试用例不再实现全覆盖。最后,分析修改后的模型使用的Simulink设计验证™获得失踪覆盖。万博1manbetx
分析sldvdemo_cruise_control
模型并生成测试套件,实现了全覆盖模式。为了分析模型来生成测试用例提供模型覆盖,使用sldvrun
功能。设置与设计验证参数sldvoptions
。
open_system'sldvdemo_cruise_control';OPTS = sldvoptions;opts.Mode ='TestGeneration';opts.ModelCoverageObjectives ='MCDC';opts.SaveHarnessModel =“关”;opts.SaveReport =“关”;[状态,文件] = sldvrun('sldvdemo_cruise_control',OPTS,TRUE);
测试生成分析结果显示在Simulink设计验证结果摘要窗口。万博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,通过使用饱和
块。
load_system'sldvdemo_cruise_control_mod';load_system'sldvdemo_cruise_control_mod /控制器';
该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,文件] = sldvgencov('sldvdemo_cruise_control_mod',OPTS,真实,startCov);
验证新的测试套件实现了全覆盖的sldvdemo_cruise_control_mod
修改后的模型。该sldvruntest
函数用扩展的测试套件模拟修改的模型。该cvhtml
报告显示,总覆盖率由实现sldvdemo_cruise_control_mod
模型。
[additionalOut,additionalCov] = sldvruntest('sldvdemo_cruise_control_mod',files.DataFile,[],TRUE);totalCov = startCov + additionalCov;cvhtml(“有额外的覆盖”,totalCov);
为了完成这个例子,关闭模型。
close_system('sldvdemo_cruise_control_mod');