Увеличьте тестовое покрытие путем генерации тестовых воздействий.
Если ваши тесты достигают неполного покрытия модели, можно увеличить покрытие путем генерации тестовых воздействий с помощью Simulink® Design Verifier™. Этот пример показывает, как увеличить тестовое покрытие вне начального теста. Вы измеряете начальное покрытие теста. Затем вы генерируете новые тесты, добавьте их в тестовый набор, запустите тесты и покрытие агрегата анализа.
Этот пример использует Simulink Design Verifier и Simulink® Coverage™.
Этот пример тестирует компонент системы автопилота с помощью тестовой обвязки. Данные о timeseries из базового рабочего пространства сопоставлены с корневым импортом в тестовой обвязке. Тестовый файл сконфигурирован, чтобы собрать покрытие.
Рабочий процесс в качестве примера:
Измерьте покрытие модели начального теста.
Сгенерируйте дополнительные тесты, чтобы достигнуть большего покрытия.
Добавьте новые тесты в тестовый файл.
Запустите все тесты и покрытие агрегата анализа.
Установите пути и имена файлов для примера.
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);