Задайте значения ограничений параметров для полного покрытия

Об этом примере

Этот пример описывает, как создать и проанализировать простой Simulink® модель, для которой вы генерируете тесты, которые достигают Decision Coverage. Однако в этом примере достижение полного Decision Coverage возможно только тогда, когда Simulink Design Verifier™ обрабатывает конкретные параметры блоков как переменную во время его анализа. В этом примере объясняется, как задать строения параметров для использования с анализом.

Следующий рабочий процесс поможет вам пройти процесс завершения этого примера.

ЗадачаОписаниеВидите...
1

Создайте модель примера.

Создайте модель примера

2

Задайте переменную как значение Constant параметров блоков.

Параметризация постоянного блока

3

Ограничьте значение переменной, которую задает блок Constant.

Автоматическое ограничение параметра

4

Сгенерируйте тесты для вашей модели и интерпретируйте результаты.

Анализ модели примера

5

Моделируйте тесты и измеряйте результирующий Decision Coverage.

Симулируйте тесты

Создайте модель примера

Создайте простую модель Simulink, которая будет использоваться в этом примере:

  1. Создайте пустую модель Simulink.

  2. Скопируйте следующие блоки в пустой Редактор Simulink:

    • Из библиотеки Sources:

      • Два блока Inport для инициирования входных сигналов

      • Блок Constant для управления коммутатором

    • Из библиотеки Signal Routing: Блок Multiport Switch для обеспечения простой логики

    • Из библиотеки Sinks: Блок Outport для приема сигнала выхода

  3. Дважды кликните блок Multiport Switch, чтобы получить доступ к его диалоговому окну и задать опцию Number of data ports как 2.

  4. Соедините блоки так, чтобы ваша модель выглядела следующим образом.

  5. На вкладке Simulation щелкните стреле справа от Prepare раздела и нажмите Model Settings.

  6. В диалоговом окне Параметров конфигурации выберите Solver. В группе Solver selection установите для опции Type значение Fixed-step, а затем установите для опции Solver значение discrete (no continuous states).

  7. На панели Diagnostics задайте Automatic solver parameter selection none.

  8. Нажмите кнопку OK, чтобы применить изменения и закрыть диалоговое окно Параметры конфигурации.

  9. Сохраните модель как ex_defining_params_example для использования в следующей процедуре.

Параметризация постоянного блока

Параметризируйте Constant блок в модели, задав переменную как значение параметра Constant Constant value блока:

  1. Дважды кликните Constant блок.

  2. В Constant value поле введите A.

  3. Нажмите кнопку OK, чтобы применить изменение и закрыть диалоговое окно Constant параметров блоков.

  4. Сохраните модель.

Переменная предварительной загрузки рабочей области

Предварительно загрузите значение MATLAB® переменная рабочей области A ссылка блока Constant:

  1. На вкладке Modeling выберите Model Settings > Model Properties.

  2. Перейдите на вкладку Callbacks.

  3. В PreLoadFcn, введите:

    A = int8(1);
  4. Щелкните OK, чтобы закрыть диалоговое окно Свойства модели (Model Properties) и сохранить изменения.

  5. Закройте модель.

  6. Откройте свою модель.

    Когда вы открываете модель, PreLoadFcn задает переменную A типа int8 значение которого равняется 1.

Автоматическое ограничение параметра

Используйте Таблицу параметров, чтобы ограничить переменную A к заданным значениям.

  1. На вкладке Apps щелкните стреле справа от Apps раздела.

    В разделе Model Verification, Validation, and Test нажмите Design Verifier.

  2. На вкладке Design Verifier, в разделе Prepare, в раскрывающемся меню настроек режима нажмите Settings.

  3. В Параметры конфигурации окне выберите Design Verifier > Parameters.

  4. Выберите Enable parameter configuration.

  5. Выберите Use parameter table.

  6. Нажмите Find in Model.

    Таблица параметров заполнена параметрами из вашей модели. Когда это возможно, он автогенерирует значения ограничений для каждого параметра, в зависимости от типа данных и местоположения параметра в модели.

    В этом случае для параметра появляется строка A который вы определили. Строка таблицы для A отображает следующую информацию:

    • В столбце Name имя параметра (A).

    • В столбце Constraint ограничение, заданное на параметре A. Таблица параметров автогенерирует значения ограничений {1, 2}.

    • В Value столбце значение A в базовом рабочем пространстве. Это значение равняется 1.

    • В столбце Model Element компонент модели, в котором A проживает (ex_defining_params_example/Constant).

    • В Use столбце установлен флажок, указывающий, сконфигурированы ли указанные в таблице значения ограничений для анализа.

  7. В Таблице параметров в строке для A параметраубедитесь, что установлен флажок Use.

    Когда вы включаете это строение параметра, во время анализа Simulink Design Verifier, параметр A принимает только int8 значения 1 и 2.

  8. В диалоговом окне Параметров конфигурации нажмите OK.

  9. Сохраните модель.

Анализ модели примера

Проанализируйте модель с помощью только что созданной строения параметра и сгенерируйте отчет анализа:

  1. На вкладке Design Verifier, в разделе Mode, выберите Test Generation. Нажмите Generate Tests.

    Simulink Design Verifier анализирует вашу модель, чтобы сгенерировать тесты.

  2. Когда программа завершит свой анализ, в окне Simulink Design Verifier Сводные Данные выберите Generate detailed analysis report.

    Программа отображает HTML с именем ex_defining_params_example_report.html.

    Оставьте окно Сводных данных результатов открытым для следующей процедуры.

  3. В Table of Contents отчета Simulink Design Verifier нажмите Test Cases.

  4. Нажмите Test Case 1 для отображения подраздела для этого теста.

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

  5. Прокрутка вниз до раздела Тест 2 в Test Cases главе.

    В этом разделе приведены подробные сведения о тесте 2, который удовлетворяет другой цели покрытия в модели. В этом тесте значение 2 для A параметров удовлетворяет цели.

Симулируйте тесты

Симулируйте сгенерированные тесты и просмотрите отчет о покрытии, который является результатом симуляции:

  1. В окне Simulink Design Verifier Сводные Данные выберите Create harness model.

    Программа создает и открывает модель тестовой обвязки с именем ex_defining_params_example_harness.

  2. Блок, помеченный как Входы в модели тестовой обвязки, является Signal Builder блоком, который содержит сигналы теста. Дважды кликните блок Inputs, чтобы просмотреть сигналы теста в блоке Signal Builder.

  3. В диалоговом окне Signal Builder нажмите кнопку Run all.

    Программа Simulink моделирует каждый из тестов последовательно, собирает данные о покрытии для каждой симуляции и отображает HTML о совокупных результатах покрытия в конце последней симуляции.

  4. В отчете о покрытии модели проверьте раздел Summary:

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

  5. В Summary разделе выберите Подсистему Test Unit.

    В отчете отображаются подробные результаты покрытия для подсистемы Test Unit.

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

См. также