Анализируйте модель

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

Следующие разделы описывают модель в качестве примера, Генерацию тестов Круиз-контроля. Этот пример иллюстрирует, как использовать Simulink® Design Verifier™, чтобы сгенерировать тесты, которые достигают полного покрытия модели. Через этот пример вы изучаете, как анализировать модели с Simulink Design Verifier и интерпретировать результаты.

Откройте модель

Чтобы открыть модель Cruise Control Test Generation, в MATLAB® запрашивают, введите:

Сгенерируйте тесты

Запустите анализ

Чтобы сгенерировать тесты для модели Cruise Control Test Generation, откройте окно модели и дважды кликните, блок маркировал Run.

Simulink Design Verifier начинает анализировать модель, чтобы сгенерировать тесты, и окно Simulink Design Verifier Results Summary открывается. Окно Results Summary отображает синхронный журнал, показывающий прогресс анализа.

Если необходимо отключить анализ, в то время как он запускается, нажмите Stop. Программное обеспечение спрашивает, хотите ли вы привести к результатам. Если вы нажимаете Yes, программное обеспечение создает файл данных на основе результатов, достигнутых до сих пор. Путь файла данных появляется в окне Results Summary.

Файлом данных является MAT-файл, который содержит структуру под названием sldvData. Эта структура хранит данные, которые программное обеспечение собирает и производит во время анализа.

Для получения дополнительной информации смотрите Файлы данных Simulink Design Verifier.

Сгенерируйте результаты анализа

Когда Simulink Design Verifier завершает свой анализ модели sldvdemo_cruise_control, окно Results Summary отображает несколько опций:

  • Highlight analysis results on model

  • Generate detailed analysis report

  • Create harness model

  • Simulate tests and produce a model coverage report

Примечание

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

Разделы, которые следуют, описывают эти опции подробно.

Подсветите результаты анализа на модели

В окне Simulink Design Verifier Results Summary, если вы нажимаете Highlight analysis results on model, объекты подсветок программного обеспечения в модели в трех различных цветах, в зависимости от результатов анализа:

Когда вы подсвечиваете результаты анализа на модели, Инспектор Результатов Simulink Design Verifier открывается. Когда вы кликаете по объекту в модели, которая имеет результаты анализа, Инспектор Результатов отображает сводные данные результатов для того объекта.

Зеленый: Удовлетворенные Цели.  Зеленая схема указывает, что анализ сгенерировал тесты для всех целей для того блока. Если блок является подсистемой или Stateflow® атомарный подграфик, зеленая схема указывает, что анализ сгенерировал тесты для всех целей, сопоставленных с дочерними объектами.

Например, в модели sldvdemo_cruise_control, зеленая схема показывает, что подсистема контроллера PI удовлетворила все цели тестирования. Инспектор Результатов перечисляет две удовлетворенных цели тестирования для подсистемы контроллера PI.

Оранжевый: Нерешенные Цели.  Оранжевая схема указывает, что анализ не смог определить, была ли цель выполнима или нет. Эта ситуация может произойти когда:

  • Анализ испытывает таймаут

  • Программное обеспечение удовлетворяет цели тестирования, не генерируя тесты из-за:

    • Автоматические блокирующие ошибки

    • Ограничения аналитического механизма

В следующем примере испытал таймаут анализ, прежде чем это могло определить, была ли одна из целей для блока Discrete-Time Integrator выполнима.

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

В следующем примере вход 2 всегда удовлетворяет критерий блока switch, таким образом, блок switch никогда не проходит через значение входа 3.

Сгенерируйте отчет детального анализа

В окне Simulink Design Verifier Results Summary, если вы нажимаете Generate detailed analysis report, программное обеспечение сохраняет и затем открывает подробный отчет об анализе. Путь к отчету:

<current_folder>/sldv_output/...
     sldvdemo_cruise_control/sldvdemo_cruise_control_report.html

Отчет HTML включает следующие главы.

Для описания каждой главы отчета см.:

Сводные данные.  В Table of Contents нажмите Summary, чтобы отобразить Итоговую главу, которая включает следующую информацию:

  • Имя модели

  • Режим анализа (генерация тестов, доказательство свойства, поиск ошибок проектирования)

  • Состояние анализа

  • Продолжительность анализа в секундах

  • Количество целей удовлетворено

Информация об анализе.  В Table of Contents нажмите Analysis Information, чтобы отобразить информацию об анализируемой модели и аналитических опциях.

Состояние Целей тестирования.  В Table of Contents нажмите Test Objectives Status, чтобы отобразить таблицу удовлетворенных целей. Следующие данные показывают частичный список целей, удовлетворенных в модели Cruise Control Test Generation.

Таблица Objectives Satisfied приводит следующую информацию для модели:

  • # — Объективный номер

  • Ввод Объективный тип

  • Model Item — Элемент в модели, на которую была протестирована цель. Щелкните по этой ссылке, чтобы отобразить модель с этим подсвеченным элементом.

  • Описание Описание цели

  • Test Case — Тест, который достигает цели. Щелкните по этой ссылке для получения дополнительной информации о том тесте.

В строке для объективных 34 кликните по номеру теста (7), чтобы отобразить больше информации о Тесте 7 в главе Test Cases отчета.

В этом примере Тест 7 удовлетворяет одну цель, что результат интегрирования быть больше, чем или равным верхнему пределу T в блоке Discrete-Time Integrator. Таблица приводит значения шести сигналов со времени 0 в течение времени 0.06.

Образцовые Элементы.  В Table of Contents нажмите Model Items, чтобы видеть подробную информацию о каждом элементе в модели, которая задает цели покрытия. Эта таблица включает состояние цели в конце анализа. Щелкните по ссылкам в таблице для получения дальнейшей информации об удовлетворенных целях.

Тесты.  В Table of Contents нажмите Test Cases, чтобы отобразить подробную информацию о каждом сгенерированном тесте, включая:

  • Отрезок времени, чтобы выполнить тест

  • Количество целей удовлетворено

  • Подробная информация об удовлетворенных целях

  • Входные данные

Для примера смотрите раздел для Теста 7 в Состоянии Целей тестирования.

Создайте модель тестовой обвязки

В окне Simulink Design Verifier Results Summary, если вы нажимаете Create harness model, программное обеспечение создает и открывает модель тестовой обвязки под названием sldvdemo_cruise_control_harness.

Модель тестовой обвязки содержит следующие блоки:

  • Блок Test Case Explanation является блоком DocBlock, который документирует сгенерированные тесты. Дважды кликните блок Test Case Explanation, чтобы просмотреть описание каждого теста для целей, которые удовлетворяет тест.

  • Блок Test Unit является блоком Subsystem, который содержит копию исходной модели, которую анализировало программное обеспечение. Дважды кликните блок Test Unit, чтобы просмотреть его содержимое и подтвердить, что это - копия модели Cruise Control Test Generation.

    Примечание

    Можно сконфигурировать модель тестовой обвязки, чтобы сослаться на модель, что вы анализируете использование блока Model вместо того, чтобы использовать подсистему. В диалоговом окне Configuration Parameters, на панели Design Verifier > Results, выбирают Generate separate harness model after analysis и Reference input model in generated harness.

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

  • Блок Size-Type является подсистемой, которая передает сигналы от блока Inputs до блока Test Unit. Этот блок проверяет, что размер и тип данных сигналов сопоставимы с блоком Test Unit.

Диалоговое окно Signal Builder содержит восемь тестов.

  1. К представлению Test Case 7, из списка Active Group, выбирают Test Case 7.

    В Тесте 7 в 0,01 секунды:

    • Разрешение и сигналы inc остаются 1.

    • Тормоз и сигналы в декабре остаются 0.

    • Переходы сигнала набора от 1 до 0.

    • Переходы сигнала скорости от 100 до 0.

    В блоке Signal Builder группа сигнала удовлетворяет цели тестирования, описанные в блоке Test Case Explanation.

  2. Чтобы подтвердить что Simulink Design Verifier достигнутое полное покрытие модели, моделируйте модель тестовой обвязки с помощью всех тестов. В диалоговом окне Signal Builder нажмите кнопку Run all and produce coverage.

    Программное обеспечение Simulink моделирует все тесты. Программное обеспечение Simulink Coverage™ собирает данные о покрытии для модели тестовой обвязки и отображает отчет покрытия. Сводные данные отчета показывают, что модель sldvdemo_cruise_control_harness достигает 100%-го покрытия.

Моделируйте тесты и представьте отчет покрытия модели

В окне Simulink Design Verifier Results Summary, если вы нажимаете Simulate tests and produce a model coverage report, программное обеспечение моделирует модель и представляет отчет покрытия для модели sldvdemo_cruise_control. Программное обеспечение хранит отчет следующим именем:

<current_folder>/sldv_output/sldvdemo_cruise_control/...
		sldvdemo_cruise_control_report.html

Когда вы нажимаете Run all and produce coverage, чтобы моделировать тесты в модели тестовой обвязки, можно видеть следующие различия между этим отчетом покрытия и отчетом, который вы сгенерировали для самой модели:

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

  • Цикломатическое покрытие сложности для Тестовой Модульной подсистемы в модели тестовой обвязки может отличаться, чем покрытие для самой модели из-за структуры модели тестовой обвязки.

Объедините тесты

Если вы предпочитаете рассматривать результаты, которые объединены в меньшее число тестов, установите параметр Test suite optimization на LongTestcases. Когда вы используете оптимизацию LongTestcases, анализ генерирует меньше, но дольше, тесты, что каждый удовлетворяет несколько целей тестирования. Эта оптимизация создает более эффективный анализ и результаты, которые легче рассмотреть.

Откройте модель sldvdemo_cruise_control и повторно выполните анализ с оптимизацией LongTestcases:

  1. Выберите Analysis> Design Verifier> Options.

  2. В диалоговом окне Configuration Parameters, в дереве Select на левой стороне, под категорией Design Verifier, выбирают Test Generation.

  3. Установите параметр Test suite optimization на LongTestcases.

  4. Нажмите Apply и OK, чтобы закрыть диалоговое окно Configuration Parameters.

  5. В модели sldvdemo_cruise_control дважды кликните, блок маркировал Run.

  6. В окне Results Summary нажмите Create harness model.

    В модели тестовой обвязки блок Signal Builder и блок Test Case Explanation теперь содержат один более длинный тест вместо восьми более коротких тестов, созданных ранее в, Генерируют Тесты.

  7. Нажмите Run all and produce coverage, чтобы собрать покрытие.

    Анализ все еще удовлетворяет все 34 цели.