Тестирование ветвей – это тип тестирования “белого ящика”, который используется для проверки всех возможных ветвей в графе потока управления программы. Во время этого тестирования каждая ветвь в коде выполняется хотя бы один раз.
Друзья, поддержите нас вступлением в наш телеграм канал QaRocks. Там много туторилов, задач по автоматизации и книг по QA.
Зачем нужно тестирование ветвей?
Тестирование ветвей необходимо потому, что:
- Оно гарантирует, что ни одна ветвь в коде не приведет к аномальному поведению программы.
- Оно обеспечивает проверку всех веток кода.
- Оно максимально увеличивает тестовое покрытие кода программы.
Расчет тестирования ветвей
Тестирование ветвей программы осуществляется путем вычисления метрики, называемой покрытие ветвей. Покрытие ветвей – это отношение количества покрытых ветвей к их общему количеству. Это значение рассчитывается по следующей формуле:
Пример
Рассмотрим приведенный ниже фрагмент кода, который представляет собой простую программу для нахождения максимума двух чисел:
int a = 2; int b = 5; if(a>b){ cout<<"a is max"; }else{ cout<<"b is max"; }
Граф потока управления
Граф потока управления приведенного выше кода будет выглядеть следующим образом:
Тестирование ветвей
Ветви
Ветви в приведенном выше графе потока управления – это A, B, C, D, E, F и G.
Покрытие ветвей
Для максимального покрытия ветвей берем путь:
Путь 1 = 1A-2B-3C-4D-5F-7
- Покрытые ветви = A, B, C, D, F
- Непокрытые ветви = E, G
Покрытие ветвей для Пути 1 будет следующим:
Покрытие ветвей = (количество охваченных ветвей / общее количество ветвей) x 100
Покрытие ветвей = (5 / 7) x 100
Покрытие ветвей = 71%
Ветви E и G в Пути 1 не охвачены. Чтобы покрыть ветви их, мы выбираем путь:
Путь 2 = 1A-2B-3C-4E-6G-7
- Покрытые ветви = A, B, C, E, G
- Непокрытые ветви = D, F
Покрытие ветвей Пути 2 будет следующим:
Охват ветвей = (количество охваченных ветвей / общее количество ветвей) x 100
Покрытие ветвей = (5 / 7) x 100
Покрытие ветвей = 71%
Для 100% покрытия ветвей мы объединяем оба пути, Путь 1 и Путь 2. Финальное тестирование ветвей приведенного выше графа потока управления становится таким:
- Путь 1 = 1A-2B-3C-4D-5F-7
- Путь 2 = 1A-2B-3C-4E-6G-7
Перевод статьи Kainat Asif «What is branch testing?».
Пингбэк: Большой учебник по тестированию