exponenta event banner

Типы покрытия модели

Simulink ® Coverage™ может выполнять несколько типов анализа покрытия.

Покрытие выполнения (EC)

Покрытие исполнения является наиболее основной формой покрытия. Для каждого элемента покрытие выполнения определяет, выполняется ли элемент во время моделирования.

Покрытие принятия решений (DC)

Покрытие принятия решений анализирует элементы, представляющие точки принятия решений в модели, такие как блок Switch или состояния Stateflow ®. Для каждого элемента покрытие принятия решения определяет процент от общего числа путей моделирования, проходящих через элемент, который был пройден моделированием.

Пример данных покрытия принятия решения в отчете о покрытии модели см. в разделе Проанализированные решения.

Покрытие условий (CC)

Покрытие условий анализирует блоки, которые выводят логическую комбинацию своих входов (например, блок логического оператора) и переходы Stateflow. Тестовый случай достигает полного охвата, когда он заставляет каждый вход в каждый экземпляр логического блока в модели и каждое условие при переходе быть истинным по крайней мере один раз во время моделирования и ложным по крайней мере один раз во время моделирования. Анализ покрытия условий показывает, был ли тестовый случай полностью покрыт блоком для каждого блока в модели.

При сборе покрытия для модели, возможно, не удастся достичь 100% покрытия условий. Например, если указать логические блоки с коротким замыканием, выбрав команду Обработать логические блоки Simulink как блоки с коротким замыканием на панели Покрытие (Coverage) в окне Параметры конфигурации (Configuration Parameters), возможно, не удастся достичь 100% покрытия условий для этого блока. Дополнительные сведения см. в разделе Анализ MCDC.

Пример данных покрытия условий в отчете о покрытии модели см. в разделе Анализируемые условия.

Модифицированное условие/покрытие принятия решений (MCDC)

Модифицированный анализ покрытия условий/принятия решений с помощью программного обеспечения Simulink Coverage расширяет возможности принятия решений и покрытия условий. Он анализирует блоки, которые выводят логическую комбинацию их входов и переходов Stateflow, чтобы определить степень, в которой тестовый случай проверяет независимость входов логических блоков и условий перехода.

  • Тестовый случай достигает полного покрытия для блока, когда изменение на одном входе, независимом от любых других входов, вызывает изменение на выходе блока.

  • Тестовый случай достигает полного покрытия для перехода Stateflow, когда по крайней мере один раз, когда изменение условия инициирует переход для каждого условия.

Если модель содержит блоки, определяющие выражения, имеющие различные типы логических операторов и более 12 условий, программа не может записать покрытие MCDC.

Так как покрытие MCDC Simulink Coverage может не достигать полного решения или покрытия условий, вы можете достичь 100% покрытия MCDC без достижения 100% покрытия принятия решения.

Некоторые объекты Simulink поддерживают покрытие MCDC, некоторые объекты поддерживают только покрытие условий, а некоторые объекты поддерживают только покрытие решений. В таблице Объекты модели, получающие покрытие перечисляются объекты, получающие покрытие моделей. Например, блок комбинаторной логики может принимать покрытие принятия решений и покрытие условий, но не покрытие MCDC.

Для достижения 100% покрытия MCDC для модели, как определено в стандарте DO-178C/DO-331, на панели Покрытие (Coverage) в окне Параметры конфигурации (Configuration Parameters) выберите Модифицированное покрытие условиями/решениями (Modified Condition/Decision Coverage, MCDC) в качестве уровня структурного покрытия.

При сборе покрытия для модели, возможно, не удастся достичь 100% покрытия MCDC. Например, если указать логические блоки с коротким замыканием, возможно, не удастся достичь 100% покрытия MCDC для этого блока.

Если тестовые случаи выполняются независимо и накапливаются все результаты покрытия, можно определить, соответствует ли модель измененному условию и стандарту покрытия принятия решений. Дополнительные сведения о стандарте DO-178C/DO-331 см. в разделе Проверки DO-178C/DO-331 (Simulink Check).

Пример данных покрытия MCDC в отчете о покрытии модели см. в разделе Анализ покрытия MCDC. Пример накопленных результатов покрытия см. в разделе Совокупное покрытие.

Цикломатическая сложность

Цикломатическая сложность является мерой структурной сложности модели. Он аппроксимирует меру сложности Маккейба для кода, созданного из модели. Измерение сложности может отличаться для сгенерированного кода, чем для модели, из-за функций кода, которые не учитываются в этом анализе, таких как консолидированная логика и проверка ошибок.

