Сгенерируйте Тесты для Decision Coverage модели

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

Создайте модель для этого примера:

  1. Создайте Simulink® модель.

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

    • Из библиотеки Sources, блока Inport, чтобы инициировать входной сигнал, значение которого Simulink Design Verifier™ управляет.

    • Из библиотеки Sources два блока Constant, чтобы служить входами данных блоков Switch.

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

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

  3. В вашей модели дважды кликните один из блоков Constant и задайте его параметр Constant value следующим 2.

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

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

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

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

  7. В диалоговом окне Параметров конфигурации выберите Solver панель. В Solver selection:

    • Установите значение опции Type Fixed-step.

    • Установите значение опции Solver Discrete (no continuous states).

    Simulink Design Verifier анализирует только модели, которые используют решатель с фиксированным шагом.

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

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

Проверяйте совместимость модели примера

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

Прежде чем вы начнете анализ, можно также убедиться, что ваша модель совместима с программным обеспечением Simulink Design Verifier:

  1. Откройте ex_generate_test_cases_example модель.

  2. На вкладке Design Verifier нажмите Check Compatibility.

    Программа отображает окно журнала, в котором указывается, совместима ли ваша модель с анализом.

    Только что созданная модель совместима.

Что, если модель частично совместима?

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

Для получения дополнительной информации об автоматическом упрямстве см. Раздел «Несовместимость указателей с автоматическим упрямством».

Настройте опции генерации тестов

Сконфигурируйте Simulink Design Verifier, чтобы сгенерировать тесты, которые достигают 100% Decision Coverage для ex_generate_test_cases_example модель:

  1. Откройте ex_generate_test_cases_example модель.

  2. На вкладке Design Verifier, в разделе Mode, выберите Test Generation.

  3. Нажмите Test Generation Settings.

  4. В диалоговом окне Параметров конфигурации на панели Test Generation установите значение параметра Model coverage objectives Decision.

    В этом примере анализ генерирует тесты, которые записывают только Decision Coverage.

    Параметр Test suite optimization по умолчанию равен Auto. Если вы хотите сгенерировать меньше, но более длинные тесты, выберите LongTestcases для параметра Test suite optimization.

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

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

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

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

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

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

Когда программа завершает анализ, в окне Сводка результатов (Results Summary) отображаются эти опции для просмотра результатов.

В следующих разделах описывается, как можно просмотреть результаты анализа:

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

Выделите результаты анализа на модели примера:

  1. В окне Сводных данных результатов для ex_generate_test_cases_example анализ, нажмите Highlight analysis results on model.

    Блок Switch выделен зеленым цветом, что указывает на то, что блок Switch имеет тесты, которые удовлетворяют его целям тестирования.

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

  2. Щелкните подсвеченный Switch блок.

    Окно Simulink Design Verifier Results указывает, что анализ сгенерировал тесты для обеих целей тестирования:

    • trigger > threshold

    • trigger < threshold

Для получения дополнительной информации о подсвеченных результатах анализа модели смотрите Подсвеченные результаты на модели.

Обзор Детального анализа отчет

Создайте подробный отчет анализа HTML:

  1. В окне Simulink Design Verifier Сводные Данные, в отчете Детальный анализ, нажмите HTML.

    Отчет о HTML откроется в окне браузера.

  2. Отчет включает следующие Table of Contents. Щелкните гиперссылку, чтобы перейти к разделу отчета.

  3. В Table of Contents нажмите Summary отображение главы Сводка отчета.

    В Сводной главе перечислена информация о модели и состоянии целей - удовлетворенных или нет.

  4. В Table of Contents нажмите Analysis Information для отображения главы «Аналитическая информация».

    Глава «Аналитическая информация» содержит информацию о:

    • Модель, которую вы проанализировали.

    • Опции, заданные для анализа.

    • Приближения программного обеспечения, выполненного во время анализа.

  5. В Table of Contents нажмите Test Objectives Status для отображения главы «Состояние целей тестирования» отчета.

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

  6. Под таблицей Test Case столбцом нажмите 2 для отображения раздела Тест 2.

    В этом разделе приведены подробные сведения о тесте, которую сгенерировал анализ для достижения цели в вашей модели. Этот тест достигает цели тестирования 1, когда блок Switch передает свой третий вход в свой выходной порт. В частности, программное обеспечение определяет, что значение -1 для сигнала управления Switch блоком заставляет блок проходить свой третий вход как выход блока.

Дополнительные сведения об отчетах HTML см. в разделе «Отчеты Simulink Design Verifier».

Просмотр модели тестовой обвязки

Чтобы создать модель тестовой обвязки с тестами, которые удовлетворяют целям тестирования в вашей модели, в окне Simulink Design Verifier Сводные Данные, нажмите Create harness model.

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

Блок Signal Builder с именем Inputs содержит тесты. Дважды кликните блок Inputs, чтобы увидеть тесты. Из блока Signal Builder можно симулировать модель с помощью тестов и создать отчет о покрытии модели, как описано в Simulate Tests и Produce a Model Coverage Report.

Для получения дополнительной информации о модели тестовой обвязки, см. Simulink Design Verifier Моделей тестовой обвязки.

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

Чтобы сгенерировать меньше тесты:

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

  2. Перезапустите анализ.

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

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

