В этом примере показано, как достичь недостающего покрытия путем расширения существующих тестовых примеров после применения строений параметра.
В этом примере вы генерируете тесты для модели и просматриваете результаты анализа. Результаты показывают, что модель состоит из неудовлетворительных целей и не достигает полного покрытия. Затем вы применяете строения параметров в модели и повторно используете ранее сгенерированные тесты, чтобы достичь полного покрытия модели.
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
подсистема.
Если вы применяете строения параметров, 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;
Анализируйте модель с помощью заданных опций.
[status, fileNames] = sldvrun(model, opts, true);
После завершения анализа в окне Сводка результатов (Results Summary) отображается, что все цели удовлетворены.
Чтобы сгенерировать отчет о покрытии модели, нажмите Simulate tests и создайте отчет о покрытии модели. Отчет показывает, что модель достигает полного покрытия.
Чтобы завершить этот пример, закройте модель.
close_system('sldvexParameterController', 0);