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

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

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

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

The sldvexParameterController модель является моделью круиз-контроля, которая управляет скоростью дросселя путем выбора P- Контроллера или ПИ-контроллера. The 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);

После завершения анализа окно Сводных данных результатов отображений это 15 вне 54 цели неудовлетворительны.

В окне Сводка результатов (Results Summary) щелкните Подсветить результаты анализа на модели (Highlight analysis results on model). Дважды кликните ControllerModeSelection подсистема. The PI_ModeSelection и P_ModeSelection подсистемы выделены красным цветом и состоят из неудовлетворительных целей.

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

Полное покрытие не достигается, потому что значение параметров 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 tests и создайте отчет о покрытии модели. Отчет показывает, что модель достигает полного покрытия.

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

close_system('sldvexParameterController', 0);

См. также