Почему фразу "Мы будем писать свой тестовый фреймворк" нужно произносить шепотом
Достаточно интересная тема, на которую я попробую покумекать. Задумайтесь, сколько интересного скрывается под фразой "Мы пишем тестовый фреймворк!". Хм… звучит почти как "мы строим Вавилонскую башню". Хотяяя, ее судьба всем известна.
Вообще само словосочетание "Тестовый фреймворк" звучит красиво. Все джуниоры мечтают о том, чтобы увидеть это чудо света - фреймворк. Все мидлы стремятся к тому, чтобы сделать архитектурный вклад или переворот в нем. Ну и наконец, каждый синьор, прийдя на проект, начинает осуществлять все свои заветные мечты при написании самого прекрасного и полезного фреймворка. Сейчас все, у кого самооценка завышена, должны запищать и закрыть страницу.
На самом же деле надобность написания фреймворков отпала. Сейчас есть куча готовых инструментов, которые можно брать и использовать. Взять тот же Selenide, Serenity или Geb. Зачем писать свою убогую копию, тратить время, если все равно получится хуже. Почему? Потому что, как правило, в скрам командах на создание того самого фреймворка отводят 3 спринта, а это примерно 1,5 месяца. Создать за полтора месяца такую же качественную либу - почти невозможно. Это не реклама - это горькая реальность.
Еще один довод в пользу "не писать свое". Какая основная задача автоматизации тестирования? Правильно - уменьшение затрат времени на ручное тестирование и автоматизация рутинных операций. Основная цель создания тестового фреймворка - это упрощение создания этих самых тестов. Фреймворк должен позволять быстро и легко создавать тесты. Если у вас есть готовый фреймворк и вы пишете меньше чем два UI теста в день - то это момент, над которым нужно подзадуматься.
Ну и последнее. Главный риск при написании своих фреймворков - это код ради кода. Создание проекта, который будет не в качестве помощника основному проекту, а создание монстра, который будет сжирать время и ресурсы.
Но! Я тоже был таким же, читал книги по паттернам, учил языки программирования и писал всякие штуки. Хотя, че писал? Пишу и буду писать, только буду делать это на основе готовых библиотек и качественных решений. Спасибо за внимание.