В этом примере показано, как использовать Simulink ® Design Verifier™ для расширения существующего набора тестов для получения отсутствующего покрытия модели.
Вы анализируете примерную модель и генерируете набор тестов для достижения полного покрытия. Затем измените модель таким образом, чтобы тестовые случаи больше не достигали полного охвата. Наконец, можно проанализировать измененную модель для получения отсутствующего покрытия с помощью Simulink ® Design Verifier™.
Проанализируйте sldvdemo_cruise_control и создать набор тестов, который обеспечивает полный охват модели. Для анализа модели с целью создания тестовых примеров, обеспечивающих покрытие модели, используйте sldvrun функция. Задайте параметры проверки проекта с помощью sldvoptions.
open_system 'sldvdemo_cruise_control'; opts = sldvoptions; opts.Mode = 'TestGeneration'; opts.ModelCoverageObjectives = 'MCDC'; opts.SaveHarnessModel = 'off'; opts.SaveReport = 'off'; [ status, files ] = sldvrun('sldvdemo_cruise_control', opts, true);

Результат анализа генерации теста появляется в окне Simulink Design Verifier Results Summary.
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('Initial coverage',initialCov); close_system('sldvdemo_cruise_control',0);

Загрузка измененного sldvdemo_cruise_control_mod модель. Целевое значение скорости контроллера ограничено 70, используя Saturation блок.
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('Coverage with the original testsuite',startCov);

Для достижения полного охвата модели, sldvgencov функция анализирует модель и расширяет существующий набор тестов.
[ status, covData, files ] = sldvgencov('sldvdemo_cruise_control_mod', opts, true, 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('With additional coverage',totalCov);

Чтобы завершить пример, закройте модель.
close_system('sldvdemo_cruise_control_mod');