В этом примере показано, как использовать 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');