В этом примере показано, как выбрать метрику и добавить правило, использующее эту метрику. В этом примере создается правило для обоснования неудовлетворенного решения для блока Насыщенность.
Открытие модели и включение анализа покрытия
Загрузите модель в память.
Использовать Simulink.SimulationInput объект для конфигурирования покрытия для модели.
Моделирование модели с помощью SimulationInput объект в качестве входных данных.
Просмотр результатов покрытия перед применением фильтра. Доступ к покрытию можно получить с помощью decisioninfoили можно просмотреть отчет HTML с помощью cvhtml.
Оба decisioninfo и cvhtml показать тот же результат 50% покрытия принятия решения. Если вы не хотите, чтобы текущие тесты выполняли этот результат, вы можете обосновать результат, чтобы он больше не считался отсутствующим покрытием.
В этом примере мы оправдываем false решения по итогам input > lower limit цель решения в блоке Насыщение.
Выравнивание отсутствующей цели условия
MetricSelector объекты принимают путь блока или маркер блока в качестве второго ввода. Получение дескриптора блока насыщенности с помощью getSimulinkBlockHandle.
Поскольку оправдываемая цель является результатом решения, первым вводом в конструктор выбора метрики является slcoverage.MetricSelectorType.DecisionOutcome. Второй вход является дескриптором блока. Последние два показателя представляют собой индекс цели, подлежащей обоснованию, и индекс результатов этой цели, соответственно.
Потому что input > lower limit цель принятия решения - первая цель для блока Насыщения, ее целевой индекс - 1. Потому что false результат этой цели является первым результатом, его индекс результата также 1. Следовательно, последние два входа 1,1.
Создайте фильтр и правило. В этом случае используется режим фильтра по умолчанию для выравнивания. Затем добавьте правило к фильтру с помощью addRule способ.
Сохраните фильтр в файл фильтра с помощью save способ. Затем примените файл фильтра к cvdata путем назначения filter в новый файл фильтра.
Повторно сгенерировать результаты покрытия для блока насыщения с использованием нового отфильтрованного cvdata объект.
В HTML-отчете отсутствует результат принятия решения, указывающий на его обоснованность. Покрытие принятия решений для блока Насыщения теперь составляет 75%.