Тестовая последовательность состоит из тестовых шагов, расположенных в иерархии. Можно использовать тестовую последовательность, чтобы задать тестовые воздействия и определить, как тест будет прогрессировать в ответ на симуляцию. Тестовый шаг содержит действия, которые выполняются в начале шага. Шаг тестирования может содержать переходы, которые определяют, когда шаг перестает выполняться, и какой шаг тестирования выполняется следующим. Действия и переходы используют MATLAB® как язык действий. Тестовые последовательности создаются с помощью блока Test Sequence и редактора тестовых последовательностей. Смотрите Использование Диаграммы Stateflow для Тестовой обвязки входных параметров и планирования.
Тестовые последовательности, определенные в блоках Test Sequence, могут иметь родительские шаги и подэтапы. Subdeps может активироваться, только если родительский шаг активен. Группа шагов на том же уровне иерархии имеет общий тип перехода. При создании тестового шага шаг становится опцией перехода для других шагов в той же группе.
В блоке Test Sequence можно задать несколько тестовых последовательностей, которые называются test sequence scenarios. При помощи сценариев можно задать отдельные тестовые последовательности, не имея в своей тестовой обвязке нескольких блоков Test Sequence. Можно запустить сценарии тестовой последовательности следующими способами:
Активируйте один сценарий из редактора тестовых последовательностей и запустите модель
Активируйте один сценарий с помощью команд API и запустите модель
Управляйте активным сценарием с переменной рабочей области и запускайте модель
Используйте пользовательский тестовый скрипт, чтобы зацикливать сценарии при запуске модели
Задайте итерации в Test Manager, чтобы запустить несколько сценариев в одном тесте
Для получения дополнительной информации и примеров использования сценариев тестовой последовательности смотрите Использование сценариев тестовой последовательности в редакторе тестовой последовательности и Диспетчере тестовых операций и Программно создайте и запустите сценарии тестовой последовательности.
Тестовые последовательности, определенные в блоках Test Sequence, переходят от одного шага к другому двумя способами:
Стандартный переход: Можно задать последовательность действий, которые реагируют на условия симуляции с помощью стандартной последовательности переходов. Стандартные переходные последовательности начинаются с первого шага и прогрессируют в соответствии с условиями перехода и следующими шагами. Список переходов см. в разделах Тестовая последовательность и Синтаксис оценки.
Эта тестовая последовательность устанавливает значение логических выходов RedButtonIn
и GreenButtonIn
, с переходами, происходящими после того, как каждый шаг был активен в течение 1 секунды.
При разложении:
When Последовательности разложения аналогичны операторам switch при программировании. Ваша последовательность может действовать на основе определенных условий, происходящих в вашей модели. В
When
последовательность разложения, шаги активируются на основе условия, которое вы задаете после имени шага. Переходы между шагами не используются.
Это Когда разложение содержит три verify
операторы. Каждый verify
оператор активен, когда сигнал gear
равно другому значению. Для получения дополнительной информации см. «Оценка модели при помощи разложения».
В этом примере вы используете блок Test Sequence, чтобы создать простую тестовую последовательность для логического контроллера сдвига передачи.
Откройте модель. В командной строке введите
openExample... ('simulinktest/main/TransmissionDownshiftTestSequenceExample')
Щелкните правой кнопкой мыши по shift_controller
и выберите Test Harness > Create for ‘shift_controller’.
В диалоговом окне «Создание тестовой обвязки» под Sources and Sinks:
Выберите Test Sequence
в раскрывающемся меню source.
Выберите Add separate assessment block.
Выберите Open harness after creation.
Нажмите OK. Тестовая обвязка для shift_controller
откроется подсистема.
Дважды кликните Test Sequence блок. Откроется Редактор тестовой последовательности.
Создайте тестовую последовательность.
Переименуйте первый шаг Accelerate
и добавьте действия шага:
speed = 10*ramp(et); throttle = 100;
Щелкните правой кнопкой мыши по Accelerate
шаг и выберите Add step after. Переименуйте этот шаг Stop
, и добавить действия шага:
throttle = 0; speed = 0;
Введите условие перехода для Accelerate
шаг. В этом примере Accelerate
переходы к Stop
когда система находится на четвертой передаче в течение 2 секунд. В столбце Transition введите:
duration(gear == 4) >= Limit
В Next Step столбце выберите Stop
.
Добавьте константу, чтобы задать Limit
. На панели Symbols наведите указатель мыши на Constant и нажмите кнопку добавления данных. Введите Limit
для постоянного имени.
Наведите на Limit
и нажмите кнопку редактирования. В Constant value поле введите 2
. Нажмите OK.
Продолжая пример, в тестовую обвязку дважды кликните блок Test Assessment, чтобы открыть редактор. В редакторе отображается последовательность разложения When.
Переименуйте первый шаг Assessments
.
Добавьте два шага к Assessments
. Щелкните правой кнопкой мыши по Assessments
шаг и выберите Add sub-step. Сделай это второй раз. Под Assessments
должно быть четыре шага.
Введите имена и действия для четырех подэтапов.
Check1st when gear == 1 verify(speed < 45)
Check2nd when gear == 2 verify(speed < 75)
Check3rd when gear == 3 verify(speed < 105)
Else
Четвертый шаг Else
не имеет никаких действий. Else
обрабатывает условия симуляции за пределами предыдущего when
условия.
Добавьте возможности к обвязке и соедините speed
, throttle
, и gear
сигналы в возможности.
Установите время симуляции модели в 15 секунд и симулируйте тестовую обвязку. Просмотрите данные сигнала, открывая возможности.
Просмотр результатов verify
выписки из Данных моделирования Inspector.