Достижение Недостающего покрытия в ссылочных Моделях

Если вы симулируете ссылку на модель, которая не достигает полного покрытия, можно использовать Simulink® Проектируйте Verifier™, чтобы сгенерировать тесты, которые достигают полного покрытия. Существует два подхода:

  • Программно достигайте недостающего покрытия: Сгенерируйте тестовые примеры для ссылочной модели с API для анализа генерации тестов.

  • Пошагово увеличение покрытие: Сгенерируйте тесты для модели тестовой обвязки с недостающим покрытием функциями анализа.

Программно достигайте Недостающего покрытия в ссылочных Моделях

Эта модель примера использует модель-ссылку, которая не достигает полного покрытия. Когда вы запускаете анализ генерации тестов на ссылочной модели и комбинируете его с ранее записанными данными о покрытии, можно достичь 100% покрытия для ссылочной модели.

Запись данных о покрытии для модели примера

Симулируйте модель примера. Запись условия, решения и покрытия MCDC.

  1. Откройте модель примера:

    sldemo_mdlref_basic

    Этот Model блокирует CounterA, CounterB и CounterC ссылку на модель sldemo_mdlref_counter.

  2. На вкладке Apps щелкните стреле справа от Apps раздела.

    В разделе Model Verification, Validation, and Test нажмите Coverage Analyzer.

  3. На вкладке Coverage нажмите Settings.

  4. На панели Coverage диалогового окна Параметры конфигурации установите следующие опции:

    • Выберите Enable coverage analysis.

    • Выберите Referenced Models.

    • Нажмите Select Models. В диалоговом окне «Выбор моделей для анализа покрытия» установите флажок для модели-ссылки sldemo_mdlref_counter. Нажмите OK.

      Флажок для sldemo_mdlref_counter становится видимым, соответствующим CounterA и CounterB. Покрытие не включено для CounterC, потому что образец модели CounterC находится в Accelerator режим симуляции.

    • Укажите типы покрытия для записи во время симуляции. В разделе Coverage metrics выберите MCDC.

  5. На панели Coverage > Results параметров конфигурации. Установите следующие опции:

    • Выберите Save last run in workspace variable, чтобы сохранить собранные данные о покрытии из последнего запуска симуляции в переменной в MATLAB® рабочей области.

    • Выберите Generate report automatically after analysis, чтобы указать, что симуляция создаёт отчет о покрытии.

    • В cvdata object name поле введите covdata_original чтобы задать уникальное имя для переменной рабочей области данных о покрытии.

  6. Нажмите OK.

  7. Чтобы записать данные о покрытии, запустите симуляцию sldemo_mdlref_basic модель.

    После симуляции откроется отчет о покрытии. Отчет указывает, что для ссылочной модели достигается следующее покрытие sldemo_mdlref_counter:

    • Решение: 25%

    • Условие: 50%

    • MCDC: 0%

    Эта симуляция сохраняет данные покрытия в переменном Рабочем пространстве MATLAB covdata_original, а cvdata объект, который содержит данные о покрытии.

  8. Сохраните данные о покрытии в файле на пути MATLAB:

    cvsave('existingcov',covdata_original);

    Сохраните модель открытой, когда вы продолжите в этом примере.

Поиск тестов для недостающего покрытия

Чтобы достичь 100% покрытия для sldemo_mdlref_counter запустите анализ генерации тестов, который использует существующие данные покрытия.

  1. Откройте ссылочную модель. В командной строке введите:

    open_system('sldemo_mdlref_counter');
  2. Создайте sldvoptions объект:

    opts = sldvoptions;

    Когда вы создаете sldvoptions объект, задайте:

    • Что анализ игнорирует удовлетворенные данные о покрытии.

    • Имя файла, содержащего удовлетворенные данные о покрытии (existingcov.cvt)

    Введите следующие команды, чтобы задать эти опции:

    opts.IgnoreCovSatisfied = 'on';
    opts.CoverageDataFile = 'existingcov.cvt';
  3. Анализируйте ссылку на модель, sldemo_mdlref_counter, при помощи заданных опций:

    [status, fileNames] = sldvrun('sldemo_mdlref_counter',opts,true);

    Анализ Simulink Design Verifier™ удовлетворяет семи целям и создает один тест для ссылок на модель.

