Покрытие кода - Методы и как работает покрытие кода?

Содержание:

Anonim

Что такое покрытие кода?

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

Как работает Code Coverage?

На самом деле существуют различные подходы к измерению покрытия кода. Если мы рассмотрим в широком смысле, существует 3 из следующих подходов:

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

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

Методы покрытия кода

Существует много способов покрытия кода. Немногие из них перечислены ниже:

  • Состояние покрытия
  • Охват FSM
  • Заявление Покрытие
  • Охват решений
  • Охват филиала

1. Заявление покрытия

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

2. Охват решений

  • Этот метод полезен при сообщении либо истинных, либо ложных результатов каждого логического выражения. Выражения в этом покрытии часто становятся сложными. Поэтому получить покрытие 100% довольно сложно.
  • Именно по этой причине существуют различные методы сообщения о такой метрике. Все эти методы в основном касаются охвата наиболее значимых комбинаций. Решение о покрытии обеспечивает большую чувствительность, чтобы контролировать поток.

3. Отделение покрытия

  • Когда мы говорим об этом типе, мы имеем в виду, что каждый вывод, который приходит из модуля кода, проверяется. В качестве примера мы можем рассмотреть, что в случае, если выходные данные являются двоичными, тогда мы будем тестировать как True, так и False выходы.
  • Покрытие ветвей помогает нам в обеспечении того, чтобы все возможные ответвления, которые исходят из каждого решения, выполнялись условием минимум один раз.
  • С помощью метода покрытия Branch мы можем вычислить долю независимых сегментов кода. Кроме того, этот метод позволяет нам выяснить, какие разделы кода не имеют ветвей.

Существует формула расчета Покрытия филиала:

Охват ветви = количество выполненных веток / общее количество выполненных ветвей

4. Состояние покрытия

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

Существует формула расчета Покрытия филиала:

Охват условий = количество выполненных операндов / общее количество выполненных операндов

5. Покрытие конечного автомата

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

Преимущества покрытия кода

Некоторые из преимуществ приведены ниже:

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

Недостатки покрытия кода

Некоторые из недостатков приведены ниже:

  • Всякий раз, когда конкретная функция не реализована внутри проекта, охват кода все равно будет охватывать 100%.
  • Невозможно понять, если вы тестируете все возможные значения функции через покрытие кода
  • Это также не говорит о том, сколько и насколько хорошо мы покрыли нашу логику.

Вывод

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

Рекомендуемые статьи

Это руководство по охвату кода. Здесь мы обсудим методы и как работает покрытие кода? наряду с преимуществами и недостатками. Вы также можете посмотреть следующие статьи, чтобы узнать больше -

  1. Как тестовое покрытие облегчает работу?
  2. Различные инструменты тестирования GUI
  3. Типы мутационного тестирования
  4. Что такое CodeIgniter?
  5. Инструменты покрытия кода | 6 лучших инструментов покрытия кода
  6. Что такое тест-кейс? | Советы и приемы