QA и тестирование
Что такое E2E-тестирование и сколько таких тестов нужно?
E2E-тестирование (end-to-end, сквозное тестирование) — это проверка полного сценария пользователя на собранной системе. Тест открывает браузер, регистрируется, добавляет товар в корзину, оплачивает и проверяет, что заказ появился. Все части системы при этом работают по-настоящему.
Ценность E2E в том, что он проверяет продукт так, как им пользуется человек, и находит проблемы, которых не видно на других уровнях: кнопка не работает, переадресация сломана, фронтенд несовместим с новой версией API.
Цена — скорость и нестабильность. E2E-тесты выполняются минутами, зависят от среды и падают из-за мелких изменений вёрстки. Поэтому их пишут немного: только для ключевых сценариев, которые приносят деньги, а остальное проверяют более быстрыми тестами.
Где применяется
E2E-тесты пишут для самых важных сценариев: регистрация и вход, оформление и оплата заказа, отправка заявки с сайта, загрузка документа. Именно они показывают, работает ли продукт для пользователя, а не только отдельные его части.
Запускают их в CI на собранной системе, обычно на отдельном стенде с тестовыми данными. Полный набор длится долго, поэтому его часто запускают ночью или перед релизом, а в быстрой проверке оставляют несколько главных сценариев.
Пример
Тест открывает браузер, регистрируется с новым электронным адресом, добавляет товар в корзину, оплачивает тестовой картой и проверяет, что заказ виден в личном кабинете, а письмо-подтверждение пришло на почту.
Частые вопросы
Сколько E2E-тестов нужно писать?
Немного — от нескольких до нескольких десятков на продукт. Они самые медленные и тяжёлые в поддержке: любое изменение интерфейса может их сломать. Большинство проверок делают модульными и интеграционными тестами, а E2E оставляют для критических сценариев.
Почему E2E-тесты часто нестабильны?
Потому что в них задействована вся система: сеть, база, внешние сервисы, скорость отображения интерфейса. Типичные причины — ожидание фиксированного времени вместо нужного события, зависимость от порядка запуска и общие тестовые данные, которые меняют другие тесты.
Чем E2E отличается от интеграционного тестирования?
Интеграционный тест проверяет, как работают вместе несколько компонентов, например сервис и база. E2E проходит весь путь пользователя через интерфейс и затрагивает все части системы. Он ближе к реальности, но дороже и медленнее.
Нужен ли для E2E отдельный тестовый стенд?
Да, желательно с собственной базой и предсказуемыми тестовыми данными. На общей среде тесты мешают друг другу: параллельные запуски меняют одни и те же записи, и тогда невозможно понять, настоящая это ошибка или совпадение.
Обучение тестированию в OWU
Освойте профессию QA-инженера на практических курсах с менторами и реальными проектами.
Выбрать курс