Метрики структурного покрытия

Когда Simulink® Coverage™ измеряет покрытие для модели, это использует те же принципы, используемые в покрытии кода. В покрытии кода вы тестируете тот весь код, выполняется, чтобы гарантировать, что нет никакого неожиданного поведения в вашей программе. Simulink Coverage применяет то же измерение к вашей модели Simulink, чтобы гарантировать, что все блоки и логические ветви выполняются.

Метрики структурного покрытия анализируют структурные элементы вашей модели, такие как блоки и Stateflow® графики, и сообщают, сколько из модели и, если применимо, выполняют логические ветви. Четыре метрики структурного покрытия для покрытия модели являются покрытием выполнения блока, Decision Coverage, покрытием условия и модифицированным Decision Coverage условия (MCDC). Эти метрики анализируют структурные элементы вашей модели, такие как блоки и диаграммы Stateflow, и сообщают, сколько из логики и/или ветвей вашей модели выполняется.

Для получения дополнительной информации об этих и других метриках покрытия, смотрите Типы Покрытия модели.

Блокируйте покрытие выполнения

Блокируйтесь покрытие выполнения говорит вам, выполняется ли каждый блок в процессе моделирования. Метрика покрытия кода, которые блокируют покрытие выполнения, является самой похожей на, покрытие оператора.

On the left, code coverage checks whether the C=0 statement in an if clause executes. On the right, model coverage checks that a Constant block executes.

Большинство блоков получает покрытие выполнения, несмотря на то, что существуют некоторые типы блоков, которые не получают покрытие вообще. Для получения дополнительной информации смотрите Объекты модели, Которые Не Получают Покрытие.

Decision Coverage

Decision Coverage анализирует моменты принятия решения в вашем коде или модели. В покрытии кода решением является Булево выражение, состоявшее из одного или нескольких условий и нуля или большего количества булевых операторов. В покрытии модели решение является местом в вашей модели, где значение одного или нескольких входных сигналов решает выходной сигнал блока.

On the left, code coverage checks a decision expression A && B for a true and false case. On the right, model coverage checks a Switch block for a true and false case.

В покрытии кода, решение A && B имеет 100% Decision Coverage, если решением является true по крайней мере для одного временного шага и лжи по крайней мере для одного временного шага, независимо от результатов отдельных условий в решении. Точно так же в покрытии модели, блок Switch имеет 100% Decision Coverage если true случай выполняется по крайней мере для одного временного шага и false случай выполняется по крайней мере для одного временного шага.

Decision Coverage условия

Decision Coverage условия анализирует оба момента принятия решения и условия, которые составляют решения. В покрытии кода условием является Булево выражение, которое не содержит булевых операторов. Другими словами, это - Булево выражение, которое не может быть разломано на более простые Булевы выражения. Примером условия является выражение как A, где результатом является true или false.

В покрытии модели покрытие условия анализирует блоки, которые выводят логическую комбинацию их входа. Примером условия в модели является блок Logical Operator. Блок Logical Operator с набором оператора к And вывел бы true если всеми его входными сигналами является true. Это - то, что предназначается логической комбинацией его входных параметров.

On the left, code coverage checks two condition expression A and B for a true and false case. On the right, model coverage checks a Logical Operator block for true and false cases for both of its input signals.

Выражение A имеет 100%-е покрытие, если условием является true по крайней мере для одного временного шага и false по крайней мере для одного временного шага. Точно так же блок Logical Operator имеет 100%-е покрытие условия, если каждым из его входных сигналов является true по крайней мере для одного временного шага и false по крайней мере для одного временного шага. В этой модели в качестве примера, сигналы A и B булевы значения в модели, которые представляют те же условия как пример кода.

Модифицированный Decision Coverage условия (MCDC)

MCDC является Decision Coverage условия, кроме каждого условия должен независимо влиять на результат решения.

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

Используя тот же пример с решением A && B, чтобы достигнуть 100%-го покрытия MCDC, условия должны показать TTtf , и FT. Вам нужны эти три результата для того, чтобы показать, что каждое условие независимо влияет на результат блока. FF результат не нужен, потому что это не изменяет результат решения от TF и FT случаи.

В покрытии модели MCDC ищет реверсирования решения, которые происходят, потому что один результат условия изменяется от true к false или от false к true. Примером блока, который получает покрытие MCDC, является блок Logical Operator.

Блок And имел бы 100%-е покрытие MCDC, если каждый входной результат условия изменяется, независимо влияя на результат решения. Например, блок And с двумя входными условиями должен показать три результата. true случай, где и входные условия верны, и два ложных случая, где условие 1 является ложным, в то время как условие 2 верно, и наоборот.

Похожие темы