exponenta event banner

Планирование тестовых примеров

Test™ Simulink ® можно использовать для функционального тестирования моделей и кода. Перед созданием теста необходимо учесть следующее:

  • Какую модель или компонент модели вы тестируете?

  • Интегрирует ли компонент код, например, с использованием блока вызывающего абонента C?

  • Нужно ли запускать тест в нескольких средах, например, с использованием созданного кода на внешнем целевом объекте?

  • Какова цель теста? Например, требуется ли проверка требований, сравнение данных или быстрое тестирование конструкции?

  • Используется ли в тесте несколько параметрических значений?

  • Требуются ли результаты покрытия?

Система для тестирования

Можно протестировать целую модель или сосредоточиться на компоненте модели. Можно создать тестовый пример для всей модели или использовать тестовый электрический жгут.

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

  • Тестовый электрический жгут позволяет изолировать компонент модели от основной модели для модульного тестирования. Дополнительные сведения см. в разделе Создание тестового кабеля.

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

На рисунке показан пример тестового электрического жгута. Проверяемым компонентом является блок shift_logic, который копируется из главной модели во время создания электрического жгута. Копия блока shift_logic связана с главной моделью. Входами являются блоки Inport, а выходом - блок Outport. Вертикальные подсистемы содержат блоки спецификации сигнала и маршрутизацию, которая соединяет интерфейс компонента с входами и выходами.

Перед созданием тестового электрического жгута решите, следует ли сохранить электрический жгут с моделью и как синхронизировать электрический жгут с моделью. Дополнительные сведения см. в разделах «Проверка связи между кабельным жгутом и моделью» и «Синхронизация изменений между тестовым кабельным жгутом и моделью».

Цели тестирования

Прежде чем написать тест, поймите свои цели.

Проверка требований

Можно оценить поведение модели в соответствии с требованиями. Например, предположим, что ваши требования предусматривают, что трансмиссия должна переключать передачи на определенных скоростях. Создайте тестовый пример для модели контроллера передачи или тестовый жгут для компонента контроллера. Проверьте соответствие модели требованиям, выполнив следующие действия.

  • Утверждение операторов проверки в модели или тестовом жгуте.

  • Включение блоков проверки модели в модель или тестовый электрический жгут.

  • Сбор выходных данных моделирования в тестовом случае и сравнение выходных данных моделирования с базовыми данными.

Запустите тестовый случай и зафиксируйте результаты в диспетчере тестов. Тестовый случай можно связать с требованиями, созданными в Simulink Requirements™, собрать покрытие с помощью Simulink Coverage™ и добавить тестовые примеры для других сценариев. Пример см. в разделе Тестирование точек понижающей передачи контроллера передачи.

Сравнение данных

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

В базовом тесте установите базовые данные, которые являются ожидаемыми результатами. Можно определить базовые данные вручную, импортировать базовые данные из файла Excel ® или MAT или захватить базовые данные из моделирования.

При тестировании эквивалентности сравниваются два моделирования, чтобы определить, являются ли они эквивалентными. Например, можно сравнить результаты двух решателей или результаты моделирования в обычном и программном режимах в цикле (SIL). Изучите влияние различных значений параметров или наборов калибровочных данных, выполнив обратные тесты. Пример см. в разделе Тестирование двух имитаций эквивалентности.

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

Имитационное тестирование

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

По умолчанию выполнение теста в диспетчере тестов отключает точки останова для блоков Simulink, Stateflow ® и Test Sequence. Используйте команду Выполнить со степпером (Run with Stepper) в Диспетчере тестов (Test Manager), чтобы запустить тест в степпере моделирования и использовать точки останова.

Обратите внимание, что точки останова Simulink и Stateflow не поддерживаются при выполнении теста из диспетчера тестов. Можно нажать кнопку Run with Stepper в диспетчере тестов, запустить тест и использовать точки останова со степпером моделирования.

Тестирование нескольких версий

Можно настроить тест для запуска других установленных версий MATLAB ®, начиная с R2011b. Эта возможность позволяет запускать тесты в версиях, не имеющих Simulink Test. Можно запустить один и тот же тест в нескольких версиях, чтобы убедиться, что он проходит в каждой из них. Дополнительные сведения см. в разделе Выполнение тестов в нескольких версиях MATLAB.

Испытания SIL и PIL

Вывод сгенерированного кода можно проверить, запустив моделирование «назад-назад» в режиме модели и SIL (программное обеспечение в цикле) или PIL (процессор в цикле). Один и тот же параллельный тест может выполнять несколько тестовых сценариев путем итерации различных тестовых векторов, определенных в файле MAT или Excel. Можно применить допуски к результатам, чтобы обеспечить технически приемлемые различия между моделью и сгенерированным кодом. Допуски могут включать допустимые различия для значений и времени, которые могут применяться к аппаратным средствам, работающим в режиме реального времени. В моделях подсистем нельзя использовать режим SIL или PIL.

Тестирование в реальном времени

С помощью Simulink Real-Time™ можно включить эффекты физических установок, сигналов и встроенного оборудования, выполнив тесты в режиме HIL (hardware-in-the-loop) на целевом компьютере в реальном времени. Запустив базовый тест в режиме реального времени, можно сравнить результаты с известными хорошими данными. Можно также выполнить параллельное тестирование модели, SIL или PIL и моделирование в реальном времени. В любом случае диспетчер тестов позволяет выбрать целевой компьютер, настроенный с помощью Simulink Real-Time. Тесты HIL в реальном времени можно выполнять только на целевых компьютерах с помощью Simulink Real-Time.

Управление параметрами и настройками конфигурации

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

Освещение

С помощью Simulink Coverage можно собирать данные о покрытии, чтобы определить степень тестирования модели или кода. При настройке коллекции покрытия для тестового файла результаты теста включают покрытие для тестируемой системы и, дополнительно, ссылочные модели. Можно указать метрики покрытия для возврата. Покрытие не поддерживается для блоков SIL или PIL.

Если результаты показывают неполное покрытие, можно увеличить покрытие на:

  • Добавление тестовых примеров в тестовый файл вручную.

  • Создание тестовых примеров для увеличения охвата с помощью Simulink Design Verifier™. Можно создать тестовые примеры из результатов Диспетчера тестов.

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

Повторения

Итерация - это вариант тестового случая, в котором используется определенный набор данных. Например, предположим, что имеется несколько наборов входных данных. Можно настроить одну итерацию тестового случая для каждого внешнего входного файла, если в противном случае тесты совпадают. Можно также задать наборы параметров и переопределить значения в итерациях. Еще одним способом переопределения параметров является использование сдвигов параметров по сценарию, которые позволяют выполнять итерацию через множество значений.

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

Дополнительные сведения об итерациях см. в разделе Тестовые итерации.

См. также

Связанные темы