Определение: Метод тестирования, при котором проверяется функциональность системы без знания ее внутреннего устройства и реализации.
Характеристики:
Техники:
Пример:
# Тест для функции входа без знания реализации
def test_login_blackbox():
result = login_page.authenticate("valid_user", "correct_pass")
assert result.is_successful() == True
Плюсы:
✅ Быстрое выполнение
✅ Тестирует с позиции конечного пользователя
✅ Не зависит от изменений реализации
Минусы:
❌ Может пропустить внутренние ошибки
❌ Ограниченное покрытие кода
Определение: Метод тестирования с полным знанием внутренней структуры и реализации системы.
Характеристики:
Техники:
Пример:
// Юнит-тест с знанием реализации
@Test
public void testCalculateDiscount_WhiteBox() {
Customer premium = new Customer(PREMIUM);
assertEquals(20, premium.calculateDiscount()); // Знаем что для PREMIUM скидка 20%
}
Плюсы:
✅ Выявляет скрытые дефекты
✅ Обеспечивает высокое покрытие
✅ Позволяет оптимизировать код
Минусы:
❌ Требует экспертизы кода
❌ Времязатратный процесс
Определение: Гибридный подход, сочетающий элементы black box и white box тестирования.
Характеристики:
Техники:
Пример:
// Тест API с частичным знанием внутренней структуры
describe('Order API GreyBox', () => {
it('should process order with known status flow', async () => {
const res = await api.post('/orders', testData);
expect(res.status).toFollowSequence(['created', 'processed', 'shipped']);
});
});
Плюсы:
✅ Баланс между глубиной и скоростью
✅ Эффективен для интеграционного тестирования
✅ Меньше ложных срабатываний чем black box
Минусы:
❌ Требует ограниченных знаний кода
❌ Сложнее чем pure black box
Критерий | Black Box | Grey Box | White Box |
---|---|---|---|
Знание кода | Нет | Частичное | Полное |
Уровень | Системный | Интеграционный | Юнит/Компонентный |
Навыки тестировщика | Функциональные | Технические + функциональные | Разработческие |
Покрытие | По требованиям | Частичное кода | Полное кода |
Пример | UI тесты | API тесты | Юнит-тесты |
Black Box - "внешнее" тестирование без знания кода:
White Box - глубокий анализ реализации:
Grey Box - оптимальный баланс:
Выбор метода зависит от: