Если вы симулируете ссылку на модель, которая не достигает полного покрытия, можно использовать Simulink® Проектируйте 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 диалогового окна Параметры конфигурации установите следующие опции:
Выберите Enable coverage analysis.
Выберите Referenced Models.
Нажмите Select Models. В диалоговом окне «Выбор моделей для анализа покрытия» установите флажок для модели-ссылки 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%
Эта симуляция сохраняет данные покрытия в переменном Рабочем пространстве MATLAB covdata_original
, а 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 недоступно для моделей тестовой обвязки, когда тестовый модуль копируется из модели верхней части. Для получения дополнительной информации см., Ссылочная входная модель в сгенерированной обвязке.
Достижение полного охвата 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
и модель тестовой обвязки sldemo_mdlref_counter_harness
иметь одинаковые настройки параметра. Для получения дополнительной информации смотрите, Параметры конфигурации модели: Импорт/Экспорт данных.
Симулируйте 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. Диалоговое окно Параметры конфигурации для ссылочной модели sldemo_mdlref_counter
откроется. Можно задать опции проверки проекта для недостающего покрытия анализа. Дополнительные сведения см. в разделе « Опциях» Диалогового окна параметров конфигурации.
Откройте ссылочную модель.
open_system('sldemo_mdlref_counter');
На вкладке Design Verifier, в разделе Review Results, нажмите Load Earlier Results. Перейдите к ранее сгенерированному файлу данных и нажмите Open.
Чтобы просмотреть активные результаты для недостающего покрытия тестовых случаев, нажмите Results Summary. Откроется окно Сводных данных результатов с недостающим покрытием результатами анализа. Дополнительные сведения об активных результатах см. в разделе Просмотр результатов анализа. Недостающие покрытия хранятся в MAT-файле, который содержит структуру с именем sldvData
. Для получения дополнительной информации см. раздел «Содержимое структуры данных sldvData».
Недостающее покрытие является рабочим процессом на основе пользовательского интерфейса. Функции командной строки недоступны для анализа недостающего покрытия.
Ограничение значений для параметров не поддерживается в рабочем процессе анализа Недостающего покрытия. Для получения дополнительной информации смотрите, Задать значения ограничений для параметров.