Для каждого элемента Decision Coverage определяет процент общего FrontEnd разработчик количества путей к симуляции через элемент что пересеченная симуляция. Реляционное граничное покрытие кода исследует код, который начинает реляционные операции. Реляционные граничные метрики покрытия кода выравниваются с теми для покрытия модели, как описано в Реляционном Граничном Покрытии.
Модифицированное Условие/Decision Coverage (MCDC)
Каждый LCSAJ представляет собой сегмент кода, который выполняется последовательно от начальной точки до конечной точки, а затем прерывает последовательный поток для передачи потока управления. Каждая строка кода имеет плотность (density), то есть количество раз, когда номер строки появляется в LCSAJ. Общепринятым правилом, которое можно https://deveducation.com/ считать ориентиром, является покрытие кода на уровне от 70% до 90%.
Сгенерируйте тесты для Decision Coverage модели
Каждый раз Simulink Design Verifier анализирует модель, прежде чем анализ начнется, программное обеспечение выполняет проверку совместимости. Если ваша модель не совместима, программное обеспечение не может анализировать ее. Покрытие оператора определяет количество операторов исходного кода, которые выполняются, когда код запускается. Используйте этот тип покрытия, чтобы определить, был ли каждый оператор в программе вызван, по крайней мере, однажды. Однако, эти два тестовых примера не позволят протестировать правильность логической функции – decision coverage вместо OR в программном коде могла быть ошибочно записана операция AND.
Модифицированное Условие/Decision Coverage (MCDC) для Покрытия кода
При этом значение логического условия будет принимать значение только true, таким образом, при полном покрытии по условиям не будет достигаться покрытие по веткам. Покрытие требований позволяет оценить степень полноты системы тестов по отношению к функциональности системы, но не позволяет оценить полноту по отношению к ее программной реализации. Одна и та же функция может быть реализована при помощи совершенно различных алгоритмов, требующих разного подхода к организации тестирования. Величина той части функциональности системы, которая проверяется тестовыми примерами.
Decision coverage: использование в черноящичном тестировании
Можно также симулировать модель, не создавая модель тестовой обвязки. В логарифмическом окне Simulink Design Verifier нажмите Simulate tests and produce a model coverage report. Для получения дополнительной информации о подсвеченных результатах анализа на модели, смотрите Подсвеченные Результаты на Модели. Я изучаю тестирование программного обеспечения прямо сейчас, и я обнаружил, что есть много критериев покрытия. Есть ли инструменты, с помощью которых можно узнать path coverage для тестов? Процент покрытых путей выполнения кода, а не только процент покрытых строк кода statement coverage, который выдает gconv.
Для примера цикломатических данных о сложности в отчете покрытия модели смотрите Цикломатическую Сложность. Когда вы создаете совокупное покрытие для допускающих повторное использование подсистем или построений Stateflow с одним покрытием области значений, совокупное покрытие имеет самую большую область значений значений сигналов. Для получения дополнительной информации смотрите, Получают Совокупное Покрытие для Допускающих повторное использование Подсистем и Stateflow® Constructs. Для примера данных о Decision Coverage в отчете покрытия модели смотрите Анализируемые Решения.
Покрытие условия анализирует блоки, которые выводят логическую комбинацию их входных параметров (например, блок Logical Operator) и переходы Stateflow. Анализ покрытия условия сообщает, покрыл ли тест полностью блок для каждого блока в модели. Для примера данных о покрытии размера сигнала в отчете покрытия модели смотрите Покрытие Размера Сигнала для Сигналов Переменной Размерности. Если общее количество сигналов в вашей модели превышает 65535, или ваша модель содержит сигнал, ширина которого превышает 65535, программное обеспечение не может записать покрытие диапазона сигнала. Для выявления неверно заданных логических функций был предложен метод покрытия по всем условиям.
Если общее количество сигналов в вашей модели превышает 65535, или ваша модель содержит сигнал, ширина которого превышает 65535, программное обеспечение не может записать покрытие размера сигнала. Покрытие интерполяционных таблиц (LUT) исследует блоки, такие как 1D блок Lookup Table, та выходная информация от входных параметров в таблице вводов и выводов, интерполирующих между или экстраполирующих от записей таблицы. Покрытие интерполяционных таблиц записывает частоту, что поиск по таблице использует каждый интервал интерполяции. Тест достигает полного охвата, когда это выполняет каждый интервал интерполяции и экстраполяции, по крайней мере, однажды. Для каждого блока интерполяционной таблицы в модели отчет покрытия отображает цветную карту интерполяционной таблицы, указывая на каждую интерполяцию. Если общее количество точек останова n-D блока Lookup Table превышает 1,500,000, программное обеспечение не может записать покрытие для того блока.
Чтобы создать модель тестовой обвязки с тестами, которые удовлетворяют целям тестирования в вашей модели в окне Simulink Design Verifier Results Summary, нажимают Create harness model. Для получения дополнительной информации о сигналах переменного размера, смотрите Основы Сигнала Переменного Размера (Simulink). Данный метод сочетает требования предыдущих двух методов – для обеспечения полного покрытия необходимо, чтобы как логическое условие, так и каждая его компонента приняла все возможные значения. Покрытие FSM – покрытие конечного автомата, безусловно, является наиболее сложным методом покрытия кода.
В этом методе покрытия вам нужно посмотреть, как много было переходов/посещений определенных по времени состояний (time-specific states). Оно также проверяет, сколько последовательностей включено в конечный автомат. Следуя этим шагам, вы сможете практически измерить покрытие кода и улучшить надежность вашего программного обеспечения. Для получения дополнительной информации о сигналах переменного размера, смотрите Основы Сигнала Переменного Размера. Мера по сложности может отличаться для сгенерированного кода, чем для модели из-за функций кода, которые этот анализ не рассматривает, такие как объединенные логические и проверки на ошибки. Поскольку Simulink Coverage, покрытие MCDC не может достигнуть полного решения или покрытия условия, можно достигнуть 100%-го покрытия MCDC, не достигая 100% Decision Coverage.
Файлом данных Simulink Design Verifier является MAT-файл, который содержит структуру под названием sldvData. Эта структура хранит все данные, которые анализ собирает и производит во время анализа. Можно использовать файл данных, чтобы провести собственный анализ или сгенерировать пользовательский отчет.
Это отображает информацию, такую как количество обработанных целей тестирования и каким целям удовлетворяют. Simulink Design Verifier анализирует вашу модель, чтобы сгенерировать тесты. Если проверка совместимости указывает, что ваша модель частично совместима, ваша модель содержит по крайней мере один объект, который не поддерживает Simulink Design Verifier. Можно анализировать частично совместимую модель, но по умолчанию неподдерживаемые объекты погашены.
При данном методе покрытия должны быть проверены все возможные наборы значений компонент логических условий. В случае n компонент потребуется 2n тестовых примеров, каждый из которых проверяет один набор значений, Тесты, необходимые для полного покрытия по данному методу, дают полную таблицу истинности для логического выражения. Модифицированный анализ условия/Decision Coverage программным обеспечением Simulink Coverage расширяет решение и возможности покрытия условия. Это анализирует блоки, которые выводят логическую комбинацию их входных параметров и переходов Stateflow, чтобы определить степень, до которой тест тестирует независимость логических входных параметров блока и условий перехода. Когда вы собираете покрытие для модели, вы не можете смочь достигнуть 100%-го покрытия условия. Для примера насыщают на данных о покрытии целочисленного переполнения в отчете покрытия модели, видят, Насыщают согласно Анализу Целочисленного переполнения.
Если у вас есть большая модель, анализ может произвести модель тестовой обвязки, которая содержит большое количество тестов. Программное обеспечение не записывает покрытие диапазона сигнала для управляющих сигналов, сигналы, используемые одним блоком, чтобы инициировать выполнение другого блока. Несмотря на очевидную полноту системы тестов, обеспечивающей этот уровень покрытия, данный метод редко применяется на практике в связи с его сложностью и избыточностью. Один из часто используемых методов определения полноты системы тестов является определение отношения количества тест-требований, для которых существуют тестовые примеры, к общему количеству тест-требований.
Для примера накопленных результатов покрытия смотрите Совокупное Покрытие. Некоторые объекты Simulink поддерживают покрытие MCDC, некоторые объекты поддерживают только покрытие условия, и некоторые объекты поддерживают только Decision Coverage. Таблица в Объектах модели, Которые Получают списки Покрытий, которые объекты получают который типы покрытия модели. Например, блок Combinatorial Logic может получить Decision Coverage и покрытие условия, но не покрытие MCDC. Если ваша модель содержит блоки, которые задают выражения, которые имеют различные типы логических операторов и больше чем 12 условий, программное обеспечение не может записать покрытие MCDC.
- Для получения дальнейшей информации об автоматическом блокировании, смотрите Несовместимости Указателя с Автоматическим Блокированием.
- От блока Signal Builder можно симулировать модель с помощью тестов и представить отчет покрытия модели, как описано в Симулируют Тесты и Представляют Отчет Покрытия модели.
- Каждый LCSAJ представляет собой сегмент кода, который выполняется последовательно от начальной точки до конечной точки, а затем прерывает последовательный поток для передачи потока управления.
- Если ваша модель не совместима, программное обеспечение не может анализировать ее.
- Каждый раз Simulink Design Verifier анализирует модель, прежде чем анализ начнется, программное обеспечение выполняет проверку совместимости.
- Только блоки с выходными сигналами переменного размера включены в отчет.
Блок Signal Builder под названием Входные параметры содержит тесты. От блока Signal Builder можно симулировать модель с помощью тестов и представить отчет покрытия модели, как описано в Симулируют Тесты и Представляют Отчет Покрытия модели. Decision Coverage анализирует операторы, которые представляют решения в исходном коде. Решениями являются Булевы выражения, состоявшие из условий и одного или нескольких логических операторов C/C++ && или ||. Условиями в переходящих построениях (если/еще, в то время как, делают – в то время как) являются решения.