Для вычисления цикломатической сложности объекта (например, блока, диаграммы или состояния) покрытие модели использует следующую формулу:

c=∑1N (на 1)

N - количество точек решения, которые представляет объект, и количество результатов для n-й точки решения. Вычисление рассматривает векторизированную операцию или блок многопортового коммутатора в качестве одной точки решения. Инструмент добавляет 1 к номеру сложности для атомных подсистем и диаграмм Stateflow.

Пример данных цикломатической сложности в отчете об охвате модели см. в разделе Цикломатическая сложность.

Охват таблицы подстановки

Освещение справочной таблицы (LUT) исследует блоки, такие как 1-D блок Справочной таблицы, та выходная информация от исходных данных в столе входов и выходов, интерполирующих между или экстраполирующих из записей в таблице. В таблице поиска записывается частота, с которой при поиске таблицы используется каждый интервал интерполяции. Тестовый случай достигает полного охвата, когда он выполняет каждый интервал интерполяции и экстраполяции по меньшей мере один раз. Для каждого блока таблицы поиска в модели в отчете о покрытии отображается цветная карта таблицы поиска, указывающая каждую интерполяцию. Если общее число точек останова блока n-D Lookup Table превышает 1 500 000, программное обеспечение не может записать покрытие для этого блока.

Пример данных покрытия таблицы подстановки в отчете о покрытии модели см. в разделе N-мерная таблица подстановки.

Примечание

Настройте охват таблицы подстановки только в начале моделирования. При настройке параметра, влияющего на охват таблицы поиска во время выполнения, настройки покрытия для соответствующего блока не обновляются.

Охват диапазонов сигналов

Охват диапазонов сигналов фиксирует минимальное и максимальное значения сигналов в каждом блоке модели, измеренные во время моделирования. Только блоки с выходными сигналами принимают покрытие диапазона сигналов.

Программное обеспечение не делает запись освещения диапазона сигнала для управляющих сигналов, сигналы, используемые одним блоком, чтобы начать выполнение другого блока. См. раздел Управляющие сигналы.

Если общее количество сигналов в модели превышает 65535, или модель содержит сигнал, ширина которого превышает 65535, программное обеспечение не может записать охват диапазона сигналов.

Пример данных о покрытии диапазона сигналов в отчете об покрытии модели см. в разделе Анализ диапазона сигналов.

Примечание

При создании кумулятивной зоны покрытия для многоразовых подсистем или конструкций Stateflow с одинарной зоной покрытия кумулятивная зона покрытия имеет максимально возможный диапазон значений сигнала. Дополнительные сведения см. в разделе Получение совокупного покрытия для повторно используемых подсистем и конструкций Stateflow ®.

Охват по размеру сигнала

Охват по размеру сигнала фиксирует минимальный, максимальный и назначенный размер для всех сигналов переменного размера в модели. В отчет включаются только блоки с выходными сигналами переменного размера.

Если общее количество сигналов в модели превышает 65535, или модель содержит сигнал, ширина которого превышает 65535, программное обеспечение не может записать охват размера сигнала.

Пример данных о покрытии по размеру сигнала в отчете о покрытии модели см. в разделе Покрытие по размеру сигнала для сигналов переменной размерности.

Дополнительные сведения о сигналах переменного размера см. в разделе Основы сигналов переменного размера.

Охват целей и ограничений

Программное обеспечение Simulink Coverage собирает данные о покрытии модели для следующих блоков Simulink Design Verifier™ и MATLAB ® для функций генерации кода:

Блоки Simulink Design VerifierMATLAB для функций генерации кода
Условия тестирования (Simulink Design Verifier)sldv.condition (Simulink Design Verifier)
Цель теста (Simulink Design Verifier)sldv.test (Simulink Design Verifier)
Предположение о подтверждении (Simulink Design Verifier)sldv.assume (Simulink Design Verifier)
Цель проверки (Simulink Design Verifier)sldv.prove (Simulink Design Verifier)

Если у вас нет лицензии Simulink Design Verifier, можно собрать покрытие модели, содержащей эти блоки или функции, но вы не можете проанализировать модель с помощью программы Simulink Design Verifier.

