Этот пример описывает, как создать и проанализировать простой 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, потому что в тестах выполняется каждый из путей переключения.
Расширение существующих тестовых случаев после применения строений параметра