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

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

  • Параметры

  • Внешние входы

  • Конфигурации модели

  • Signal Editor сценарии

  • Test Sequence сценарии

  • Базовые данные

  • Режимы симуляции

Настройте итерации в Iterations разделе теста. Итерации можно создать с помощью таблицы в разделе «Итерации» Диспетчера тестов или с помощью скрипта.

Чтобы использовать сценарии Test Sequence в итерациях, сначала в разделе Inputs установите Test Sequence Block на блок, который содержит сценарии. Затем выберите сценарий из Override with Scenario, чтобы использовать этот сценарий в качестве сценария по умолчанию для каждой итерации. Если вы не выбираете сценарий, активный сценарий в блоке Test Sequence используется как значение по умолчанию. Используйте столбец Test Sequence Scenario в таблице, чтобы изменить сценарий итерации. Для получения дополнительной информации смотрите Использование сценариев тестовой последовательности в Редакторе тестовой последовательности и Диспетчере тестов.

Чтобы использовать различные режимы симуляции, такие как normal и программное обеспечение в цикле (SIL), для базового уровня или теста симуляции, сначала настройте контрольный пример. Затем в таблице Iterations щелкните Auto Generate. В диалоговом окне «Автоматическая генерация итераций» выберите Simulation Modes и одну или несколько других опций. Для каждой опции количество созданных итераций удваивается, по одному для режима модели и по одному для режима SIL.

Если тест собирает покрытие с помощью Simulink® Coverage™ те же параметры покрытия применяются ко всем итерациям в тест.

Если вы используете итерации таблицы или сценариев, вы можете увидеть итерации в тесте, нажав кнопку Show Iterations.

Создание итераций таблицы

Table Iterations обеспечивают быстрый способ добавить элементы, основанные на итерациях, в вашу модель или тест. Чтобы создать итерации с таблицей, сначала сделайте соответствующие столбцы видимыми:

  1. Разверните раздел Iterations > Table Iterations.

  2. В таблице добавьте или удалите столбцы, нажав кнопку и выбрав элементы в списке. Для примера, чтобы выбрать параметр и конфигурации модели отображения, выберите Parameter Set и Configuration Set элементы.

Добавление итераций вручную

  1. Чтобы вручную добавить итерации, нажмите Add. В таблице отображается новая строка итерации.

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

Сгенерируйте итерации таблицы

Можно также автоматически сгенерировать итерации из данных в тесте и модели:

  1. Нажмите кнопку Auto Generate.

  2. Выберите элементы, для которых необходимо сгенерировать итерации.

    Для сценариев тестовой последовательности генерируется итерация для каждого сценария для блока, выбранного в Test Sequence Block в разделе Inputs.

    Если вы выбираете несколько элементов, итерации создаются в последовательных парах. Для примера:

    • Модель sldemo_autotrans имеет блок Signal Editor с четырьмя сценариями сигнала, помеченными как Coasting, Gradual_Acceleration, Hard_braking и Passing_Maneuver, каждый из которых имеет сигналы Дросселя и Тормоза. Чтобы открыть эту модель, введите sldemo_autotrans в командной строке. Чтобы просмотреть Редактор сигналов, дважды кликните блок ManeuversGUI, чтобы открыть диалоговое окно Параметров блоков. Затем нажмите кнопку запуска Редактор в разделе Свойства.

    • У тест есть три набора параметров, маркированных P1, P2 и P3.

    • Автоматическая генерация итераций из сценариев Signal Editor и наборов параметров приводит к трем итерациям. Итерации ограничены тремя наборами параметров. Каждая итерация содержит один сценарий Signal Editor и один набор параметров. Сценарий Signal Editor и набор параметров совпадают в том порядке, в котором они перечислены в разделе Signal Editor блока и набора параметров.

    Signal Editor with four scenarios and plot of passing maneuver throttle.

    Parameter overrides and resulting iterations

  3. Задайте необязательное правило именования для итераций. В Iteration naming rule поле введите правило с помощью:

    • Имя каждого параметра, который вы хотите использовать в названии, с удаленными пространствами

    • Подчеркивание или пространство, чтобы разделить каждую настройку

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

Опция разделаЦель

Сценарий редактора сигналов

Применяется к Inputs разделу теста симуляции, базового уровня или эквивалентности для заданного Signal Editor Scenario. Каждый сценарий Редактор используется для генерации итерации.

Набор параметров

Применяется к Parameter Overrides разделу теста симуляции, базового уровня или эквивалентности. Каждый набор переопределения параметра используется для генерации итерации.

Внешний вход

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

Конфигурация модели

Применяется к Configuration Setting Overrides разделу теста симуляции, базового уровня или эквивалентности. Каждая итерация использует заданный параметр строения.

Записанный набор сигналов

Применяется к Logging разделу теста симуляции, базового уровня или эквивалентности. Каждый набор записанных сигналов используется для генерации итерации.

Основание

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

Сценарий тестовой последовательности

Применяется к Inputs разделу теста симуляции, базового уровня или эквивалентности для заданного Test Sequence Block. Каждый сценарий тестовой последовательности используется для генерации итерации.

Режимы симуляции

Применяется к разделу Iterations таблицы симуляции или базового теста. Итерация для текущего режима симуляции модели и итерация SIL создаются для друг друга, выбранных в диалоговом окне Автоматическая генерация итераций (Auto Generate Iterations).

Симуляция 1 или 2

Применяется только к типам тестов эквивалентности. В верхней части диалогового окна «Автоматическая генерация отчетов» находится меню для Simulation 1 или Simulation 2. Эти разделы соответствуют двум разделам симуляции в тесте эквивалентности.

Создание итераций скриптов

