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

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

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

Модель, которую вы тестируете, должна быть на пути MATLAB или быть в текущей рабочей папке.

Этот пример использует Simulink Design Verifier и Simulink® Coverage™.

Рабочий процесс

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

Рабочий процесс в качестве примера:

  1. Измерьте покрытие модели начального теста.

  2. Сгенерируйте дополнительные тесты, чтобы достигнуть большего покрытия.

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

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

Пути и файлы в качестве примера

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

filePath = fullfile(matlabroot,'toolbox','simulinktest','simulinktestdemos');
rollModel = 'RollAutopilotRevised';
testHarness = 'RollReference_LoggedDataTest';
testFile = 'RollRefTest.mldatx';

Запустите начальный тест и рассмотрите покрытие

1. Гарантируйте, что рабочая папка перезаписываема.

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

sltest.testmanager.view;
sltest.testmanager.load(fullfile(filePath,testFile));

3. Запустите тест. В Тестовом Браузере подсветите тестовый набор Покрытия и Записанные данные. Нажмите Run.

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

  • Decision Coverage: 80%

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

  • MCDC 25%

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

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

1. Ниже результата покрытия нажмите Add Tests for Missing Coverage.

2. В диалоговом окне Add Tests for Missing Coverage, набор эти опции:

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

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

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

  • Тестовый файл:: RollRefTest. Это снова использует существующий тестовый файл.

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

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

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

2. Запустите Записанные данные и тестовый набор Покрытия снова.

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

  • Решение: 100%

  • Условие: 100%

  • MCDC: 100%

Очистка

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

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