Ответ
Классификация по уровню доступа тестировщика к внутреннему устройству тестируемой системы (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 — компромисс между ними.