Запустить пользовательский набор итераций можно с помощью скрипта в разделе Scripted Iterations. Для примера можно задать наборы параметров или настроить порядок итерации с помощью пользовательской итерации. Итерации со скриптами генерируются во время выполнения, когда тест выполняется.

Скрипты итерации

Скрипт итерации должен содержать определенные компоненты. Самый базовый скрипт итерации содержит три элемента:

  1. Объект итерации, созданный с использованием sltestiteration.

  2. Настройка итерации, установка с помощью setTestParam.

  3. Регистрация итерации, добавленная с помощью addIteration.

Например, этот скрипт создает итерацию, которая запускает один сценарий сигнала из блока Signal Editor.

%% Iterate Using a Signal Editor Scenario
 
% Set up a new iteration object
testItr = sltestiteration;

% Set iteration setting using Signal Editor scenario
setTestParam(testItr,'SignalEditorScenario',...
   sltest_signalEditorScenarios{1});

% Add the iteration to run in this test case
% The predefined sltest_testCase variable is used here
addIteration(sltest_testCase,testItr);

Для получения дополнительной информации о классе итерации теста смотрите sltest.testmanager.TestIteration. Можно выполнить итерацию по нескольким элементам, таким как Signal Editor или сценарии тестовой последовательности. Можно итерировать по всем Signal Editor или Test Sequence сценариям в блоке, поместив основной скрипт итерации в цикл:

%% Iterate Over All Signal Editor Scenarios

% Determine the number of possible iterations
numSteps = length(sltest_signalEditorScenarios);
 
% Create each iteration
for k = 1 : numSteps
    % Set up a new iteration object
    testItr = sltestiteration;
 
    % Set iteration settings
    setTestParam(testItr,'SignalEditorScenario',...
      sltest_signalEditorScenarios{k});
 
    % Add the iteration to run in this test case
    % You can pass in an optional iteration name
    addIteration(sltest_testCase,testItr);
end

% Reset the path
rmpath(fullfile(matlabroot,'examples,...
     'simulink_automotive','main'));

Предопределенные переменные

Можно использовать предопределенные переменные для записи скриптов итераций. Чтобы увидеть список предопределенных переменных в Диспетчере тестов, разверните раздел Help on creating test iterations. Скрипт итераций вы запишете в поле скрипта в разделе Scripted Iterations. Окно скрипта является функциональной рабочей областью, что означает MATLAB® базовое рабочее пространство не может получить доступ к информации из окна скрипта. Если вы задаете переменные в поле скрипта, то другие рабочие области не могут использовать переменную.

Предопределенные переменные:

  • sltest_bdroot - Модель, моделируемая тестовым примером, заданная как строка

  • sltest_sut - Тестируемая система, заданная как строка

  • sltest_isharnesstrue если sltest_bdroot - модель тестовой обвязки, заданная как логическая

  • sltest_externalInputs - Имя внешних входов, заданное как массив ячеек из строк

  • sltest_parameterSets - Имя наборов переопределений параметров, заданное как массив ячеек из строк

  • sltest_configSets - Имя настройки строения, заданное как массив ячеек из строк

  • sltest_signalEditorScenarios - Имя сценариев редактора сигналов, заданное как 2-D массив ячеек из векторов символов.

  • sltest_signalBuilderGroups - Имя групп Signal Builder, заданное как 2-D массив ячеек векторов символов.

  • sltest_loggedSignalSets - Имя записанных наборов сигналов, заданное как 2-D массив ячеек из векторов символов.

  • sltest_testSequenceScenarios - - Имя сценариев тестовой последовательности, заданное как 2-D массив ячеек векторов символов.

  • sltest_tableIterations - Объекты итерации, созданные в таблице итераций, заданные как массив ячеек sltest.testmanager.TestIteration объекты

  • sltest_testCase - Текущий объект теста, заданный как sltest.testmanager.TestCase объект

Шаблоны итерации со скриптами

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

Например, если вы хотите запустить все сценарии редактора сигналов в скриптовой итерации:

  1. Нажмите Iteration Templates.

  2. Выберите настройки теста, через которые необходимо выполнить итерацию. Нажмите OK.

    Скрипт генерируется и добавляется в окно скрипта под любыми существующими скриптами.

  3. Чтобы сгенерировать таблицу, которая дает предварительный просмотр итераций, которые выполняются при запуске теста, нажмите Show Iterations.

Протащите набор параметров

Скриптовые итерации могут использоваться, чтобы протестировать модель, просматривая набор параметров. Можно использовать этот скрипт, чтобы попробовать другие значения для параметра рабочего пространства модели Iei и параметр модели UpperSaturationLimit в sltestCar модели. Добавьте скрипт в разделе Iterations > Scripted Iterations.

%% Iterate over Iei parameter

% Set up the parameter values to sweep over
IeiValues = [0.021,0.022,0.022,0.023];
UprSatValues = [2000,3000,4000,5000];
numSteps = length(IeiValues);

% Create each iteration
for k = 1 : numSteps
    % Set up a new iteration object
    testItr = sltestiteration;
    
    % Set value of lei (parameter in model workspace)
    setVariable(testItr,'Name','Iei','Source','model workspace',...
                'Value',IeiValues(k));

    % Set value of UpperSaturationLimit model parameter
    testItr.setModelParam('sltestCar/Engine/Integrator',...
                 'UpperSaturationLimit',UprSatValues(k));
 
    % Add the iteration to run in this test case
    addIteration(sltest_testCase,testItr); 
end

После добавления скрипта нажмите Show Iterations. Вы можете увидеть итерации, которые создал скрипт.

Details of iterations, including parameter names and values, and workspace and model parameter overrides.

Выполнение теста генерирует результат для каждой итерации.

Iteration results hierarchy

См. также

|

Похожие темы