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

cat-in-white-box

«Тестирование методом белого ящика» (white-box testing) или «тестирование методом стеклянного ящика» (glass box testing) может быть проведено в случае, если мы обладаем знаниями о внутреннем устройстве системы.

Противоположность ему — «тестирование методом чёрного ящика» (black-box testing), при котором мы имеем доступ только к внешней оболочке.


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

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

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

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

Блок-схема, составленная на основании псевдокода
candy-taste-block-schema

Блок-схема


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

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

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