Расширение существующих тестовых случаев путем переиспользования представления модели

В этом примере показано, как избежать ненужных построений представления модели при повторном анализе модели. Рассмотрим случай, когда вы выполняете генерацию тестов, а анализ превышает максимальное время анализа. За заданное время анализа Simulink Design Verifier анализирует некоторые цели и сохраняет сгенерированные тесты в MAT-файле.

Чтобы повторно проанализировать модель, вы обновляете максимальное время анализа и выбираете опцию расширения существующих тестов. Чтобы ускорить анализ, задайте для опции Rebuild model representation значение If change is detected. Simulink Design Verifier повторно анализирует модель путем повторного использования представления модели. Для получения дополнительной информации см. «Представление модели для анализа».

Шаг 1. Откройте модель и задайте опции анализа

Сгенерируйте тесты для sldvdemo_cruise_control модель путем определения sldvoptions.

model = 'sldvdemo_cruise_control';
open_system(model);
opts = sldvoptions;
opts.Mode = "TestGeneration";
opts.MaxProcessTime = 10;
opts.RebuildModelRepresentation = "IfChangeIsDetected";

Анализируйте модель с помощью этой команды.

[ status, files ] = sldvrun('sldvdemo_cruise_control', opts, true);

В окне Diagnostic Viewer отображается ошибка анализа генерации тестов.

Simulink Design Verifier has exceeded the maximum processing time. You can extend the time limit by modifying the "Maximum analysis time" edit field on the Design Verifier pane of the configuration dialog or by modifying the "MaxProcessTime" attribute of the options object.

После завершения анализа в окне Сводка результатов (Results Summary) отображаются результаты. Программное обеспечение сообщает 22/24 цели как удовлетворенные и 2/24 цели как не определены.

Шаг 2. Переанализируйте модель, изменив sldvoptions

Чтобы повторно проанализировать модель, вы выбираете опцию расширения существующих тестов и обновляете максимальное время анализа. Опция Rebuild model representation установлена в If change is detected. Программа проверяет представление модели кэша, не обнаруживает изменений и повторно использует представление модели для анализа.

opts.MaxProcessTime =500;
opts.ExtendExistingTests='on';
opts.IgnoreExistTestSatisfied = 'on';
opts.ExistingTestFile=files.DataFile;
sldvrun('sldvdemo_cruise_control', opts, true);

Результаты показывают, что 24/24 цели удовлетворены и дополнительные тесты не генерируются.

Закройте модель.

close_system('sldvdemo_cruise_control', 0);

Похожие темы