Сквозное тестирование

E2E

Что это такое

Сквозной тест ведёт всю систему через настоящий интерфейс и настоящие сервисы — так же, как это делал бы пользователь, — и проверяет, что получился правильный результат. Граница здесь самая внешняя, и ничего не подменяется заглушкой. Модульный тест изолирует одну часть, интеграционный соединяет две настоящие части, а сказать, что собранный продукт вообще работает, может только сквозной.

Почему это важно

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

Что в этом треке

  1. Управление системой как пользователь (01-cs-fundamentals/26-end-to-end-testing/01-driving-the-system-like-a-user) — какие пути стоит покрыть и как взаимодействовать через настоящий интерфейс.
  2. Надёжность сквозных тестов (01-cs-fundamentals/26-end-to-end-testing/02-making-end-to-end-tests-trustworthy) — как убрать нестабильность, подготовить данные и читать отказы, когда они приходят.

Предварительные требования

Что читать дальше

  • Модульное тестирование (01-cs-fundamentals/10-unit-testing) — быстрый слой, который должен нести большую часть покрытия, чтобы этим путям не приходилось.
  • Интеграционное тестирование (01-cs-fundamentals/21-integration-testing) — средний слой: подозрительный стык здесь проверяют без всей системы.
  • Playwright (01-cs-fundamentals/27-playwright) — инструмент автоматизации браузера, которым команды чаще всего и пишут такие тесты.