← Назад ко всем вопросам

Что такое coverage и какие виды покрытия бывают (line/branch/function)?

1️⃣ Как кратко ответить

Coverage — это метрика, показывающая, какая часть кода была выполнена во время тестирования. Существуют три основных вида покрытия: line coverage (покрытие строк), branch coverage (покрытие ветвей) и function coverage (покрытие функций).

2️⃣ Подробное объяснение темы

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

Виды покрытия

  1. Line Coverage (Покрытие строк)

    Line coverage измеряет, сколько строк кода было выполнено во время тестирования. Если строка кода была выполнена хотя бы один раз, она считается покрытой.

    Пример:

    function add(a, b) {
        return a + b; // Эта строка должна быть выполнена, чтобы считаться покрытой
    }
    ​
    add(2, 3); // Вызов функции, который приводит к выполнению строки
    

    В этом примере, если тест вызывает функцию add, строка return a + b; будет покрыта.

  2. Branch Coverage (Покрытие ветвей)

    Branch coverage измеряет, сколько из возможных ветвей (путей выполнения) в коде было выполнено. Это особенно важно для конструкций, содержащих условные операторы, такие как if, else, switch.

    Пример:

    function checkNumber(num) {
        if (num > 0) {
            return 'positive';
        } else {
            return 'non-positive';
        }
    }
    ​
    checkNumber(5);  // Покрывает ветвь, где num > 0
    checkNumber(-3); // Покрывает ветвь, где num <= 0
    

    Здесь, чтобы достичь полного покрытия ветвей, тесты должны проверять оба условия: когда num больше 0 и когда num меньше или равно 0.

  3. Function Coverage (Покрытие функций)

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

    Пример:

    function greet() {
        console.log('Hello, world!');
    }
    ​
    greet(); // Вызов функции, который приводит к её покрытию
    

    В этом примере, вызов функции greet обеспечивает её покрытие.

Зачем это нужно

Покрытие кода помогает разработчикам:

  • Обнаруживать пробелы в тестировании: Если часть кода не покрыта тестами, это может указывать на потенциальные ошибки или недоработки.
  • Улучшать качество кода: Высокий уровень покрытия кода обычно свидетельствует о более надежном и протестированном коде.
  • Оптимизировать тестирование: Понимание того, какие части кода не покрыты, позволяет сосредоточить усилия на написании дополнительных тестов для этих областей.

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

Тема: Тестирование
Стадия: Tech

🔒 Подпишись на бусти автора и стань Алигатором, чтобы получить полный доступ к функционалу сайта и отслеживать свой прогресс!

Твои заметки