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

В этом примере показано, как достигнуть недостающего покрытия путем расширения существующих тестов после применения настроек параметра.

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

Шаг 1: сгенерируйте начальные тесты и рассмотрите результаты

sldvexParameterController модель является моделью круиз-контроля, которая контролирует скорость дросселя путем выбора P Controller или PI Controller. ControllerModeSelection подсистема использует SelectMode параметр, чтобы выбрать режим контроллера. Задайте перечислимый тип данных для Selectmode при помощи функционального Simulink.defineIntEnumType. Для получения дополнительной информации о перечисляемых значениях смотрите Использование Перечислимые Данные в Моделях Simulink.

Simulink.defineIntEnumType('EnumForControllerSelection',...
{'Pmode','PImode'},[1;2]);
SelectMode = Simulink.Parameter;
SelectMode.Value = EnumForControllerSelection.Pmode;
model = 'sldvexParameterController';
open_system(model);

Установите sldvoptions и анализируйте модель при помощи заданных опций.

opts = sldvoptions;
opts.Mode = 'TestGeneration';
opts.ModelCoverageObjectives = 'MCDC';
[ status, files ] = sldvrun(model, opts, true);

После того, как анализ завершается, отображения окна Results Summary что 15 из 54 цели невыполнимы.

В окне Results Summary нажмите результаты анализа Highlight на модели. Дважды кликните ControllerModeSelection подсистема. PI_ModeSelection и P_ModeSelection подсистемы подсвечены в красном и состоят из невыполнимых целей.

Чтобы просмотреть отчет покрытия модели, в окне Results Summary, нажимают тесты Simulate и представляют отчет покрытия модели. Отчет показывает, что модель не достигает полного охвата.

Полный охват не достигается потому что значение параметров SelectMode ограничивается значением по умолчанию EnumForControllerSelection.Pmode. Следовательно, полный охват не достигается для PI_ModeSelection подсистема.

Шаг 2: сконфигурируйте настройки параметра и расширьте существующие тесты

Если вы применяете настройки параметра, Simulink Design Verifier обрабатывает параметр как переменную во время анализа и ограничений значения на основе ограничительных значений, которые вы задаете.

Примените настройки параметра для SelectMode параметр путем определения ограничительных значений для parameterValue.

controlParameter = [ {'SelectMode'}];
parameterValue = [ {'[EnumForControllerSelection.Pmode EnumForControllerSelection.PImode]'}];
opts.Parameters = 'on';
opts.ParametersUseConfig = 'on';
opts.ParameterNames = controlParameter;
opts.ParameterConstraints = parameterValue;
opts.ParameterUseInAnalysis = {'on'};

Чтобы снова использовать ранее сгенерированные тесты, сконфигурируйте опцию анализа, чтобы расширить существующие тесты и задать существующий тестовый файл.

opts.ExtendExistingTests = 'on';
opts.IgnoreExistTestSatisfied = 'off';
opts.ExistingTestFile = files.DataFile;

Шаг 3: выполните анализ и рассмотрите отчет покрытия

Анализируйте модель при помощи заданных опций.

[status, fileNames] = sldvrun(model, opts, true);

После того, как анализ завершается, отображения окна Results Summary, что всем целям удовлетворяют.

Чтобы сгенерировать отчет покрытия модели, нажмите тесты Simulate и представьте отчет покрытия модели. Отчет показывает, что модель достигает полного охвата.

Чтобы завершить этот пример, закройте модель.

close_system('sldvexParameterController', 0);

Смотрите также