Добавив в модель один или несколько блоков или функций Simulink Design Verifier, можно:

  • Проверьте результаты анализа Simulink Design Verifier, выполните созданные тестовые примеры и используйте блоки для наблюдения за результатами.

  • Определите требования к модели с помощью блока Test Objective и проверьте результаты с помощью данных покрытия модели, собранных программным обеспечением во время моделирования.

  • Проанализируйте модель, создайте тестовый электрический жгут и смоделируйте электрический жгут с помощью блока «Цель тестирования» для сбора данных об охвате модели.

  • Проанализируйте модель и используйте блок «Подтверждение допущения» для проверки любых контрпримеров, которые определяет Simulink Design Verifier.

Если вы указываете, чтобы собрать покрытие Simulink Design Verifier:

  • Программное обеспечение собирает данные для блоков и функций Simulink Design Verifier.

  • Программное обеспечение проверяет тип данных сигнала, который связан с каждым блоком Simulink Design Verifier. Если типом данных сигнала является фиксированная точка, параметр блока также должен быть фиксированной точкой. Если тип данных сигнала не является фиксированной точкой, программа пытается преобразовать тип данных параметра блока. Если программа не может преобразовать тип данных параметра блока, программа сообщает об ошибке, и необходимо явно назначить тип данных параметра блока для соответствия сигналу.

  • Если модель содержит блок подсистемы проверки, программное обеспечение записывает покрытие только для блоков Simulink Design Verifier в блоке подсистемы проверки (Simulink Design Verifier); он не записывает покрытие для любых других блоков в подсистеме проверки.

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

Пример данных покрытия для блоков или функций Simulink Design Verifier в отчете об охвате модели см. в разделе Покрытие Simulink Design Verifier.

Насыщение при покрытии целочисленного переполнения

Saturate on integer overflow coverage проверяет блоки, такие как блок Abs, с выбранным параметром Saturate on integer overflow. Только блоки с выбранным параметром получают насыщение при покрытии целочисленным переполнением.

Saturate on integer overflow coverage записывает количество раз, когда блок насыщается integer overflow.

Тестовый случай достигает полного охвата, когда блоки насыщаются при целочисленном переполнении по крайней мере один раз и не насыщаются по крайней мере один раз.

Пример насыщения данных о покрытии целочисленным переполнением в отчете об покрытии модели см. в разделе Насыщение при анализе переполнения целочисленных данных.

Покрытие реляционной границы

Покрытие реляционной границы проверяет блоки, диаграммы потока состояний и функциональные блоки MATLAB, которые имеют явную или неявную реляционную операцию.

  • Блоки, такие как Relational Operator и If, имеют явную реляционную операцию.

  • Такие блоки, как Abs и Saturation, имеют неявную реляционную операцию.

Для этих объектов модели в метрике записывается, проверяет ли моделирование реляционную операцию с помощью:

  • Равные значения операндов.

    Эта часть покрытия реляционной границы применяется только в том случае, если оба операнда являются целыми числами или числами с фиксированной точкой.

  • Значения операнда, отличающиеся определенным допуском.

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

Значение допуска зависит от типа данных обоих операндов. Если оба операнда имеют одинаковый тип, допуск следует следующим правилам:

Тип данных операндаТерпимость
Плавающая точка, например single или double

max(absTol, relTol* max(|lhs|,|rhs|))

  • absTol - указанное абсолютное значение допуска. По умолчанию: 1e-05.

  • relTol - указанное значение относительного допуска. По умолчанию: 0.01.

  • lhs - левый операнд и rhs правильный операнд.

  • max(x,y) прибыль x или y, в зависимости от того, что больше.

Фиксированная точкаЗначение, соответствующее младшему значащему биту. Дополнительные сведения см. в разделе Точность (конструктор фиксированных точек). Чтобы найти значение точности, используйте lsb (Конструктор фиксированных точек).
Целое число1
БулевН/Д
EnumН/Д

Если два операнда имеют разные типы, допуск следует правилам для более строгого типа. Если один из операндов является логическим, допуск следует правилам для другого операнда. Строгость снижается в таком порядке:

  1. Плавающая точка

  2. Фиксированная точка

  3. Целое число

Если оба операнда являются фиксированными точками, но имеют разную точность, в качестве допуска используется меньшее значение точности.

Значение абсолютных и относительных допусков для реляционного граничного покрытия входов с плавающей запятой задается при выборе этой метрики в разделе Метрики покрытия (Coverage metrics) на панели покрытия диалогового окна Параметры конфигурации (Configuration Parameters).

Для получения дополнительной информации: