exponenta event banner

Итерации испытаний

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

  • Параметры

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

  • Наборы конфигурации

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

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

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

  • Режимы моделирования

Настройте итерации в разделе Итерации тестового случая. Итерации можно создавать с помощью таблицы в разделе Итерации (Iterations) Диспетчера тестов (Test Manager) или с помощью сценария.

Чтобы использовать сценарии тестовой последовательности в итерациях, сначала в разделе Входы установите для параметра Блок тестовой последовательности значение Блок, содержащий сценарии. Затем выберите сценарий из Переопределить со сценарием, чтобы использовать этот сценарий в качестве сценария по умолчанию для каждой итерации. Если сценарий не выбран, по умолчанию используется активный сценарий в блоке тестовой последовательности. Используйте столбец Сценарий тестовой последовательности в таблице, чтобы изменить сценарий для итерации. Дополнительные сведения см. в разделе Использование сценариев тестовых последовательностей в редакторе тестовых последовательностей и диспетчере тестов.

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

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

Независимо от того, используются ли итерации таблицы или сценария, можно просмотреть итерации в тестовом случае, нажав кнопку Показать итерации (Show Iterations).

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

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

  1. Разверните раздел Итерации > Итерации таблицы.

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

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

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

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

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

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

  1. Нажмите кнопку «Автоматически генерировать».

  2. Выберите элементы для создания итераций.

    Для сценариев тестовой последовательности итерация создается для каждого сценария для блока, выбранного в разделе Блок тестовой последовательности в разделе Входы.

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

    • Модель sldemo_autotrans имеет блок редактора сигналов с четырьмя сценариями сигналов с метками Coasting, Gradual_Acceleration, Hard_braking и Passing_Maneuver, каждый из которых имеет сигналы Throttle и Brake. Чтобы открыть эту модель, введите sldemo_autotrans в командной строке. Для просмотра редактора сигналов дважды щелкните блок «Маневр GUI», чтобы открыть диалоговое окно «Параметры блока». Затем нажмите кнопку запуска редактора сигналов в разделе «Свойства сигнала».

    • Тестовый случай имеет три набора параметров: P1, P2 и P3.

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

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

    Parameter overrides and resulting iterations

  3. Укажите дополнительное правило именования для итераций. В поле Правило именования итераций введите правило, используя:

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

    • Подчеркивание или пробел для разделения каждого параметра

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

Вариант сеченияЦель

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

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

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

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

Внешний ввод

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

Набор конфигурации

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

Набор регистрируемых сигналов

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

Основание

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

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

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

Режимы моделирования

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

Моделирование 1 или 2

Применяется только к типам тестов эквивалентности. В верхней части диалогового окна Автогенерация отчетов (Auto Generate Reports) находится меню для моделирования 1 или моделирования 2. Эти разделы соответствуют двум моделирующим секциям в тестовом примере эквивалентности.

Создание итераций со сценариями

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

Компоненты сценария итерации

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

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

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

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

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

%% 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. Можно выполнить итерацию нескольких элементов, таких как редактор сигналов или сценарии тестовой последовательности. Можно выполнить итерацию по всем сценариям редактора сигналов или тестовой последовательности в блоке, поместив базовый сценарий итерации в цикл:

%% 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'));

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

Для записи сценариев итераций можно использовать предопределенные переменные. Чтобы просмотреть список предопределенных переменных в Диспетчере тестов (Test Manager), разверните раздел Справка по созданию итераций теста (Help on create test iterations). Сценарий итераций записывается в поле сценария в разделе Итерации по сценариям. Поле сценария является функциональным рабочим пространством, что означает, что базовое рабочее пространство MATLAB ® не может получить доступ к информации из поля сценария. При определении переменных в поле сценария другие рабочие области не могут использовать переменную .

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

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

  • sltest_sut - тестируемая система, определенная как строка;

  • sltest_isharnesstrue если sltest_bdroot - модель электрического жгута, определяемая как логическая

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

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

  • sltest_configSets - Имя настроек конфигурации, определяемое как массив ячеек строк

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

  • sltest_signalBuilderGroups - имя групп построителей сигналов, определяемое как массив 2-D ячеек символьных векторов.

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

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

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

  • sltest_testCase - Текущий объект тестового случая, определенный как sltest.testmanager.TestCase объект

Шаблоны итераций по сценарию

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

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

  1. Щелкните Шаблоны итераций (Iteration Templates).

  2. Выберите параметры тестового случая для итерации. Нажмите кнопку ОК.

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

  3. Чтобы создать таблицу, которая обеспечивает предварительный просмотр итераций, выполняемых при выполнении тестового случая, щелкните Показать итерации (Show Iterations).

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

Итерации по сценарию можно использовать для тестирования модели путем прочесывания набора параметров. Этот сценарий можно использовать для проверки различных значений параметра рабочей области модели Iei и параметр модели UpperSaturationLimit в модели sltestCar. Добавьте сценарий в раздел Итерации > Итерации по сценариям.

%% 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

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

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

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

Iteration results hierarchy

См. также

|

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