Prog Academy
RU UA
QA та тестування

Що таке E2E тестування і скільки таких тестів потрібно?

E2E (end-to-end) тестування — перевірка повного користувацького сценарію на зібраній системі: тест відкриває браузер, реєструється, додає товар у кошик, оплачує й переконується, що замовлення зʼявилося. Усі компоненти при цьому працюють по-справжньому.

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

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

Де застосовується

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

Запускають їх у конвеєрі CI на зібраній системі, зазвичай на окремому стенді з тестовими даними. Через тривалість прогін повного набору часто виносять на ніч або на етап перед релізом, лишаючи у швидкій перевірці лише кілька ключових маршрутів.

Приклад

Тест відкриває браузер, реєструється з новою адресою пошти, додає товар у кошик, проходить оплату тестовою карткою і перевіряє, що замовлення видно в особистому кабінеті, а лист-підтвердження потрапив у поштову скриньку.

Часті запитання

Скільки E2E-тестів варто писати?

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

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

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

Чим E2E відрізняється від інтеграційного тестування?

Інтеграційний тест перевіряє звʼязку кількох компонентів, наприклад сервіс і базу. E2E проходить увесь шлях цілком з боку користувача, через інтерфейс, і зачіпає всі шари системи одразу. Він ближчий до реальності, але дорожчий і повільніший.

Чи потрібен для E2E окремий стенд?

Так, бажано з власною базою і передбачуваними тестовими даними. Запуск на спільному оточенні призводить до взаємних перешкод: паралельні прогони змінюють ті самі записи, і причину падіння потім неможливо відрізнити від справжнього дефекту.

Повʼязані терміни