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

Увеличьте охват теста путем генерации тестовых воздействий.

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

Этот пример использует 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. Запустите тест. В Test Browser выделите Записанные данные тестового набора и покрытия. Нажмите Запуск.

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

  • Decision Coverage: 80%

  • Покрытие условия: 70%

  • MCDC 25%

Сгенерируйте тесты, чтобы увеличить покрытие модели

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

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

2. В диалоговом окне «Добавление тестов для недостающего покрытия» установите следующие опции:

  • Обвязка: RollReference_LoggedDataTest. Это сопоставляет новые тестовые воздействия с существующей тестовой обвязкой.

  • Тест: Create a new test case. Это создает новый тест с сгенерированными тестовыми воздействиями.

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

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

3. Нажмите OK. Диалоговое окно показывает прогресс генерации теста. Когда генерация тестового примера завершена, в Диспетчере тестов появляется новый контрольный пример.

Запуск нового теста

1. Вырежьте и вставьте новый тест в тестовый набор Записанные данные and Coverage.

2. Еще раз запустите тестовый набор Записанные данные and Coverage.

3. Когда симуляция завершится, в разделе Результаты и программные продукты выберите набор результатов и разверните Агрегированные результаты покрытия. Тестовый набор достигает полного покрытия:

  • Решение: 100%

  • Условие: 100%

  • MCDC: 100%

Очистка

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

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