conditioninfo

Получите информацию о покрытии условия из cvdata объект

Описание

covInfo = conditioninfo(cvdo,modelObject) возвращает результаты покрытия условия в cvdata объект cvdo для компонента модели, заданного modelObject.

covInfo = conditioninfo(cvdo,modelObject,simMode) возвращает результаты покрытия условия в cvdata объект cvdo для режима simMode симуляции.

covInfo = conditioninfo(cvdo,modelObject,ignore_descendants) возвращает результаты покрытия условия для modelObject, включая или игнорирующий объекты-потомки на основе значения ignore_descendants.

[covInfo,description] = conditioninfo(cvdo,modelObject) возвращает результаты покрытия условия и текстовые описания для каждого условия в modelObject.

Примеры

свернуть все

В этом примере показано, как просмотреть покрытие условия для блока в вашей модели.

Загрузите модель.

modelName = 'slvnvdemo_cv_small_controller';
load_system(modelName);

Сконфигурируйте настройки покрытия для модели при помощи Simulink.SimulationInput объект.

simIn = Simulink.SimulationInput(modelName);
simIn = simIn.setModelParameter('CovEnable','on');
simIn = simIn.setModelParameter('CovMetricStructuralLevel','MCDC');
simIn = simIn.setModelParameter('CovSaveSingleToWorkspaceVar','on');
simIn = simIn.setModelParameter('CovSaveName','covData');

Симулируйте модель путем передачи simIn как вход к sim.

simOut = sim(simIn);
covData = simOut.covData;

Просмотрите результаты покрытия условия для Логического блока в подсистеме Усиления путем вызова conditioninfo с блоком path.

condCov = conditioninfo(covData,[modelName,'/Gain/Logic'])
condCov =

     2     4

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

percentCondCov = 100 * condCov(1) / condCov(2)
percentCondCov =

    50

Входные параметры

свернуть все

Данные о покрытии в виде cvdata объект.

Типы данных: cvdata

Объект модели в виде символьного массива, массива строк, указателя Simulink, ID Stateflow или массива ячеек.

Задавать объект модели, например, блок или диаграмма Stateflow, использование один из следующих форматов:

Объектная спецификацияОписание

BlockPath

Полный путь к модели или блоку

BlockHandle

Обработайте к модели или блоку

slObj

Обработайте к объекту Simulink API

sfID

ID Stateflow

sfObj

Обработайте к объекту Stateflow API от отдельно инстанцированной диаграммы Stateflow

{BlockPath, sfID}

Массив ячеек с путем к диаграмме Stateflow или атомарной субдиаграмме и ID объекта, содержавшегося в том графике или субдиаграмме

{BlockPath, sfObj}

Массив ячеек с путем к диаграмме Stateflow или субдиаграмме и указателю API объекта Stateflow, содержавшемуся в том графике или субдиаграмме

{BlockHandle, sfID}

Массив ячеек с указателем на диаграмму Stateflow или атомарную субдиаграмму и ID объекта, содержавшегося в том графике или субдиаграмме

Чтобы задать Блок s-function или его содержимое, используйте один из следующих форматов:

Объектная спецификацияОписание

{BlockPath, fName}

Массив ячеек с путем к блоку S-Function и имени исходного файла

{BlockHandle, fName}

Массив ячеек с указателем блока S-Function и именем исходного файла

{BlockPath, fName, funName}

Массив ячеек с путем к блоку S-Function, имени исходного файла и имени функции

{BlockHandle, fName, funName}

Массив ячеек с указателем блока S-Function, именем исходного файла имя функции

Задавать результат покрытия кода, например, данные о покрытии, собранные во время программного обеспечения в цикле (SIL) или процессор в цикле (PIL) анализ, использование один из следующих форматов:

Объектная спецификацияОписание

{fileName, funName}

Массив ячеек с именем исходного файла и имени функции

{Model, fileName}

Массив ячеек с именем модели или указателем модели и именем исходного файла

{Model, fileName, funName}

Массив ячеек с именем модели или указателем модели, именем исходного файла и именем функции

Типы данных: char | string | cell | Stateflow.State | Stateflow.Transition

Режим Simulation во время анализа покрытия в виде одного из следующего:

Объектная спецификацияОписание

'Normal'

Модель в нормальном режиме симуляции.

'SIL' (or 'PIL')

Модель в программном обеспечении в цикле (SIL) или процессор в цикле (PIL) режим симуляции.

'ModelRefSIL' (or 'ModelRefPIL')

Модель - ссылка в программном обеспечении в цикле (SIL) или процессор в цикле (PIL) режим симуляции.

'ModelRefTopSIL' (or 'ModelRefTopPIL')

Модель - ссылка в программном обеспечении в цикле (SIL) или процессор в цикле (PIL) режим симуляции с кодом соединяет интерфейсом с набором топ-модели.

Типы данных: char | string

Проигнорировать ли потомков в результатах покрытия в виде 0 или 1, где:

  • 0 включает результаты покрытия объектов-потомков.

  • 1 игнорирует результаты покрытия объектов-потомков.

Типы данных: single | double

Выходные аргументы

свернуть все

Информация о покрытии, возвращенная как двухэлементный массив формы [covered_outcomes,total_outcomes] если cvdo содержит подготавливают данные о покрытии или пустой массив, если они не делают.

covered_outcomesКоличеству результатов условия удовлетворяют для modelObject
total_outcomesОбщее количество результатов условия для modelObject

Типы данных: double

Описание покрытия условия, возвращенное как структура со следующими полями:

Блокируйте флаг исключения, возвращенный как 1 если блок исключен и 0 если это не.

Типы данных:

Блокируйте объяснение фильтра покрытия, возвращенное как символьный массив.

Типы данных: char

Количество выровненных по ширине результатов цели покрытия, возвращенных как скаляр дважды.

Типы данных: double

Блокируйте флаг выравнивания, возвращенный как 1 если блок выравнивается по ширине или 0 если это не.

Типы данных: double

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

Флаг исключения условия, возвращенный как 1 если условие исключено или 0 если это не.

Типы данных: double

Флаг выравнивания условия, возвращенный как 1 если условие выравнивается по ширине или 0 если это не.

Типы данных: double

Объяснение фильтра покрытия, возвращенное как символьный массив.

Типы данных: char

Описание условия, возвращенного как символьный массив.

Типы данных: char

Количеством временных шагов условие является true, возвращенный как скаляр.

Типы данных: double

Количеством временных шагов условие является false, возвращенный как скаляр.

Типы данных: double

Информация о фильтре покрытия для true результат условия, возвращенный как массив структур со следующими полями:

isFilteredОтфильтруйте флаг для результата условия, возвращенного как 1 если результат отфильтрован или 0 если это не.
isJustifiedФлаг Justification для результата условия, возвращенного как 1 если результат выравнивается по ширине или 0 если это не.
filterRationaleОбъяснение фильтра, возвращенное как символьный массив.

Типы данных: struct

Информация о фильтре покрытия для false результат условия, возвращенный как массив структур со следующими полями:

isFilteredОтфильтруйте флаг для результата условия, возвращенного как 1 если результат отфильтрован или 0 если это не.
isJustifiedФлаг Justification для результата условия, возвращенного как 1 если результат выравнивается по ширине или 0 если это не.
filterRationaleОбъяснение фильтра, возвращенное как символьный массив.

Типы данных: struct

Агрегированная информация о трассируемости теста покрытия, возвращенная как массив структур. Если ваши данные о покрытии не содержат агрегированные результаты нескольких симуляций, trueExecutedIn пустой массив. Если ваши данные о покрытии содержат агрегированные результаты, trueExecutedIn указывает, какие тестовые прогоны выполнили true результат условия и имеет следующие поля:

uniqueIdУникальный идентификатор для cvdata объект, созданный тестом, который выполнил этот результат условия, возвратился как символьный массив.
analyzedModelИмя анализируемой модели, возвратилось как символьный массив.
descriptionОписание теста, возвращенное как символьный массив.
dateДата и время симуляции, которая создала cvdata объект, возвращенный как символьный массив.
traceLabelКраткое название теста, возвращенного как символьный массив.
testRunInfoПротестируйте детали, возвращенные как массив структур.
testRunInfo.runidИдентификатор запуска, который сгенерировал результат покрытия, возвратился как скаляр дважды.
testRunInfo.runNameИмя теста, который сгенерировал результат покрытия, возвратилось как символьный массив.
testRunInfo.testIdИдентификация данных для теста, который сгенерировал результат покрытия, возвратилась как массив структур.
testRunInfo.testId.uuidУникальный идентификатор для теста, который сгенерировал результат покрытия, возвратился как символьный массив.
testRunInfo.testId.contextType

Тестовый контекст, в котором был получен результат покрытия, возвратился как одно из этих значений:

'RE' для проводника результатов покрытия

'ST' для менеджера по Simulink Test™

Типы данных: struct

Агрегированная информация о трассируемости теста покрытия, возвращенная как массив структур. Если ваши данные о покрытии не содержат агрегированные результаты нескольких симуляций, falseExecutedIn пустой массив. Если ваши данные о покрытии содержат агрегированные результаты, falseExecutedIn указывает, какие тестовые прогоны выполнили false результат условия и имеет следующие поля:

uniqueIdУникальный идентификатор для cvdata объект, созданный тестом, который выполнил этот результат условия, возвратился как символьный массив.
analyzedModelИмя анализируемой модели, возвратилось как символьный массив.
descriptionОписание теста, возвращенное как символьный массив.
dateДата и время симуляции, которая создала cvdata объект, возвращенный как символьный массив.
traceLabelКраткое название теста, возвращенного как символьный массив.
testRunInfoПротестируйте детали, возвращенные как массив структур.
testRunInfo.runidИдентификатор запуска, который сгенерировал результат покрытия, возвратился как скаляр дважды.
testRunInfo.runNameИмя теста, который сгенерировал результат покрытия, возвратилось как символьный массив.
testRunInfo.testIdИдентификация данных для теста, который сгенерировал результат покрытия, возвратилась как массив структур.
testRunInfo.testId.uuidУникальный идентификатор для теста, который сгенерировал результат покрытия, возвратился как символьный массив.
testRunInfo.testId.contextType

Тестовый контекст, в котором был получен результат покрытия, возвратился как одно из этих значений:

'RE' для проводника результатов покрытия

'ST' для менеджера по Simulink Test

Типы данных: struct

Типы данных: struct

Типы данных: struct

Альтернативы

Можно также собрать покрытие условия для модели в Редакторе Simulink. Установите параметры конфигурации модели и запустите модель:

  1. Откройте модель, для которой вы хотите собрать покрытие условия.

  2. В Редакторе Simulink, во вкладке Modeling, выбирают Model Settings.

  3. На панели Coverage диалогового окна Configuration Parameters выберите Enable coverage analysis.

  4. Под Coverage metrics выберите Condition Decision как уровень структурного покрытия.

  5. Нажмите OK, чтобы закрыть диалоговое окно Configuration Parameters и сохранить ваши изменения.

  6. Симулируйте модель путем нажатия на Run. Рассмотрите результаты.

Представленный в R2006b