Если вы симулируете модель, на которую ссылаются, которая не достигает полного охвата, можно использовать Simulink® Design Verifier™, чтобы сгенерировать тесты, которые достигают полного охвата. Существует два подхода:
Программно достигните недостающего покрытия: Сгенерируйте тесты для модели, на которую ссылаются, с API для анализа генерации тестов.
Инкрементно покрытие увеличения: Сгенерируйте тесты для модели тестовой обвязки с аналитическими функциями недостающего покрытия.
Эта модель в качестве примера использует модель, на которую ссылаются, которая не достигает полного охвата. Когда вы запускаете анализ генерации тестов модели, на которую ссылаются, и комбинируете ее с ранее записанными данными о покрытии, можно достигнуть 100%-го покрытия для модели, на которую ссылаются.
Симулируйте модель в качестве примера. Условие записи, решение и покрытие MCDC.
Откройте модель в качестве примера:
sldemo_mdlref_basic
Model блокирует CounterA, CounterB, и CounterC ссылаются на модель sldemo_mdlref_counter
.
На вкладке Apps кликните по стреле справа от раздела Apps.
Под Model Verification, Validation, and Test нажмите Coverage Analyzer.
На вкладке Coverage нажмите Settings.
На панели Coverage диалогового окна Configuration Parameters, набор следующие опции:
Выберите Enable coverage analysis.
Выберите Referenced Models.
Нажмите Select Models. В диалоговом окне Select Models for Coverage Analysis установите флажок для модели sldemo_mdlref_counter
, на которую ссылаются,. Нажмите OK.
Флажок для sldemo_mdlref_counter
становится видимым, соответствуя CounterA и CounterB. Покрытие не включено для CounterC, потому что образец модели CounterC находится в Accelerator
режим симуляции.
Задайте который типы покрытия записать в процессе моделирования. Под Coverage metrics выберите MCDC.
В Coverage> панель Results Параметров конфигурации. Установите следующие опции:
Выберите Save last run in workspace variable, чтобы сохранить собранные данные о покрытии от новой симуляции, запущенной в переменной в рабочей области MATLAB®.
Выберите Generate report automatically after analysis, чтобы указать, что симуляция создает отчет покрытия.
В поле cvdata object name введите covdata_original
задавать уникальное имя для переменной рабочей области данных о покрытии.
Нажмите OK.
Чтобы записать данные о покрытии, запустите симуляцию sldemo_mdlref_basic
модель.
После симуляции открывается отчет покрытия. Отчет указывает, что следующее покрытие достигается для модели sldemo_mdlref_counter
, на которую ссылаются,:
Решение: 25%
Условие: 50%
MCDC: 0%
Симуляция сохраняет данные о покрытии в переменной covdata_original
рабочего пространства MATLAB,
cvdata
объект, который содержит данные о покрытии.
Сохраните данные о покрытии в файле на пути MATLAB:
cvsave('existingcov',covdata_original);
Сохраните модель открытой, в то время как вы продолжаете через этот пример.
Достигнуть 100%-го покрытия для sldemo_mdlref_counter
модель, запустите анализ генерации тестов, который использует существующие данные о покрытии.
Откройте модель, на которую ссылаются. В командной строке, введите:
open_system('sldemo_mdlref_counter');
Создайте sldvoptions
объект:
opts = sldvoptions;
Когда вы создаете sldvoptions
возразите, задайте:
То, что анализ игнорирует данные о покрытии, которым удовлетворяют.
Имя файла, содержащее данные о покрытии, которым удовлетворяют (existingcov.cvt
)
Введите следующие команды, чтобы задать эти опции:
opts.IgnoreCovSatisfied = 'on'; opts.CoverageDataFile = 'existingcov.cvt';
Анализируйте модель, на которую ссылаются, sldemo_mdlref_counter
, при помощи заданных опций:
[status, fileNames] = sldvrun('sldemo_mdlref_counter',opts,true);
Анализ Simulink Design Verifier™ удовлетворяет семи целям и создает один тест для модели, на которую ссылаются.
Следующая процедура симулирует модель, на которую ссылаются, sldemo_mdlref_counter
, с тестом, что анализ создается.
Достигнуть недостающего покрытия для модели, на которую ссылаются, sldemo_mdlref_counter
, симулируйте модель при помощи теста от анализа Simulink Design Verifier.
Откройте модель, на которую ссылаются. В командной строке, введите:
open_system('sldemo_mdlref_counter');
Создайте cvtest
объект для симуляции и задает решение записи, условие и покрытие MCDC.
cvt = cvtest('sldemo_mdlref_counter'); cvt.settings.decision = 1; cvt.settings.condition = 1; cvt.settings.mcdc = 1;
Задайте покрытие записи и определите имя cvtest
объект.
runOpts = sldvruntestopts; runOpts.coverageEnabled = true; runOpts.coverageSetting = cvt;
Симулируйте модель с cvtest
объект, cvt
, и тест, как задано в fileNames.DataFile
. Сохраните записанные данные о покрытии в переменной covdata_missing
рабочей области.
[~, covdata_missing] = sldvruntest('sldemo_mdlref_counter', fileNames.DataFile, runOpts);
Вы сохранили данные о покрытии от симуляции модели верхнего уровня, sldemo_mdlref_basic
, в переменной covdata_original
рабочей области. Создать отчет, который комбинирует данные о покрытии из модели верхнего уровня с данными о недостающем покрытии из модели, на которую ссылаются,
sldemo_mdlref_counter
, введите следующую команду:
cvhtml('Coverage Summary', covdata_original, covdata_missing);
Отчет показывает, что путем анализа модели, на которую ссылаются, и использования тех результатов записать покрытие, можно достигнуть 100%-го решения, условия и покрытия MCDC.
Сгенерируйте тестовую обвязку данные о покрытии записи и модели
Просмотрите активные результаты для анализа недостающего покрытия
Можно инкрементно достигнуть полного охвата для сгенерированной модели тестовой обвязки. В этом примере показано, как сначала сгенерировать модель тестовой обвязки, которая не достигает полного охвата. Затем это показывает, как запустить анализ недостающего покрытия модели тестовой обвязки, чтобы сгенерировать тесты для 100%-го покрытия.
Этот подход поддерживает только модели тестовой обвязки, сгенерированные Simulink Design Verifier, которые ссылаются на входную модель. Приложение Design Verifier не доступно для моделей тестовой обвязки, когда тестовый модуль копируется от топ-модели. Для получения дополнительной информации смотрите, модель входа Reference в сгенерированной обвязке.
Достигнуть полного охвата для sldemo_mdlref_counter
модель, запуститесь, анализ недостающего покрытия Simulink Design Verifier сгенерировал модель тестовой обвязки.
Откройте модель в качестве примера:
open_system('sldemo_mdlref_counter');
Создайте модель тестовой обвязки для модели sldemo_mdlref_counter
, на которую ссылаются,:
[savedHarnessFilePath] = sldvmakeharness('sldemo_mdlref_counter');
Для получения дополнительной информации о модели тестовой обвязки, смотрите Модели тестовой обвязки Simulink Design Verifier.
В модели тестовой обвязки sldemo_mdlref_counter_harness
, параметром Format должен быть Dataset
сделать модель sldemo_mdlref_counter
, на которую ссылаются, и обвязка model
sldemo_mdlref_counter_harness
имейте те же установки параметров. Для получения дополнительной информации смотрите, Параметры конфигурации Модели: Импорт/Экспорт Данных (Simulink).
Симулируйте sldemo_mdlref_counter_harness
модель, чтобы записать покрытие, достигнутое тестами в модели тестовой обвязки. После симуляции появляется отчет покрытия. Отчет указывает, что следующее покрытие достигается для sldemo_mdlref_counter
:
Откройте модель тестовой обвязки:
open_system('sldemo_mdlref_counter_harness');
Чтобы сгенерировать тесты для недостающего покрытия, на вкладке Design Verifier, нажимают Add Missing Coverage. Уведомление указывает на количество новых тестов, которые добавляются.
Диалоговое окно Signal Builder показывает Missing coverage test case 1, добавленный к предыдущему Test Case 1.
В диалоговом окне Signal Builder нажмите Run all . Программное обеспечение симулирует модель тестовой обвязки при помощи всех тестов, собирает информацию покрытия модели и отображает отчет покрытия. Отчет покрытия указывает, что анализ недостающего покрытия записывает 100%-е покрытие для sldemo_mdlref_counter
.
Откройте модель тестовой обвязки.
open_system('sldemo_mdlref_counter_harness');
На вкладке Design Verifier нажмите Test Generation Settings. Диалоговое окно Configuration Parameters для модели sldemo_mdlref_counter
, на которую ссылаются, открывается. Можно установить опции верификатора проекта для анализа недостающего покрытия. Для получения дополнительной информации смотрите, Опции в Диалоговом окне Параметров конфигурации.
Откройте модель, на которую ссылаются.
open_system('sldemo_mdlref_counter');
На вкладке Design Verifier, в разделе Review Results, нажимают Load Earlier Results. Просмотрите к ранее сгенерированному файлу данных и нажмите Open.
Чтобы просмотреть активные результаты для тестов недостающего покрытия, нажмите Results Summary. Окно Results Summary открывается результатами анализа недостающего покрытия. Для получения дополнительной информации об активных результатах смотрите Результаты анализа Анализа. Данные о тестах недостающего покрытия хранятся в MAT-файле, который содержит структуру под названием sldvData
. Для получения дополнительной информации смотрите, Содержимое sldvData Структуры.
Анализ Недостающего покрытия является основанным на пользовательском интерфейсе рабочим процессом. Функции командной строки не доступны для анализа Недостающего покрытия.
Ограничение значений для параметров не поддержано в аналитическом рабочем процессе Недостающего покрытия. Для получения дополнительной информации смотрите, Задайте Ограничительные Значения для Параметров.