«Автовідновлювальні тести — це red flag у розробці» 🚩

💡 Усі статті, обговорення, новини про тестування — в одному місці. Приєднуйтесь до QA спільноти!

Побачив у каналі automation-remarks.com статтю від добре відомого в спільноті Cypress інженера Глеба Бахмутова. У своєму дописі він ділиться досить жорсткою позицією щодо автовідновлювальних тестів і прямо називає їх червоним прапорцем у розробці.

Суть його позиції проста. Автoвідновлення маскує реальні зміни в поведінці застосунку. Якщо тест полагодився сам, це не означає, що продукт працює правильно. Це означає, що ми перестали помічати проблеми. Він звертає увагу, що Cypress як компанія активно рухається в бік AI-prompt тестів і автoвідновлення (через cy.prompt), але водночас це створює ілюзію стабільності там, де її може не бути.

Ключова претензія у відсутності людської перевірки. Зелені тести майже ніхто не читає. CI-логи дивляться лише коли все впало. Якщо ШІ переприв’язався до іншої кнопки, поля чи селектора, то це майже гарантовано ніхто не перевірить, чи це справді той самий user-flow. Тест перетворюється на чорну скриньку, яка просто каже вам «ок», а ви йдете далі.

Загальний меседж автора такий:

  • Не оновлювати очікування при зміні фронтенд-коду — це червоний прапорець.
  • Не переглядати зміни в тестах — це червоний прапорець.
  • Не запускати end-to-end тести локально при оновленні коду — це червоний прапорець.
  • Не мати явних, чітких тестів — це червоний прапорець.

Автовідновлення тут не лікує процес, а лише приховує симптоми.

«Автовідновлення тестів — це як лікар, який радить пацієнтам лікуватися самостійно за допомогою ChatGPT», — каже Глеб.

Що думаєте з приводу його думки? Погоджуєтеся чи ні?

👍ПодобаєтьсяСподобалось1
До обраногоВ обраному0
LinkedIn
Ctrl + Enter
Ctrl + Enter

Не погоджуюсь. Промпт навряд сильно може починити тест крім ситуації коли помінявся клас локатора. А отримувати false-negative тести і через них затримувати реліз критичного функціоналу теж не ок. Як і мікроменеджмент локаторів

Але є реальна проблема яку він озвучив — некритичність до пройдених тестів. І цю проблему якраз теж має рішати АІ — аналіз коду+трейсів+кроків+коду і пошук false-positive тестів. Людина не перегляне всі passed тести, а от AI може.

І ми якраз розробляємо такого агента в Testomat.io

Щодо автовідновлення тестів, то це може бути не тільки АІ. Наприклад, у вас непомітно відвалився асинхронний network request на початку тесту, то ви можете написати правило яке дозволить тесту відновитись і перезапустити його.

Саме така більш загальна концепція автовідновлення існує в фреймворку CodeceptJS:
codecept.io/...​heal.html#writing-recipes

Згоден. Це застосунок повинен обробляти відмови, а не тести, тобто кінцевий користувач.

Підписатись на коментарі