Следующая процедура моделирует ссылку на модель, sldemo_mdlref_counter, со теста, которую создал анализ.

Достижение недостающего покрытия

Чтобы достичь недостающего покрытия для ссылочных моделей, sldemo_mdlref_counter, моделируйте модель с помощью теста из анализа Simulink Design Verifier.

  1. Откройте ссылочную модель. В командной строке введите:

    open_system('sldemo_mdlref_counter');
  2. Создайте cvtest объект для симуляции и определения решения записи, условия и покрытия MCDC.

    cvt = cvtest('sldemo_mdlref_counter');
    cvt.settings.decision = 1;
    cvt.settings.condition = 1;
    cvt.settings.mcdc = 1;
  3. Задайте охват записи и установите имя cvtest объект.

    runOpts = sldvruntestopts;
    runOpts.coverageEnabled = true;
    runOpts.coverageSetting = cvt;
  4. Симулируйте модель с 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.

  1. Откройте модель примера:

    open_system('sldemo_mdlref_counter');
  2. Создайте модель тестовой обвязки для ссылочной модели sldemo_mdlref_counter:

    [savedHarnessFilePath] = sldvmakeharness('sldemo_mdlref_counter');

    Для получения дополнительной информации о модели тестовой обвязки, см. Simulink Design Verifier Моделей тестовой обвязки.

  3. В модели тестовой обвязки sldemo_mdlref_counter_harness, параметр Format должен быть Dataset чтобы сделать ссылку модели sldemo_mdlref_counter и модель тестовой обвязки sldemo_mdlref_counter_harness иметь одинаковые настройки параметра. Для получения дополнительной информации смотрите, Параметры конфигурации модели: Импорт/Экспорт данных.

  4. Симулируйте sldemo_mdlref_counter_harness модель, чтобы записать покрытие, достигнутое тестами в модели тестовой обвязки. После симуляции появляется отчет о покрытии. Отчет указывает, что для sldemo_mdlref_counter достигается следующее покрытие:

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

  1. Откройте модель тестовой обвязки:

    open_system('sldemo_mdlref_counter_harness');

    Чтобы сгенерировать тесты для недостающего покрытия, на вкладке Design Verifier нажмите Add Missing Coverage. Уведомление указывает количество добавленных новых тестов.

  2. В диалоговом окне Signal Builder показаны Missing coverage test case 1, добавленные к предыдущим Test Case 1.

  3. В диалоговом окне Signal Builder нажмите Run all . Программа моделирует модель тестовой обвязки с помощью всех тестов, собирает информацию о покрытии модели и отображает отчет о покрытии. Отчет о покрытии указывает, что анализ недостающего покрытия записывает 100% охват для sldemo_mdlref_counter.

Обновление Simulink Design Verifier Опций анализа

  1. Откройте модель тестовой обвязки.

    open_system('sldemo_mdlref_counter_harness');

    На вкладке Design Verifier нажмите Test Generation Settings. Диалоговое окно Параметры конфигурации для ссылочной модели sldemo_mdlref_counter откроется. Можно задать опции проверки проекта для недостающего покрытия анализа. Дополнительные сведения см. в разделе « Опциях» Диалогового окна параметров конфигурации.

Просмотр активных результатов для Недостающего покрытия анализа

  1. Откройте ссылочную модель.

    open_system('sldemo_mdlref_counter');

    На вкладке Design Verifier, в разделе Review Results, нажмите Load Earlier Results. Перейдите к ранее сгенерированному файлу данных и нажмите Open.

    Чтобы просмотреть активные результаты для недостающего покрытия тестовых случаев, нажмите Results Summary. Откроется окно Сводных данных результатов с недостающим покрытием результатами анализа. Дополнительные сведения об активных результатах см. в разделе Просмотр результатов анализа. Недостающие покрытия хранятся в MAT-файле, который содержит структуру с именем sldvData. Для получения дополнительной информации см. раздел «Содержимое структуры данных sldvData».

Ограничения

  1. Недостающее покрытие является рабочим процессом на основе пользовательского интерфейса. Функции командной строки недоступны для анализа недостающего покрытия.

  2. Ограничение значений для параметров не поддерживается в рабочем процессе анализа Недостающего покрытия. Для получения дополнительной информации смотрите, Задать значения ограничений для параметров.

Похожие темы