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

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

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

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

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

Пути и файлы примеров

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

topModel = 'TestAndVerificationAutopilotExample';
rollModel = 'RollAutopilotMdlRef';
testHarness = 'RollReference_Requirement1_3';
testFile = 'AutopilotTestFile.mldatx';
reqDoc = 'RollAutopilotRequirements.txt';

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

Откройте RollAutopilotMdlRef модель. Полная система управления TestAndVerificationAutopilotExample ссылается на эту модель.

open_system(rollModel)

Откройте тестовый файл в Диспетчере тестов.

tf = sltest.testmanager.load(testFile);
sltest.testmanager.view;

Откройте документ требований. В браузере тестов разверните в дереве AutopilotTestFile и Basic Design Test Cases и нажмите Requirement 1.3 test. На вкладке «Требование 1.3» разверните раздел «Требования». Дважды щелкните по любой из ссылок требований, чтобы открыть Редактор требований, где можно просмотреть требования.

В требовании 1.3.1 к документу говорится: Когда режим удержания крена становится активным, ссылка на удержание крена устанавливается на фактический угол наклона самолета, за исключением условий, описанных в требованиях к детям.

  • В требовании 1.3.1.1 к детям указывается, что ссылка на удержание крена устанавливается равной нулю, если фактический угол наклона крена составляет менее 6 степени в любом направлении во время удержания крена.

  • В требовании 1.3.1.2 к детям указывается, что ссылка на удержание крена устанавливается на 30 степени в том же направлении, что и фактический угол крена, если фактический угол крена превышает 30 степени во время удержания крена.

  • В требовании 1.3.1.3 к ребенку указано: Если ручка поворота имеет значение 3 или более степеней в любом направлении, ссылка на крен устанавливается на команду ручки поворота кабины до 30 степеней.

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

Документ требований отслеживает тестовую обвязку с помощью URL-адресов, которые сопоставлены с блоком Test Sequence и шагами тестирования. Откройте тестовую обвязку и подсветите компонент, связанный со ссылочным требованием 1.3.

sltest.harness.open([rollModel '/Roll Reference'],testHarness)
rmi('highlightModel','RollReference_Requirement1_3')

Блок Test Sequence, блок Test Assessment и компонент в процессе тестирования ссылаются на документ требований. Подсветка требования ссылок путем выбора Приложений > Диспетчер требований и затем, нажав Подсветку Ссылок в модели тестовой обвязки. Можно также подсветить связи в редакторе тестовых последовательностей, щелкнув Переключить ссылки требований, подсвечивая на панели инструментов.

Тестовая последовательность

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

open_system('RollReference_Requirement1_3/Test Sequence')

Блок Test Sequence создает тестовые воздействия для трех сценариев:

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

Эти сценарии проверяют базовую функцию компонента, но не обязательно достигают таких целей, как 100% охват.

Оценки тестов

Откройте блок 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 степени.

Проверьте подсистему

Чтобы запустить тест, в Диспетчере тестов щелкните правой кнопкой мыши «» Требование 1.3 «» на панели «» Браузер тестов «» и выберите «» Выполнить нажатие кнопки

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

  1. Щелкните Результаты и Программные продукты в менеджере тестов.

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

  1. Щелкните Подграфиков (Subplots) на панели инструментов и выберите два графика, расположенных вертикально. Выберите нижний график на панели Визуализация (Visualize).

  2. В дереве результатов разверните разделы Результаты (Results), Требование (Requirement) 1.3 Тест (Test) и Вывод SIM (Выход

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

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

  1. Закройте тестовую обвязку.

  2. Добавьте блок Насыщения к модели как показано.

  3. Установите нижний предел равным -30 и верхний предел для 30.

  4. Соедините блок с его требованием. Из браузера Requirements перетащите требование 1.1.2 в блок Saturation. На блоке появляется значок, и требование подсвечивается.

Еще раз запустите тест. The 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 topModel reqDoc rollModel testHarness testFile harnessLink