Что такое пирамида тестирования?
Пирамида тестирования – модель, описывающая оптимальное соотношение типов тестов: много быстрых unit-тестов внизу, среднее количество интеграционных в середине, и мало медленных E2E-тестов наверху.
Аналогия из жизни: как проверка здоровья. Ежедневная самодиагностика (unit) дёшева и быстра, ежегодная диспансеризация (интеграционная) требует времени, а полное обследование в стационаре (E2E) – дорого и редко.
Пример
/\
/ \ E2E / UI тесты (мало, медленные, хрупкие)
/ \
/------\ Интеграционные тесты (среднее количество)
/ \
/----------\ Unit-тесты (много, быстрые, стабильные)
/____________\
| Уровень | Количество | Скорость | Стоимость поддержки | Что проверяет |
|---|---|---|---|---|
| Unit | Много (70-80%) | Миллисекунды | Низкая | Логика методов |
| Integration | Среднее (15-20%) | Секунды | Средняя | Связки компонентов |
| E2E | Мало (5-10%) | Минуты | Высокая | Весь путь пользователя |
Анти-паттерн – “рожок мороженого”
Перевёрнутая пирамида: много E2E, мало unit-тестов. Результат – медленный CI, хрупкие тесты, долгая обратная связь. Встречается, когда тесты пишутся “сверху вниз” без стратегии.
Ключевые принципы
- Большинство багов ловится unit-тестами – они дешёвые и быстрые
- Интеграционные – для проверки “склейки” компонентов (SQL, HTTP, messaging)
- E2E – только critical path (логин, оплата, основной flow)
Частые ошибки
- Только E2E тесты – медленный CI, хрупкие тесты, сложная отладка
- 0% интеграционных – unit-тесты проходят, но приложение не работает с реальной БД
- Гонка за 100% coverage unit-тестами – тестируются геттеры/сеттеры, реальная логика не покрыта
Как используется в 2026
- Пирамида – ориентир, не догма; в микросервисах доля интеграционных тестов выше
- Contract testing (Spring Cloud Contract, Pact) – дополнение к пирамиде для межсервисных контрактов
На собеседовании: интервьюер ожидает конкретные цифры соотношения (70/20/10) и понимание, почему пирамида, а не “рожок мороженого”. Частая ошибка – не упомянуть стоимость поддержки каждого уровня.