«Автовідновлювальні тести — це red flag у розробці» 🚩
Побачив у каналі automation-remarks.com статтю від добре відомого в спільноті Cypress інженера Глеба Бахмутова. У своєму дописі він ділиться досить жорсткою позицією щодо автовідновлювальних тестів і прямо називає їх червоним прапорцем у розробці.
Суть його позиції проста. Автoвідновлення маскує реальні зміни в поведінці застосунку. Якщо тест полагодився сам, це не означає, що продукт працює правильно. Це означає, що ми перестали помічати проблеми. Він звертає увагу, що Cypress як компанія активно рухається в бік AI-prompt тестів і автoвідновлення (через cy.prompt), але водночас це створює ілюзію стабільності там, де її може не бути.
Ключова претензія у відсутності людської перевірки. Зелені тести майже ніхто не читає.
Загальний меседж автора такий:
- Не оновлювати очікування при зміні фронтенд-коду — це червоний прапорець.
- Не переглядати зміни в тестах — це червоний прапорець.
- Не запускати end-to-end тести локально при оновленні коду — це червоний прапорець.
- Не мати явних, чітких тестів — це червоний прапорець.
Автовідновлення тут не лікує процес, а лише приховує симптоми.
«Автовідновлення тестів — це як лікар, який радить пацієнтам лікуватися самостійно за допомогою ChatGPT», — каже Глеб.
Що думаєте з приводу його думки? Погоджуєтеся чи ні?
2 коментарі
Додати коментар Підписатись на коментаріВідписатись від коментарівНе погоджуюсь. Промпт навряд сильно може починити тест крім ситуації коли помінявся клас локатора. А отримувати false-negative тести і через них затримувати реліз критичного функціоналу теж не ок. Як і мікроменеджмент локаторів
Але є реальна проблема яку він озвучив — некритичність до пройдених тестів. І цю проблему якраз теж має рішати АІ — аналіз коду+трейсів+кроків+коду і пошук false-positive тестів. Людина не перегляне всі passed тести, а от AI може.
І ми якраз розробляємо такого агента в Testomat.io
Щодо автовідновлення тестів, то це може бути не тільки АІ. Наприклад, у вас непомітно відвалився асинхронний network request на початку тесту, то ви можете написати правило яке дозволить тесту відновитись і перезапустити його.
Саме така більш загальна концепція автовідновлення існує в фреймворку CodeceptJS:
codecept.io/...heal.html#writing-recipes
Згоден. Це застосунок повинен обробляти відмови, а не тести, тобто кінцевий користувач.