Расширьте тесты для модели с временной логикой

Создайте стартовый тест

Этот пример использует sldvdemo_sbr_extend_design модель. Эта модель включает график Stateflow® SBR это использует временную логику. Переход от KEY_OFF утвердите к KEY_ON состояние происходит после того, как диаграмма Stateflow была симулирована 500 раз. Протестировать этот переход требует теста с 500 временными шагами.

В этом примере вы создаете тест, который обеспечивает переход к KEY_ON путем установки KEY введите к 1 на время теста. Вы симулируете модель с помощью этого теста, удовлетворяя целям для KEY_OFF/KEY_ON переход. Затем вы анализируете модель, игнорируя цели, которым уже удовлетворяет тест, который вы создаете.

  1. Откройте модель в качестве примера:

  2. Откройте SBR Диаграмма Stateflow, чтобы видеть KEY_OFF/KEY_ON переход.

  3. Создайте модель тестовой обвязки модели - ссылки:

    [~, harnessModelFilePath] = ...
        sldvmakeharness('sldvdemo_sbr_extend_design',[],[],true);

    Модель тестовой обвязки, sldvdemo_sbr_extend_design_harness, включает:

    • Блок Model под названием Тестовый Модуль, который ссылается на исходную модель, sldvdemo_sbr_extend_design.

    • Блок Signal Builder под названием Входные параметры, который содержит входные параметры testcase к модели, на которую ссылаются в блоке Model.

      Первоначально, блок Signal Builder содержит только тест по умолчанию со всеми тремя входными наборами к 0.

    • Блок DocBlock под названием Объяснение Теста это документирует тест.

      Первоначально, блок Test Case Explanation не имеет никакого содержимого для теста по умолчанию.

  4. sldvmakeharness возвращает путь к файлу модели тестовой обвязки в harnessModelFilePath. Извлеките имя файла модели тестовой обвязки в harnessModel, для дальнейшего использования:

    [~, harnessModel] = fileparts(harnessModelFilePath);

Для того, чтобы анализировать KEY_OFF к KEY_ON изменение состояния, создайте тест, который делает переход к KEY_ON состояние в 500 временных шагах:

  1. Откройте диалоговое окно Signal Builder для модели тестовой обвязки.

  2. Выберите Axes> Change Time Range.

  3. Область значений времени Signal Builder определяет промежуток времени, за которое явным образом задан его выход. В Наборе общее диалоговое окно области значений времени, набор поле Max time к 5 секунды, создавая 500 временных шагов длительности 0,01 секунд каждый.

  4. Установите KEY введите к 1 на время этого стартового теста, обеспечивая переход к KEY_ON состояние. Выбор Inputs.KEY сигнал требует двух нажатий кнопки. Во-первых, кликните по сигналу так, чтобы точки появились в обоих концах сигнала.

  5. Нажмите Inputs.KEY предупредите снова. Signal Builder утолщает сигнал указать, что это выбрано.

  6. В нижней части диалогового окна Signal Builder, под Left Point, вводят 1 для Y.

  7. Нажмите Enter, чтобы применить изменение.

    Inputs.KEY сигнал установлен в 1 на время теста.

  8. Закройте диалоговое окно Signal Builder.

Регистрируйте стартовый тест

Следующий шаг должен регистрировать стартовый тест, который вы создали. Можно затем указать, что Simulink® Design Verifier™ игнорирует цели, которым удовлетворяет тот тест при выполнении анализа.

sldvlogsignals функционируйте записывает данные о тесте в MAT-файле, который содержит sldvData структура. Эта структура хранит все данные, которые программное обеспечение собирает и производит во время анализа.

Регистрировать стартовые тесты:

  1. Сохраните имя блока Model в модели тестовой обвязки, это ссылается на sldvdemo_sbr_extend_design модель:

    [~, modelBlock] = find_mdlrefs(harnessModel, false);
  2. Симулируйте модель, на которую ссылается блок Model с помощью нового теста, и регистрируйте входные сигналы в переменной loggeddata рабочей области:

    loggeddata = sldvlogsignals(modelBlock{1});
  3. Сохраните записанные данные в MAT-файле под названием existingtestcase.mat:

    save('existingtestcase.mat', 'loggeddata');

    Вы зададите этот файл, когда вы будете анализировать sldvdemo_sbr_extend_design модель.

Расширьте существующие тесты

Можно теперь анализировать sldvdemo_sbr_extend_design модель и указывает, что анализ расширяет тесты, которым уже удовлетворяют. Анализ использует данные о существующем тесте в качестве начальной точки и не пытается сгенерировать тесты для KEY_OFF к KEY_ON переход в диаграмме Stateflow SBR.

Задайте стартовый тест и анализируйте модель:

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

    open_system('sldvdemo_sbr_extend_design');

  2. На вкладке Design Verifier нажмите Test Generation Settings.

  3. В диалоговом окне Configuration Parameters, на панели Test Generation, под Existing test cases, выбирают Extend existing test cases.

  4. В поле Data file введите имя MAT-файла, который содержит записанные данные:

    existingtestcase.mat
  5. Очистите Ignore objectives satisfied by existing test cases.

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

  6. Чтобы закрыть диалоговое окно Configuration Parameters, нажмите OK.

  7. Сохраните sldvdemo_sbr_extend_design модель на пути MATLAB® с именем sldvdemo_sbr_extend_design_test.

  8. Нажмите Generate Tests.

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

    Логарифмическое окно затем перечисляет цели, сгенерированные вне стартового теста.

Проверьте результаты анализа

Чтобы убедиться, что этот анализ создает полный тестовый набор, сгенерируйте модель тестовой обвязки, таким образом, можно симулировать модель со сгенерированными тестами:

  1. На вкладке Design Verifier, в разделе Review Results, нажимают Create Test Harness Model.

  2. В модели тестовой обвязки sldvdemo_sbr_extend_design_test_harness, откройте блок Signal Builder под названием Входные параметры.

  3. Чтобы симулировать модель с помощью всех тестов, нажмите кнопку Run all and produce coverage.

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

  4. Просмотрите информацию о покрытии для sldvdemo_sbr_extend_design_test модель, чтобы видеть, что полный тестовый набор достигает 100%-го покрытия.

Похожие темы