Ответ
Пирамида тестирования — это концептуальная модель, которая иллюстрирует оптимальное соотношение количества и типов автоматизированных тестов в проекте для достижения баланса между скоростью выполнения, надежностью и стоимостью поддержки.
Уровни пирамиды (снизу вверх):
-
Unit-тесты (Много)
- Что: Тестируют минимальные изолированные единицы кода (функции, методы, классы).
- Цель: Проверить корректность логики. Должны быть быстрыми и стабильными.
- Пример (Python/pytest):
def add(a, b): return a + b
def test_add(): assert add(2, 3) == 5 assert add(-1, 1) == 0
-
Интеграционные тесты (Среднее количество)
- Что: Проверяют взаимодействие нескольких модулей, с базой данных, внешними API или сервисами.
- Цель: Убедиться, что компоненты правильно работают вместе.
-
E2E/UI-тесты (Мало)
- Что: Имитируют действия реального пользователя через интерфейс приложения.
- Цель: Проверить полные пользовательские сценарии. Эти тесты самые медленные, хрупкие и дорогие в поддержке.
Ключевой принцип: Основа (unit-тесты) должна быть самой широкой. Чем выше уровень теста, тем их должно быть меньше. Это позволяет быстро находить и локализовать ошибки: unit-тесты ловят баги в логике, а E2E — проверяют, что система в целом работает как ожидается.