Основанное на требованиях тестирование на разработку моделей

Протестируйте подсистему автопилота против требований.

Этот пример демонстрирует тестирование подсистемы против требования, с помощью менеджера по тесту, тестовой обвязки, блока Test Sequence и блока Test Assessment. Ссылки на документ требований на тест и тестовую обвязку и verify операторы оценивают компонент под тестом.

Когда вы создаете свою модель, можно добавить тесты, чтобы проверить модель по требованиям. Следующие пользователи могут запустить те же тесты, затем добавить тесты, чтобы выполнить дальнейшие цели верификации, такие как достижение 100%-го покрытия или проверка сгенерированного кода.

Этот пример тестирует Roll Reference подсистема против требования с помощью трех сценариев. Блок Test Sequence обеспечивает входные параметры, и блок Test Assessment оценивает компонент. Roll Reference подсистема является одним компонентом системы управления автопилота. Roll Reference управляет опорным углом системы управления списка самолета. Подсистема приводит одну оценку к сбою, запрашивая конструктивное изменение, которое ограничивает подсистему выход под высокими входными углами.

Пути и файлы в качестве примера

Введите следующее, чтобы сохранить пути и имена файлов для примера:

filePath = fullfile(matlabroot,'toolbox','simulinktest','simulinktestdemos');
topModel = 'TestAndVerificationAutopilotExample';
rollModel = 'RollAutopilotMdlRef';
testHarness = 'RollReference_Requirement1_3';
testFile = 'AutopilotTestFile.mldatx';

Откройте тестовый файл и модель

Откройте тестовый файл в менеджере по Тесту. Можно также открыть менеджера по Тесту путем выбора Analysis> Test Manager в меню Simulink.

tf = sltest.testmanager.load(fullfile(filePath,testFile));
sltest.testmanager.view;

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

open_system(fullfile(filePath,rollModel));

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

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

В тесте расширьте раздел Requirements, чтобы просмотреть ссылки на набор требования.

Тестовые воздействия

Тест создает три сценария, чтобы протестировать нормальные условия, и исключения в Списке Содержат Ссылочные требования. Тестовые векторы созданы в блоке Test Sequence.

Откройте блок Test Sequence.

sltest.harness.load([rollModel '/Roll Reference'],testHarness)
open_system('RollReference_Requirement1_3/Test Sequence')

Для каждого сценария тестовая последовательность устанавливает уровень сигнала, затем затрагивает автопилот. Тестовая последовательность проверяет тот PhiRef устойчиво в течение минимального времени DurationLimit прежде чем это перейдет к следующему уровню сигнала. Для первых двух сценариев тестовая последовательность устанавливает EndTest локальная переменная к 1, инициирование перехода к следующему сценарию.

Протестируйте оценки

Откройте блок Test Assessment.

open_system('RollReference_Requirement1_3/Test Assessment')

Блок Test Assessment оценивает Roll Reference. Блок оценки является соединенной подсистемой библиотеки, которая упрощает тестовое повторное использование оценки между несколькими тестовыми обвязками. Блок содержит verify соответствие операторов:

  • Требование, что PhiRef = Phi когда Phi действует в низких и высоких пределах.

  • Требование, что PhiRef = 0 когда Phi < 6 степени.

  • Требование, что PhiRef = 30 когда Phi > 30 степени.

  • Требование это, когда TurnKnob занят, PhiRef = TurnKnob если TurnKnob >= 3 степени.

Запустите тест

В менеджере по Тесту панель инструментов нажмите Run.

Симуляция возвращает verify результаты оператора и симуляция выводятся в менеджере по Тесту. verify_high_pos сбои оператора.

  1. Нажмите Results и Artifacts в менеджере по тесту.

  2. В дереве результатов расширьтесь, Проверяют Операторы. Нажмите Simulink: verify_high_pos. Трассировка показывает, когда оператор перестал работать.

  1. Во вкладке Data Inspector нажмите Subplots и выберите два графика, расположенные вертикально. Выберите более низкий график в Визуализировать панели.

  2. В дереве результатов расширьте Результаты, Тест Требования 1.3 и Сима Аутпута.

  3. Выберите PhiRef и Phi. Выходные трассировки выравниваются с verify результаты в вышеупомянутом графике. Наблюдайте тот PhiRef превышает 30 градусов когда Phi превышает 30 градусов.

Обновите RollReference ограничить PhiRef сигнал:

  1. Добавьте блок Saturation как показано.

  2. Установите нижний предел на -30 и верхний предел 30.

  3. Соедините блок с его требованием. От браузера Требований перетащите требование 1.1.2 с блоком Saturation. Значок появляется на блоке, и требование подсвечено.

Запустите тест снова. verify передачи оператора и выход в менеджере по тесту показывают тот PhiRef не превышает 30 градусов.

close_system(rollModel,0);
close_system(topModel,0);
close_system('RollRefAssessLib',0);
sltest.testmanager.clear;
sltest.testmanager.clearResults;
sltest.testmanager.close;
clear filePath topModel reqDoc rollModel testHarness testFile