Gymterview
junior

Что такое пирамида тестирования?

Пирамида тестирования – модель, описывающая оптимальное соотношение типов тестов: много быстрых 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) и понимание, почему пирамида, а не “рожок мороженого”. Частая ошибка – не упомянуть стоимость поддержки каждого уровня.