exponenta event banner

Увеличение покрытия теста для модели

Увеличить охват теста путем формирования входных данных теста.

Если в тестах достигается неполный охват модели, можно увеличить охват, генерируя входные данные тестирования с помощью Simulink ® Design Verifier™. В этом примере показано, как увеличить охват теста после начального тестового случая. Измеряется начальное покрытие тестового случая. Затем создаются новые тестовые примеры, добавляются в набор тестов, выполняются тесты и выполняется обзор совокупного покрытия.

В этом примере используются программы Simulink Design Verifier и Simulink ® Coverage™.

Технологический процесс

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

Пример рабочего процесса:

  1. Измерение охвата модели начального тестового случая.

  2. Создание дополнительных тестов для обеспечения более широкого охвата.

  3. Добавьте новые тестовые примеры в тестовый файл.

  4. Запустите все тестовые примеры и просмотрите совокупное покрытие.

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

Задайте пути и имена файлов для примера.

rollModel = 'RollAutopilotRevised';
testHarness = 'RollReference_LoggedDataTest';
testFile = 'RollRefTest.mldatx';

Запуск начального покрытия тестирования и проверки

1. Убедитесь, что рабочая папка доступна для записи.

2. Откройте тестовый файл.

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

3. Запустите тест. В обозревателе тестов выделите набор тестов протоколированных данных и покрытия. Щелкните Выполнить (Run).

4. После завершения теста в результатах теста разверните раздел Coverage Results. Тест достигает частичного покрытия для Roll Reference подсистема.

  • Охват принятием решений: 80%

  • Охват условиями: 70%

  • MCDC 25%

Создание тестов для увеличения охвата модели

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

1. Под результатом покрытия щелкните Добавить тесты для отсутствующего покрытия.

2. В диалоговом окне Add Tests for Missing Coverage установите следующие параметры:

  • Электрический жгут: RollReference_LoggedDataTest. При этом новые входные данные теста сопоставляются с существующим тестовым жгутом.

  • Тестовый случай: Create a new test case. При этом создается новый тестовый пример с сгенерированными тестовыми входами.

  • Тип теста:: Baseline Test. Это дает возможность сбора базовых данных, выводимых из модели для созданных тестов.

  • Тестовый файл:: RollRefTest. При этом повторно используется существующий тестовый файл.

3. Нажмите кнопку OK. В диалоговом окне отображается ход создания тестового примера. По завершении создания тестового случая в диспетчере тестов появляется новый тестовый случай.

Запустить новый тестовый пример

1. Вырезать и вставить новый тестовый случай в набор тестов «Зарегистрированные данные и покрытие».

2. Снова запустите набор тестов протоколированных данных и покрытия.

3. По завершении моделирования в разделе Результаты и артефакты выберите набор результатов и разверните окно Агрегированные результаты покрытия. Набор тестов обеспечивает полный охват:

  • Решение: 100%

  • Условие: 100%

  • MCDC: 100%

Очистка

Очистите переменные и результаты тестирования и закройте модель.

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