扩展现有的测试套件

这个例子说明了如何使用的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');