В этом примере показано, как достигнуть недостающего покрытия путем расширения существующих тестов после применения настроек параметра.
В этом примере вы генерируете тесты для модели и рассматриваете результаты анализа. Результаты показывают, что модель состоит из невыполнимых целей и не достигает полного охвата. Затем вы применяете настройки параметра в модели и снова используете ранее сгенерированные тесты, чтобы достигнуть полного покрытия модели.
sldvexParameterController
модель является моделью круиз-контроля, которая контролирует скорость дросселя путем выбора P Controller или PI Controller. ControllerModeSelection
подсистема использует SelectMode
параметр, чтобы выбрать режим контроллера. Задайте перечислимый тип данных для Selectmode
при помощи функционального Simulink.defineIntEnumType
. Для получения дополнительной информации о перечисляемых значениях смотрите Использование Перечислимые Данные в Моделях Simulink (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
подсистема.
Если вы применяете настройки параметра, 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 и представьте отчет покрытия модели. Отчет показывает, что модель достигает полного охвата.
Чтобы завершить этот пример, закройте модель.
close_system('sldvexParameterController', 0);