Этот пример описывает, как создать и проанализировать простой Simulink® модель, для которой вы генерируете тесты, которые достигают Decision Coverage. Однако в этом примере достижение полного Decision Coverage возможно только тогда, когда Simulink Design Verifier™ обрабатывает конкретные параметры блоков как переменную во время его анализа. В этом примере объясняется, как задать строения параметров для использования с анализом.
Следующий рабочий процесс поможет вам пройти процесс завершения этого примера.
| Задача | Описание | Видите... |
|---|---|---|
| 1 | Создайте модель примера. | |
| 2 | Задайте переменную как значение Constant параметров блоков. | |
| 3 | Ограничьте значение переменной, которую задает блок Constant. | |
| 4 | Сгенерируйте тесты для вашей модели и интерпретируйте результаты. | |
| 5 | Моделируйте тесты и измеряйте результирующий Decision Coverage. |
Создайте простую модель Simulink, которая будет использоваться в этом примере:
Создайте пустую модель Simulink.
Скопируйте следующие блоки в пустой Редактор Simulink:
Из библиотеки Sources:
Из библиотеки Signal Routing: Блок Multiport Switch для обеспечения простой логики
Из библиотеки Sinks: Блок Outport для приема сигнала выхода
Дважды кликните блок Multiport Switch, чтобы получить доступ к его диалоговому окну и задать опцию Number of data ports как 2.
Соедините блоки так, чтобы ваша модель выглядела следующим образом.

На вкладке Simulation щелкните стреле справа от Prepare раздела и нажмите Model Settings.
В диалоговом окне Параметров конфигурации выберите Solver. В группе Solver selection установите для опции Type значение Fixed-step, а затем установите для опции Solver значение discrete (no continuous states).
На панели Diagnostics задайте Automatic solver parameter selection none.
Нажмите кнопку OK, чтобы применить изменения и закрыть диалоговое окно Параметры конфигурации.
Сохраните модель как ex_defining_params_example для использования в следующей процедуре.
Параметризируйте Constant блок в модели, задав переменную как значение параметра Constant Constant value блока:
Дважды кликните Constant блок.
В Constant value поле введите A.
Нажмите кнопку OK, чтобы применить изменение и закрыть диалоговое окно Constant параметров блоков.
Сохраните модель.
Предварительно загрузите значение MATLAB® переменная рабочей области A ссылка блока Constant:
На вкладке Modeling выберите Model Settings > Model Properties.
Перейдите на вкладку Callbacks.
В PreLoadFcn, введите:
A = int8(1);
Щелкните OK, чтобы закрыть диалоговое окно Свойства модели (Model Properties) и сохранить изменения.
Закройте модель.
Откройте свою модель.
Когда вы открываете модель, PreLoadFcn задает переменную A типа int8 значение которого равняется 1.

Используйте Таблицу параметров, чтобы ограничить переменную A к заданным значениям.
На вкладке Apps щелкните стреле справа от Apps раздела.
В разделе Model Verification, Validation, and Test нажмите Design Verifier.
На вкладке Design Verifier, в разделе Prepare, в раскрывающемся меню настроек режима нажмите Settings.
В Параметры конфигурации окне выберите Design Verifier > Parameters.
Выберите Enable parameter configuration.
Выберите Use parameter table.
Нажмите Find in Model.
Таблица параметров заполнена параметрами из вашей модели. Когда это возможно, он автогенерирует значения ограничений для каждого параметра, в зависимости от типа данных и местоположения параметра в модели.
В этом случае для параметра появляется строка A который вы определили. Строка таблицы для A отображает следующую информацию:
В столбце Name имя параметра (A).
В столбце Constraint ограничение, заданное на параметре A. Таблица параметров автогенерирует значения ограничений {1, 2}.
В Value столбце значение A в базовом рабочем пространстве. Это значение равняется 1.
В столбце Model Element компонент модели, в котором A проживает (ex_defining_params_example/Constant).
В Use столбце установлен флажок, указывающий, сконфигурированы ли указанные в таблице значения ограничений для анализа.

В Таблице параметров в строке для A параметраубедитесь, что установлен флажок Use.
Когда вы включаете это строение параметра, во время анализа Simulink Design Verifier, параметр A принимает только int8 значения 1 и 2.
В диалоговом окне Параметров конфигурации нажмите OK.
Сохраните модель.
Проанализируйте модель с помощью только что созданной строения параметра и сгенерируйте отчет анализа:
На вкладке Design Verifier, в разделе Mode, выберите Test Generation. Нажмите Generate Tests.
Simulink Design Verifier анализирует вашу модель, чтобы сгенерировать тесты.
Когда программа завершит свой анализ, в окне Simulink Design Verifier Сводные Данные выберите Generate detailed analysis report.
Программа отображает HTML с именем ex_defining_params_example_report.html.
Оставьте окно Сводных данных результатов открытым для следующей процедуры.
В Table of Contents отчета Simulink Design Verifier нажмите Test Cases.
Нажмите Test Case 1 для отображения подраздела для этого теста.

В этом разделе приведены подробные сведения о тесте 1, который Simulink Design Verifier сгенерировал, чтобы удовлетворить цели покрытия в модели. В этом тесте значение 1 для параметра A удовлетворяет цели.
Прокрутка вниз до раздела Тест 2 в Test Cases главе.

В этом разделе приведены подробные сведения о тесте 2, который удовлетворяет другой цели покрытия в модели. В этом тесте значение 2 для A параметров удовлетворяет цели.
Симулируйте сгенерированные тесты и просмотрите отчет о покрытии, который является результатом симуляции:
В окне Simulink Design Verifier Сводные Данные выберите Create harness model.
Программа создает и открывает модель тестовой обвязки с именем ex_defining_params_example_harness.
Блок, помеченный как Входы в модели тестовой обвязки, является Signal Builder блоком, который содержит сигналы теста. Дважды кликните блок Inputs, чтобы просмотреть сигналы теста в блоке Signal Builder.

В диалоговом окне Signal Builder нажмите кнопку Run all.![]()
Программа Simulink моделирует каждый из тестов последовательно, собирает данные о покрытии для каждой симуляции и отображает HTML о совокупных результатах покрытия в конце последней симуляции.
В отчете о покрытии модели проверьте раздел Summary:

В этом разделе приводятся результаты покрытия для модели тестовой обвязки и его подсистемы Test Unit. Заметьте, что подсистема достигает 100% Decision Coverage.
В Summary разделе выберите Подсистему Test Unit.
В отчете отображаются подробные результаты покрытия для подсистемы Test Unit.

Этот раздел показывает, что блок Multiport Switch достигает 100% Decision Coverage, потому что в тестах выполняется каждый из путей переключения.
Расширение существующих тестовых случаев после применения строений параметра