Phone icon Связаться с нами

QA и тестирование

Что такое E2E-тестирование и сколько таких тестов нужно?

E2E-тестирование (end-to-end, сквозное тестирование) — это проверка полного сценария пользователя на собранной системе. Тест открывает браузер, регистрируется, добавляет товар в корзину, оплачивает и проверяет, что заказ появился. Все части системы при этом работают по-настоящему.

Ценность E2E в том, что он проверяет продукт так, как им пользуется человек, и находит проблемы, которых не видно на других уровнях: кнопка не работает, переадресация сломана, фронтенд несовместим с новой версией API.

Цена — скорость и нестабильность. E2E-тесты выполняются минутами, зависят от среды и падают из-за мелких изменений вёрстки. Поэтому их пишут немного: только для ключевых сценариев, которые приносят деньги, а остальное проверяют более быстрыми тестами.

Где применяется

E2E-тесты пишут для самых важных сценариев: регистрация и вход, оформление и оплата заказа, отправка заявки с сайта, загрузка документа. Именно они показывают, работает ли продукт для пользователя, а не только отдельные его части.

Запускают их в CI на собранной системе, обычно на отдельном стенде с тестовыми данными. Полный набор длится долго, поэтому его часто запускают ночью или перед релизом, а в быстрой проверке оставляют несколько главных сценариев.

Пример

Тест открывает браузер, регистрируется с новым электронным адресом, добавляет товар в корзину, оплачивает тестовой картой и проверяет, что заказ виден в личном кабинете, а письмо-подтверждение пришло на почту.

Частые вопросы

Сколько E2E-тестов нужно писать?

Немного — от нескольких до нескольких десятков на продукт. Они самые медленные и тяжёлые в поддержке: любое изменение интерфейса может их сломать. Большинство проверок делают модульными и интеграционными тестами, а E2E оставляют для критических сценариев.

Почему E2E-тесты часто нестабильны?

Потому что в них задействована вся система: сеть, база, внешние сервисы, скорость отображения интерфейса. Типичные причины — ожидание фиксированного времени вместо нужного события, зависимость от порядка запуска и общие тестовые данные, которые меняют другие тесты.

Чем E2E отличается от интеграционного тестирования?

Интеграционный тест проверяет, как работают вместе несколько компонентов, например сервис и база. E2E проходит весь путь пользователя через интерфейс и затрагивает все части системы. Он ближе к реальности, но дороже и медленнее.

Нужен ли для E2E отдельный тестовый стенд?

Да, желательно с собственной базой и предсказуемыми тестовыми данными. На общей среде тесты мешают друг другу: параллельные запуски меняют одни и те же записи, и тогда невозможно понять, настоящая это ошибка или совпадение.

Обучение тестированию в OWU

Освойте профессию QA-инженера на практических курсах с менторами и реальными проектами.

Выбрать курс