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

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

Если необходимо завершить анализ во время его выполнения, нажмите кнопку Остановить (Stop). Программа запрашивает, хотите ли вы получить результаты. При нажатии кнопки «Да» программа создает файл данных на основе полученных результатов. Путь к файлу данных отображается в окне Сводка результатов (Results Summary).
Файл данных - это MAT-файл, содержащий структуру с именем sldvData. В этой структуре хранятся данные, собираемые программным обеспечением во время анализа.
Дополнительные сведения см. в разделе Файлы данных Simulink Design Verifier.
Когда Simulink Design Verifier завершит анализ sldvdemo_cruise_control в окне Сводка результатов (Results Summary) отображается несколько опций.
Выделение результатов анализа на модели
Создание подробного отчета об анализе
Создание модели кабельных трасс
Моделирование тестов и создание отчета о покрытии модели
Примечание
При анализе других моделей в зависимости от результатов анализа можно увидеть подмножество этих четырех опций.

Следующие разделы подробно описывают эти опции.
В окне Резюме Результатов Свидетельства Дизайна Simulink, если Вы нажимаете аналитические результаты Highlight на модели, объектах основных моментов программного обеспечения в модели в трех различных цветах, в зависимости от аналитических результатов:
При подсвечивании результатов анализа на модели открывается инспектор результатов Simulink Design Verifier. При щелчке по объекту в модели, имеющему результаты анализа, Инспектор результатов (Results Inspector) отображает сводку результатов для этого объекта.
Зеленый: Цели выполнены. Зеленый контур указывает, что анализ создал тестовые примеры для всех целей для этого блока. Если блок является подсистемой или атомарным подшаблоном Stateflow ®, зеленый контур указывает, что в результате анализа были сгенерированы тестовые примеры для всех целей, связанных с дочерними объектами.
Например, в sldvdemo_cruise_control модель, зеленый контур показывает, что подсистема контроллера PI выполнила все задачи тестирования. Инспектор результатов перечисляет две удовлетворенные цели тестирования для подсистемы контроллера PI.


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


Красный: Цели неудовлетворительны. Красный контур указывает на то, что анализ обнаружил некоторые цели, для которых он не смог создать тестовые примеры, скорее всего из-за недостижимых элементов конструкции в модели.
В следующем примере вход 2 всегда удовлетворяет критерию для блока Switch, поэтому блок Switch никогда не проходит через значение входа 3.


В окне Резюме Результатов Свидетельства Дизайна Simulink, если Вы нажимаете отчет о подробном анализе Generate, программное обеспечение сохраняет и затем открывает подробный отчет об анализе. Путь к отчету:
<current_folder>/sldv_output/...
sldvdemo_cruise_control/sldvdemo_cruise_control_report.htmlОтчет HTML содержит следующие главы.

Описание каждой главы отчета см. в:
Резюме. В оглавлении щелкните Сводка (Summary), чтобы отобразить главу Сводка (Summary), содержащую следующую информацию.
Имя модели
Режим анализа (формирование теста, проверка свойств, обнаружение ошибок проекта)
Состояние анализа
Продолжительность анализа в секундах
Количество выполненных задач

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

Состояние целей тестирования. В оглавлении щелкните Статус целей тестирования (Test Targets Status), чтобы отобразить таблицу удовлетворенных целей. На следующем рисунке показан частичный список целей, удовлетворяющих модели Cruise Control Test Generation.
Состояние целей

В таблице Удовлетворенные цели (Targets Sufficed) содержится следующая информация для модели.
# - Номер цели
Тип - тип цели
Элемент модели - элемент в модели, для которого была протестирована цель. Щелкните эту ссылку, чтобы отобразить модель с подсвеченным элементом.
Описание - Описание цели
Тестовый случай - тестовый случай, достигающий поставленной цели. Щелкните эту ссылку для получения дополнительной информации об этом тестовом случае.
В строке цели 34 щелкните по номеру тестового случая (7) для отображения дополнительной информации о тестовом случае 7 в главе «Тестовые случаи» отчета.
Тестовый пример 7

В этом примере тестовый случай 7 удовлетворяет одной цели, чтобы результат интегрирования был больше или равен верхнему пределу. T в блоке интегратора дискретного времени. В таблице перечислены значения шести сигналов от времени 0 до времени 0.06.
Элементы модели. В оглавлении щелкните Элементы модели (Model Items), чтобы просмотреть подробные сведения о каждом элементе в модели, определяющем цели покрытия. Эта таблица включает статус цели в конце анализа. Щелкните ссылки в таблице для получения подробной информации о удовлетворенных задачах.
Элементы модели - Controller/Switch3

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

Тестовые примеры. В оглавлении щелкните Тестовые примеры (Test Cases), чтобы отобразить подробную информацию о каждом сгенерированном тестовом случае, включая:
Продолжительность времени выполнения тестового случая
Количество выполненных задач
Подробная информация о поставленных задачах
Входные данные
Пример см. в разделе «Тестовый пример 7» в разделе «Статус целей тестирования».
В окне Резюме Результатов Свидетельства Дизайна Simulink, если Вы нажимаете модель ремня безопасности Create, программное обеспечение создает и открывает названную модель ремня безопасности sldvdemo_cruise_control_harness.

