При моделировании ссылочной модели, не достигающей полного покрытия, можно использовать Simulink ® Design Verifier™ для создания тестовых примеров, достигающих полного покрытия. Существует два подхода:
Программно достичь отсутствующего покрытия: создание тестовых примеров для ссылочной модели с API для анализа генерации тестов.
Постепенное увеличение покрытия: создание тестовых примеров для модели тестового кабеля с отсутствующими функциями анализа покрытия.
В этом примере используется ссылочная модель, которая не обеспечивает полного покрытия. При выполнении анализа генерации теста для ссылочной модели и объединении его с ранее записанными данными покрытия можно достичь 100% покрытия для ссылочной модели.
Смоделировать примерную модель. Запись состояния, решения и покрытия MCDC.
Откройте пример модели:
sldemo_mdlref_basic
Блоки модели CounterA, CounterB и CounterC ссылаются на модель sldemo_mdlref_counter.
На вкладке Приложения щелкните стрелку справа от раздела Приложения.
В разделе Проверка модели (Model Verification), Проверка (Validation) и Тест (Test) щелкните Анализатор покрытия (Coverage Analy
На вкладке Покрытие щелкните Настройки.
На панели «Покрытие» диалогового окна «Параметры конфигурации» задайте следующие параметры:
Выберите Включить анализ покрытия.
Выберите Ссылочные модели (Referenced Models).
Щелкните Выбрать модели (Select Models). В диалоговом окне «Выбор моделей для анализа покрытия» установите флажок для ссылочной модели. sldemo_mdlref_counter. Нажмите кнопку ОК.
Флажок для sldemo_mdlref_counter становится видимым, что соответствует CounterA и CounterB. Покрытие не включено для CounterC, поскольку ссылочная модель CounterC находится в Accelerator режим моделирования.
Укажите типы покрытия для записи во время моделирования. В разделе Показатели покрытия выберите MCDC.
На панели Coverage (Покрытие) > Results (Результаты) окна Configuration Parameters (Параметры конфигурации). Задайте следующие параметры:
Выберите Сохранить последний прогон в переменной рабочей области, чтобы сохранить собранные данные покрытия из последнего прогона моделирования в переменной в рабочей области MATLAB ®.
Выберите Создать отчет автоматически после анализа, чтобы указать, что моделирование создает отчет о покрытии.
В поле имени объекта cvdata введите covdata_original для указания уникального имени переменной рабочей области данных покрытия.
Нажмите кнопку ОК.
Для записи данных покрытия запустите моделирование sldemo_mdlref_basic модель.
После моделирования открывается отчет о покрытии. В отчете указывается, что для ссылочной модели достигается следующий охват: sldemo_mdlref_counter:
Решение: 25%
Условие: 50%
MCDC: 0%
При моделировании данные покрытия сохраняются в переменной рабочего пространства MATLAB. covdata_original, a 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 щелкните Добавить отсутствующее покрытие. Уведомление указывает количество добавленных новых тестов.

В диалоговом окне Signal Builder отображается тестовый пример 1 отсутствующего покрытия, добавленный к предыдущему тестовому сценарию 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');На вкладке «Проверка проекта» в разделе «Результаты проверки» выберите «Загрузить более ранние результаты». Перейдите к ранее созданному файлу данных и нажмите кнопку Открыть.
Чтобы просмотреть активные результаты для пропущенных тестов покрытия, щелкните Результаты (Results) Сводка (Summary). Откроется окно Сводка результатов (Results Summary) с отсутствующими результатами анализа покрытия. Дополнительные сведения об активных результатах см. в разделе Просмотр результатов анализа. Отсутствующие данные тестов покрытия хранятся в MAT-файле, содержащем структуру с именем sldvData. Дополнительные сведения см. в разделе Содержимое структуры sldvData.
Анализ отсутствующего покрытия - это рабочий процесс на основе пользовательского интерфейса. Функции командной строки недоступны для анализа отсутствующего покрытия.
Ограничение значений параметров не поддерживается в рабочем процессе анализа отсутствующего покрытия. Дополнительные сведения см. в разделе Определение значений ограничений для параметров.