Расширьте существующий тестовый набор

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