Модель кабельных трасс содержит следующие блоки:
Блок объяснения тестового случая является блоком DocBlock, который документирует созданные тестовые примеры. Дважды щелкните блок «Объяснение тестового случая», чтобы просмотреть описание каждого тестового случая для целей, удовлетворяющих требованиям тестового случая.

Блок «Test Unit» - это блок «Subsystem», содержащий копию исходной модели, проанализированной программным обеспечением. Дважды щелкните блок Test Unit, чтобы просмотреть его содержимое и подтвердить, что он является копией модели Cruise Control Test Generation.
Примечание
Модель кабельных трасс можно настроить так, чтобы она ссылалась на модель, анализируемую с использованием блока модели, а не подсистемы. В диалоговом окне «Параметры конфигурации» на панели «Проверка конструкции» > «Результаты» выберите «Генерировать отдельную модель электрического жгута после анализа» и «Ссылочная входная модель в сгенерированном электрическом жгуте».
Блок входов - это блок построителя сигналов, который содержит сгенерированные сигналы тестового случая. Дважды щелкните блок входов, чтобы открыть диалоговое окно Signal Builder и просмотреть восемь сигналов тестового примера.
Блок Size-Type - это подсистема, которая передает сигналы из блока Inputs в блок Test Unit. Этот блок проверяет, что размер и тип данных сигналов согласуются с блоком блока тестирования.
Диалоговое окно Signal Builder содержит восемь тестовых примеров.
Для просмотра тестового случая 7 в списке Active Group выберите Test Case 7.
В тестовом случае 7 через 0,01 секунды:
Сигналы enable и inc остаются равными 1.
Сигналы тормоза и dec остаются равными 0.
Установленный сигнал переходит от 1 к 0.
Сигнал скорости переходит от 100 к 0.

В блоке Signal Builder группа сигналов удовлетворяет контрольным целям, описанным в блоке «Объяснение тестового случая».
Чтобы подтвердить, что Simulink Design Verifier достиг полного охвата модели, смоделируйте модель электрического жгута с использованием всех тестовых примеров. В диалоговом окне Signal Builder нажмите кнопку Run all and product coverage.![]()
Программное обеспечение Simulink моделирует все тестовые примеры. Программа Simulink Coverage™ собирает данные покрытия для модели кабельных трасс и отображает отчет о покрытии. Сводка отчета показывает, что sldvdemo_cruise_control_harness модель достигает 100% покрытия.
Резюме

В окне Сводка результатов Simulink Design Verifier (Simulate Design Verifier Results Summary), если щелкнуть Simulate tests (Имитировать тесты) и создать отчет о покрытии модели, программное обеспечение смоделирует модель и создаст отчет о покрытии для sldvdemo_cruise_control модель. Программа сохраняет отчет со следующим именем:
<current_folder>/sldv_output/sldvdemo_cruise_control/... sldvdemo_cruise_control_report.html
При нажатии кнопки Выполнить все и создать покрытие для моделирования тестов в модели кабельных трасс можно увидеть следующие различия между этим отчетом покрытия и отчетом, созданным для самой модели.
Отчет об охвате модели кабельных трасс может содержать дополнительные временные шаги. При сборе покрытия для модели кабельных трасс время остановки модели равно времени остановки для самого длинного тестового случая. В результате при моделировании более коротких тестовых случаев может быть достигнуто дополнительное покрытие.
Покрытие цикломатической сложности для подсистемы блока тестирования в модели кабельных трасс может отличаться от покрытия для самой модели из-за структуры модели кабельных трасс.
Если вы предпочитаете просматривать результаты, объединенные в меньшее количество тестовых примеров, установите для параметра Оптимизация набора тестов значение LongTestcases. При использовании LongTestcases при оптимизации в результате анализа генерируется меньше, но более продолжительных тестовых примеров, каждый из которых удовлетворяет нескольким целям тестирования.
Откройте окно sldvdemo_cruise_control модель и повторно запустите анализ с помощью LongTestcases оптимизация:
На вкладке «Design Verifier» в разделе «Prepare» в раскрывающемся меню параметров режима выберите «Settings».
В диалоговом окне Параметры конфигурации (Configuration Parameters) в дереве Выбрать (Select) в левой части в категории Верификатор проекта (Design Verifier) выберите Создание теста (Test Generation).
Задайте для параметра Оптимизация набора тестов значение LongTestcases.
Нажмите кнопку Применить (Apply) и OK, чтобы закрыть диалоговое окно Параметры конфигурации (Configuration Parameters).
В sldvdemo_cruise_control дважды щелкните на блоке «Ветвь».
В окне Сводка результатов (Results Summary) щелкните Создать модель электрического жгута (Create harness model
В модели кабельных трасс блок «Построитель сигналов» и блок «Объяснение тестового случая» теперь содержат один более длинный тестовый случай вместо восьми более коротких тестовых примеров, созданных ранее в окне «Создание тестовых примеров».

Щелкните Выполнить все и создать покрытие для сбора покрытия.
Анализ по-прежнему удовлетворяет всем 34 целям.