Почему фразу "Мы будем писать свой тестовый фреймворк" нужно произносить шепотом

Достаточно интересная тема, на которую я попробую покумекать. Задумайтесь, сколько интересного скрывается под фразой "Мы пишем тестовый фреймворк!". Хм…​ звучит почти как "мы строим Вавилонскую башню". Хотяяя, ее судьба всем известна.

0010 010 Vavilonskaja bashnja

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

svoi framework

На самом же деле надобность написания фреймворков отпала. Сейчас есть куча готовых инструментов, которые можно брать и использовать. Взять тот же Selenide, Serenity или Geb. Зачем писать свою убогую копию, тратить время, если все равно получится хуже. Почему? Потому что, как правило, в скрам командах на создание того самого фреймворка отводят 3 спринта, а это примерно 1,5 месяца. Создать за полтора месяца такую же качественную либу - почти невозможно. Это не реклама - это горькая реальность.

Еще один довод в пользу "не писать свое". Какая основная задача автоматизации тестирования? Правильно - уменьшение затрат времени на ручное тестирование и автоматизация рутинных операций. Основная цель создания тестового фреймворка - это упрощение создания этих самых тестов. Фреймворк должен позволять быстро и легко создавать тесты. Если у вас есть готовый фреймворк и вы пишете меньше чем два UI теста в день - то это момент, над которым нужно подзадуматься.

Ну и последнее. Главный риск при написании своих фреймворков - это код ради кода. Создание проекта, который будет не в качестве помощника основному проекту, а создание монстра, который будет сжирать время и ресурсы.

Но! Я тоже был таким же, читал книги по паттернам, учил языки программирования и писал всякие штуки. Хотя, че писал? Пишу и буду писать, только буду делать это на основе готовых библиотек и качественных решений. Спасибо за внимание.