Расширение существующего тестового набора

В этом примере показано, как использовать Simulink ® Design Verifier™ для расширения существующего тестового набора, чтобы получить отсутствующее покрытие модели.

Вы анализируете модель примера и генерируете тестовый набор, чтобы достичь полного покрытия. Затем измените модель так, чтобы тесты больше не достигли полного покрытия. Наконец, вы анализируете измененную модель, чтобы получить недостающее покрытие с помощью Verifier™ Simulink ® Design.

Сгенерируйте начальный Тестовый набор

Анализируйте 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);

Проверьте полное покрытие

The sldvruntest Функция моделирует модель с существующим тестовым набором. The 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';

Измерьте покрытие, достигнутое существующим тестовым набором

The sldvruntest функция моделирует измененные sldvdemo_cruise_control_mod модель с существующим тестовым набором и входами, идентичными sldvdemo_cruise_control модель. The 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 модифицированная модель. The sldvruntest Функция симулирует измененную модель с расширенным тестовым набором. The 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');