Чтобы симулировать модель тестовой обвязки с помощью сгенерированных тестов в модели тестовой обвязки:

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

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

    Программа моделирует модель тестовой обвязки, используя оба тестов, собирает информацию о покрытии модели и отображает отчет о покрытии. Отчет о покрытии указывает, что тесты регистрируют 100% Decision Coverage для ex_generate_test_cases_example модель.

Можно также симулировать модель, не создавая модель тестовой обвязки. В окне журнала Simulink Design Verifier нажмите Simulate tests and produce a model coverage report.

Для получения дополнительной информации о покрытии модели смотрите Отчет о покрытии модели верхнего уровня (Simulink Coverage).

Просмотрите sldvData Файл

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

Чтобы просмотреть файл данных, щелкните имя файла данных в окне журнала, в этом примере, ex_generate_test_cases_example_sldvdata.mat. Когда вы кликаете имя файла, копию sldvData объект создается в MATLAB® рабочая область, чтобы вы могли просматривать и манипулировать данными.

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

Просмотр результатов анализа в окне « Сводных данных результатов»

Пока ваша модель остается открытой, можно просмотреть результаты последнего анализа Simulink Design Verifier в окне Сводных данных результатов.

На вкладке Design Verifier, в разделе Review Results, нажмите Load Earlier Results или Results Summary, чтобы просмотреть результаты.

Для любого анализа Simulink Design Verifier из окна Сводных данных результатов можно выполнить эти задачи.

ЗадачаДля получения дополнительной информации

Выделите результаты анализа на модели.

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

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

Отчеты Simulink Design Verifier

Создайте модель модели тестовой обвязки, если модель тестовой обвязки уже существует, откройте ее.

Если во время анализа не было сгенерированы ни одних тестов, эта опция недоступна.

Simulink Design Verifier Моделей тестовой обвязки

Просмотрите файл данных.

Simulink Design Verifier

Просмотрите файл журнала.

Файлы журнала Simulink Design Verifier

После закрытия модели можно больше не просматривать результаты анализа.

Настройка генерации тестов

Можно использовать блок Test Condition, чтобы ограничивать сигналы в модели определенными значениями во время анализа.

  1. В командной строке MATLAB введите sldvlib отображение библиотеки Simulink Design Verifier.

  2. Откройте вложенный раздел Цели и ограничения.

  3. Скопируйте блок Test Condition в модель, перетащив его из библиотеки Simulink Design Verifier в окно модели.

  4. В окно модели вставьте блок Test Condition между блоками Inport и Switch.

  5. Дважды кликните блок Test Condition, чтобы получить доступ к его атрибутам.

    Откроется диалоговое окно параметров блоков тестовых условий.

  6. В Values поле введите [-0.1, 0.1]. При генерации тестов для этой модели анализ ограничивает значения сигналов, вводя порт управления Switch блоком в заданную область.

  7. Щелкните OK, чтобы сохранить изменения и закрыть диалоговое окно параметры блоков тестового условия.

  8. Сохраните модель как ex_generate_test_cases_with_tc_block и держите его открытым.

Повторный анализ модели примера

Анализируйте ex_generate_test_cases_with_tc_block модель с блоком Test Condition. Чтобы наблюдать, как блок Test Condition влияет на генерацию тестов, сравните результат этого анализа с результатом, который вы получили в Analyze Example Model.

  1. На вкладке Design Verifier нажмите Generate Tests.

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

  2. В окне Сводных данных результатов щелкните HTML Report.

  3. Чтобы начать просмотр отчета, в Table of Contents нажмите Summary.

    Глава «Сводка» указывает, что Simulink Design Verifier выполнил две цели тестирования в модели.

  4. В Table of Contents нажмите Analysis Information. Перейдите к нижней части этой главы, в раздел «Ограничения».

    В этом разделе перечислены Test Condition блоки, которые вы добавили, чтобы ограничить значение сигнала управления Switch блоком интервалом [-0.1, 0,1].

  5. В Table of Contents нажмите Test Objectives Status.

    Эта таблица указывает, что Simulink Design Verifier выполнил обеих цели тестирования для блока Switch через два сгенерированных теста.

  6. Под таблицей Test Case столбцом нажмите 1.

    В этом разделе приведены подробные сведения о тесте, которую программное обеспечение сгенерировало для достижения цели в вашей модели. Этот тест достигает цели тестирования 1, когда блок Switch передает свой третий вход в свой выходной порт. Хотя блок Test Condition ограничивает область входных сигналов интервалом [-0,1, 0,1], программное обеспечение определяет, что значение -0,1 для сигнала управления блока Switch удовлетворяет этой цели.

  7. Чтобы подтвердить, что тест достигает 100% Decision Coverage, откройте модель тестовой обвязки.

  8. Дважды кликните блок Inputs, чтобы открыть диалоговое окно Signal Builder.

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

    Программа Simulink моделирует модель тестовой обвязки с помощью обоих тестов, собирает информацию о покрытии модели и отображает отчет о покрытии. В разделе «Сводка» отчета указывается, что Simulink Design Verifier сгенерировал тесты, которые достигают полного Decision Coverage для вашей модели примера.

Анализируйте противоречивые модели

Если анализ приводит к ошибке The model is contradictory in its current configurationпрограммное обеспечение обнаружило противоречие в вашей модели и не может анализировать модель.

Вы можете иметь противоречие, если ваша модель имеет Test Objective блоков с неправильными параметрами. Для примера противоречие может быть целью, которая утверждает, что сигнал должен быть между 0 и 5, когда сигнал является константой 10.

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

Похожие темы