exponenta event banner

Использование правил обоснования для фильтрации результатов покрытия кода

В этом примере показано, как фильтровать результаты покрытия кода в отчете о покрытии после сбора покрытия для модели в режиме программного обеспечения в цикле (SIL) или процессора в цикле (PIL).

Создание данных покрытия кода

Сначала переведите модель в режим SIL/PIL. В окне Simulink ® щелкните Приложения и в разделе Проверка кода, Проверка и тест щелкните SIL/PIL Manager. На вкладке SIL/PIL измените значение «Automated Verification» на «SIL/PIL Simulation Only».

В этом примере модели покрытие включено по умолчанию. При использовании собственной модели включите покрытие в окне Параметры конфигурации (Configuration Parameters). Дополнительные сведения о параметрах покрытия см. в разделе Определение параметров покрытия.

Смоделировать модель и собрать покрытие, щелкнув Выполнить SIL/PIL (Run SIL/PIL). При моделировании модели рядом с моделью Simulink ® открывается закрепленная панель. Перейдите на вкладку «Сведения о покрытии» для просмотра отчета о покрытии кода.

### Starting build procedure for: slvnvdemo_counter
### Successful completion of build procedure for: slvnvdemo_counter

Build Summary

Top model targets built:

Model              Action                       Rebuild Reason                                    
==================================================================================================
slvnvdemo_counter  Code generated and compiled  Code generation information file does not exist.  

1 of 1 models built (0 models already up to date)
Build duration: 0h 0m 19.015s
### Preparing to start SIL simulation ...
Building with 'gcc'.
MEX completed successfully.
### Updating code generation report with SIL files ...
### Starting SIL simulation for component: slvnvdemo_counter
### Stopping SIL simulation for component: slvnvdemo_counter
### Completed code coverage analysis

Оправдать покрытие отсутствующим кодом с помощью фильтров покрытия

Если модель имеет недостижимую логику, которая является преднамеренной, например, проектирование защитной модели или обработка исключений, можно обосновать отсутствие покрытия с помощью фильтров покрытия.

Раздел Summary отчета об покрытии кода связан с каждым исходным файлом и функцией. В этом примере нажмите slvnvdemo_counter_step. Отчет о покрытии кода переходит к функции с именем slvnvdemo_counter_step. В разделе 2.1 можно увидеть, что оба условия внутри решения (!(slvnvdemo_counter_U.upper >=z rtb_input)) || (! rtb _ inputGElower) | являются ложными для всех временных шагов.

Можно обосновать отсутствие покрытия в отчете. Нажмите кнопку Добавить правило выравнивания рядом с условием slvnvdemo_counter_U.upper >= rtb_input. Откроется обозреватель результатов покрытия, который добавит правило для обоснования отсутствующего результата отчета.

На панели Редактор фильтров установите в поле Имя значение myCodeCovFilter. В поле Описание можно задать любой текст описания. В разделе «Правила фильтрации» имеются две вкладки «Модель» и «Код». В этом случае фильтр появляется на вкладке Код, поскольку выполняется фильтрация из отчета об покрытии кода. Можно дважды щелкнуть по полю Обоснование, чтобы добавить причину, например, «Ожидаемый результат».

В верхней части редактора фильтров в поле Имя файла нажмите кнопку Сохранить как. В окне Сохранить фильтр присвойте файлу фильтра имя myCodeCovFilter. Обратите внимание, что имя фильтра и имя файла фильтра не обязательно должны совпадать.

При сохранении фильтра отчет о покрытии кода обновляется и отображает оправданный результат.

Выровнять ложный случай второго условия, щелкнув фильтр Добавить правило выравнивания рядом с rtb_inputGElower и следуя перечисленным выше шагам. Это второе правило добавляется в тот же файл фильтра, который был создан для первого правила.

После применения фильтров покрытия можно создать новый отчет о покрытии кода, щелкнув Текущие совокупные данные (H) на левой панели обозревателя результатов покрытия, а затем щелкнув Создать отчет в нижней части панели Данные покрытия. По этой ссылке создается автономный отчет.

Сводный раздел отчета о покрытии кода отражает улучшенное покрытие условий из-за правил фильтрации.

Кроме того, в отчете о покрытии кода теперь отображается раздел «Объекты, отфильтрованные из анализа покрытия», в котором отображаются правила и обоснования фильтра.