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