Разные уровни автотестов нужны потому, что они отвечают на разные вопросы и имеют разную цену. Ошибка многих команд — ждать от одного уровня тестов решения всех проблем сразу.
Unit
Быстрые, дешёвые и локальные проверки логики в изоляции. Хорошо ловят ошибки в коде, но мало говорят о системе целиком.
Service
Проверяют API, сервисы и контракты без UI-шума. Часто дают лучший баланс скорости и полезности для QA.
UI
Проверяют пользовательский интерфейс и базовые интеграции, но уже чувствительны к нестабильности DOM, данных и окружения.
E2E
Покрывают сквозной пользовательский путь через несколько компонентов системы. Очень ценны, но дороги и хрупки, поэтому их должно быть немного и по делу.
Сильная automation-стратегия строится не вокруг одного любимого уровня, а вокруг правильного распределения вопросов по разным уровням проверки.