В чем разница между Black Box, White Box и Gray Box тестированием?

«В чем разница между Black Box, White Box и Gray Box тестированием?» — вопрос из категории Основы тестирования, который задают на 10% собеседований QA Тестировщик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Классификация по уровню доступа тестировщика к внутреннему устройству тестируемой системы (SUT).

Метод Знание внутренностей Объект тестирования Примеры
Black Box (черный ящик) Нет доступа к коду или архитектуре. Внешнее поведение, функциональность, интерфейсы (UI, API). • Функциональное тестирование
• Приемочное тестирование (UAT)
• Тестирование API по спецификации.
White Box (прозрачный ящик) Полный доступ к коду, архитектуре, БД. Внутренняя структура, пути выполнения, покрытие кода. • Модульное тестирование (Unit)
• Интеграционное тестирование
• Анализ покрытия кода (code coverage).
```python

White-box тест: знаем реализацию функции

def test_factorial():

Мы знаем, что функция использует рекурсию

assert factorial(5) == 120

| **Gray Box (серый ящик)** | Частичное знание (например, схема БД, диаграммы компонентов). | Комбинация внешнего поведения с учетом известной внутренней структуры. | • Тестирование интеграции с БД (знаем схему таблиц).<br>• Penetration-тестирование с известной архитектурой.<br>• Тестирование цепочек вызовов между модулями. |

**Выбор метода** зависит от цели: Black Box — что система делает, White Box — как она это делает, Gray Box — компромисс между ними.