Тестирование методом белого ящика

White-box testing / Glass-box testing

White cat inside of a box

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

Противоположность ему — «тестирование методом чёрного ящика», при котором тестировщик имеет доступ только к внешней оболочке — интерфейсу приложения.

Пример внутренней логики работы приложения

Сервис в зависимости от переданного значения параметра taste (вкус) возвращает тот или иной список конфет.

Исходный псевдокод приложения
[] candies(taste) {
    если taste равен MINT игнорируя регистр {
        тогда вернем ответ ["Космическая свежесть","Мятная туманность"]
    }
    иначе если taste равен CITRUS игнорируя регистр {
        тогда вернем ответ ["Взрывная Комета"]
    }
    иначе вернем ответ ["Вселенская Гармония"]
}

Квадратные скобки [ ] обозначают массив однотипных данных, в нашем случае — список названий конфет.

Техники тестирования методом белого ящика

Самые распространённые техники тестирования методом белого ящика:

  • Тестирование условий (Condition Testing): проверяет различные комбинации и состояния условных операторов.
  • Тестирование путей (Path Testing): техника направлена на проверку всех возможных путей выполнения в программе.
  • Тестирование покрытия кода (Code Coverage Testing): мы уже сталкивались с понятием «покрытие кода» при знакомстве с юнит тестированием.

Тестирование условий

Condition testing

Для наглядности составим блок-схему на основании логики, описанной в исходном псевдокоде.

если (if), иначе если (else if) и иначе (else) — это операторы условий.

Каждое условие (MINT, CITRUS) может быть истинным (да) или ложным (нет) — это возможные состояния условия.

Переход к проверке условия CITRUS происходит только в случае, если состояние условия MINT — ложное (нет).

В таблицу внесем все возможные комбинации состояний условий.

Это и есть проверки, которые необходимо произвести при тестировании методом условий.

Condition testing block schema
Проверка Условие MINT Условие CITRUS
1 да
2 нет да
3 нет нет
Задача
Задача доступна премиум пользователям!

ВВЕДЕНИЕ

БАЗОВЫЕ ЗНАНИЯ

УРОВНИ ТЕСТИРОВАНИЯ

UI ТЕСТИРОВАНИЕ

МЕТОДЫ ТЕСТИРОВАНИЯ

ТЕСТОВАЯ ДОКУМЕНТАЦИЯ

АУТЕНТИФИКАЦИЯ И АВТОРИЗАЦИЯ

POSTMAN

БАЗЫ ДАННЫХ

ТЕСТИРОВАНИЕ РЕЛИЗА

АНАЛИЗ РАБОТЫ ПРИЛОЖЕНИЯ

ПОДГОТОВКА К СОБЕСЕДОВАНИЮ

Как составить резюме Топ вопросов Собеседование