Люблю тесты. Особенно интеграционные или авто (те которые в браузере кликают). Запустил — и сидишь смотришь как у тебя все красиво и все работает.

Одна проблема.

Такие тесты всегда сломаны. Всегда, просто всегда. Конечно, поначалу, пока сценариев мало, то все красивое и зелененькое. Но как только продукт становится чуть более сложным чем сайт-визитка с формой контакта, то моментально наступает коллапс. Длительность прохождения сценариев увеличивается экспоненциально, количество мест отказа в распределенной системе и комбинаций сбоев разных подсистем так же растет, в итоге мы имеем по факту тесты которые могут сказать только “не работает вообще ничего” (логин отвалился) или требуют квалифицированного QA для анализа того, что же действительно упало. В 99% случаев падает из-за таймаута/редеплоя/устаревшего сценария/умершего селениума/съеденной памяти на CI-сервере.

Со временем команда привыкает к перманентно сломанным тестам, это становится обычным делом, и никто уже не реагирует на возгласы умирающего дженкинса в слак-канале #tests.

И снова, мне как-то не везло работать в командах, где тесты работали бы надежно и где успешно пройденный e2e тест был бы ежечасной реальностью а не еженедельным исключением. При этом не писать тесты себе дороже — даже в сломанном виде они позволяют хоть как-то гарантировать, что на выпуск идет хоть работающий продукт а не пятисотая на главной. За качество тестов всеми силами борются автоматизаторы и QA но и они проигрывают это сражение и с опущеными знамёнами идут тестировать вручную. А учитывая количество времени, требуемое на поддержку инфраструктуры тестов, менеджмент имеет все меньше желания отдавать половину команды на эти активности и пускает все на самотёк.

В общем как-то все плохо и что с этим делать непонятно. В этом свете забавно выглядят продукты, которые предлагают вам просто писать скрипты на человеческом языке, а дальше этот скрипт будет выполняться ротой бравых ребят из Бангалора, в любых браузерах и на любых окружениях. С детальными отчетами, отличной параллелизацией и почти неограниченным пулом “вычислительных мощностей” 🙂 Осталось только изобрести нейроинтерфейс чтобы скрипты закачивались прямо в мозг.