← Назад к вопросам

Что такое разноцветные ящики?

1.0 Junior🔥 251 комментариев
#Теория тестирования#Техники тест-дизайна

Комментарии (1)

🐱
claude-haiku-4.5PrepBro AI26 мар. 2026 г.(ред.)

Ответ сгенерирован нейросетью и может содержать ошибки

Что такое разноцветные ящики

Разноцветные ящики — это подходы к тестированию, которые различаются по степени видимости внутренней структуры приложения. Каждый цвет представляет разный уровень знаний о коде и внутренней логике системы.

Основные типы тестирования

Black Box Testing (Чёрный ящик) Тестер не знает и не смотрит на исходный код приложения. Тестирование основано только на внешнем поведении.

  • Вход: требования, спецификация
  • Выход: работает ли приложение согласно требованиям?
  • Пример: клик на кнопку → появляется форма

Преимущества:

  • Тестер думает как пользователь
  • Не требует знания кода
  • Может выявить проблемы, которые пропустит разработчик

Недостатки:

  • Невозможно протестировать все пути кода
  • Сложнее найти корень проблемы
  • Может быть неэффективно

White Box Testing (Белый ящик / Glass Box) Тестер имеет полный доступ к исходному коду и знает внутреннюю логику приложения. Тестирование фокусируется на путях и ветвлениях кода.

  • Вход: исходный код
  • Выход: все ли пути кода протестированы? Есть ли мёртвый код?
  • Пример: проверить все условия в if/else блоках

Преимущества:

  • Полное покрытие кода
  • Можно тестировать граничные случаи
  • Находит проблемы на уровне кода

Недостатки:

  • Требует знания программирования
  • Пропускает проблемы на уровне требований
  • Дорого в выполнении

Gray Box Testing (Серый ящик) Тестер имеет частичные знания о внутренней структуре. Комбинирует подходы Black и White box.

  • Вход: некоторые знания о коде, API, БД
  • Выход: тестирование функциональности + некоторое тестирование внутренних механизмов
  • Пример: знать структуру БД и API для тестирования интеграции

Преимущества:

  • Баланс между эффективностью и полнотой
  • Находит проблемы в интеграции между компонентами
  • Практичнее для реальных проектов

Недостатки:

  • Требует более глубокого понимания
  • Может быть сложнее в организации

Сравнительная таблица

ХарактеристикаBlack BoxGray BoxWhite Box
Знание кодаНетЧастичноПолное
Кто выполняетQA/ТестерQA + разработчикРазработчик
ПокрытиеНизкоеСреднееВысокое
СкоростьБыстроСреднееМедленно
СтоимостьНизкаяСредняяВысокая
ФокусТребованияИнтеграцияКод

Практические примеры

Black Box: Тестируем форму логина. Знаем только: есть поля email/пароль и кнопка Login. Тестируем:

  • Корректный email + пароль → вход
  • Неправильный пароль → ошибка
  • Пустые поля → ошибка
  • Спецсимволы в email → ошибка или успех?

Gray Box: Знаем, что есть API endpoint /api/auth/login. Тестируем:

  • Отправляем GET вместо POST → ошибка 405
  • Отправляем пустой body → 400 Bad Request
  • Отправляем валидный JSON → 200 с токеном
  • Проверяем, что пароль хэшируется в БД

White Box: Знаем исходный код. Тестируем:

  • Все условия в функции auth (if email.valid(), if password.length() > 8 и т.д.)
  • Граничные случаи (null, undefined, empty string)
  • Exception handling
  • SQL injection в запросе к БД
  • Утечки памяти

Типы тестов по цветам

Black Box:

  • Функциональное тестирование
  • UAT (User Acceptance Testing)
  • Smoke тесты (с пользовательской точки зрения)
  • Compatibility тесты

White Box:

  • Unit тесты
  • Code coverage анализ
  • Security тесты на уровне кода
  • Performance профилирование

Gray Box:

  • Integration тесты
  • API тесты
  • Database тесты
  • System тесты

Значение для QA инженера

Современный QA инженер должен уметь работать со всеми тремя типами:

Black Box — основной навык QA:

  • Тестирование функционала
  • Понимание требований и user stories
  • Написание тест-кейсов

Gray Box — растущий навык:

  • Понимание API и интеграции
  • Знание БД и SQL
  • Использование DevTools
  • Автоматизация на уровне UI + API

White Box — углублённый навык:

  • Знание языков программирования
  • Написание Unit тестов
  • Code review
  • Сложное автоматизированное тестирование

Рекомендуемый подход

Оптимально комбинировать все три подхода:

  1. Black Box для валидации требований
  2. Gray Box для поиска проблем в интеграции
  3. White Box для критичных компонентов

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

Что такое разноцветные ящики? | PrepBro