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

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

В следующих разделах описывается пример модели, Cruise Control Test Generation. Этот пример иллюстрирует, как использовать Simulink® Разработайте Verifier™, чтобы сгенерировать тесты, которые достигают полного покрытия модели. В этом примере вы узнаете, как анализировать модели с помощью Simulink Design Verifier и интерпретировать результаты.

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

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

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

Запуск анализа

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

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

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

Файл данных является 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 Сводные Данные, если вы нажмете Highlight analysis results on model, программа подсвечивает объекты в модели в трех разных цветах, в зависимости от результатов анализа:

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

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

Для примера, в sldvdemo_cruise_control модель, зеленый контур показывает, что подсистема ПИ-контроллера удовлетворяла всем целям тестирования. В Результаты Inspector перечислены две удовлетворенные цели тестирования для подсистемы ПИ-контроллера.

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

  • Время ожидания анализа

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

    • Автоматические ошибки упругости

    • Ограничения двигателя анализа

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

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

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

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

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

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

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

Описание каждой главы отчета смотрите в:

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

  • Имя модели

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

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

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

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

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

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

Состояние целей

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

  • # - Номер цели

  • Type - Тип цели

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

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

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

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

Тест 7

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

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

Элементы модели - Controller/Switch3

Элементы модели - Controller/Switch2

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

  • Продолжительность выполнения теста

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

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

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

Например, смотрите раздел для Теста 7 в Цели тестирования Status.

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

В окне Simulink Design Verifier Сводные Данные, если щелкнуть Create harness model, программа создает и открывает модель тестовой обвязки с именем sldvdemo_cruise_control_harness.

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

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

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

    Примечание

    Можно сконфигурировать модель тестовой обвязки, чтобы ссылаться на модель, которую вы анализируете, используя блок Model вместо использования подсистемы. В диалоговом окне Параметры конфигурации на панели 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. Чтобы просмотреть Тест 7, из списка Active Group, выберите Test Case 7.

    В тесте 7 на 0,01 секунде:

    • Сигналы enable и inc остаются 1.

    • Сигналы торможения и дескриптора остаются 0.

    • Установленный сигнал переходит с 1 на 0.

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

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

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

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

    Сводные данные

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

В окне Simulink Design Verifier Сводные Данные, если вы нажмете 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 Unit в модели тестовой обвязки может отличаться от покрытия для самой модели из-за структуры модели тестовой обвязки.

Объединение тестов

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

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

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

  2. В диалоговом окне Параметры конфигурации, в дереве Select с левой стороны, под категорией Design Verifier, выберите Test Generation.

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

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

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

  6. В окне Сводных данных результатов щелкните Create harness model.

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

  7. Щелкните Run all and produce coverage, чтобы собрать покрытие.

    Анализ по-прежнему удовлетворяет всем 34 целям.

Для просмотра документации необходимо авторизоваться на сайте