Selenium или Cypress: Какой фреймворк выбрать для найма?
Вопрос, который на самом деле задают команды
"Должны ли мы нанимать для Selenium или Cypress?" — это неправильный вопрос. Правильный вопрос: "Что выбор фреймворка раскрывает об инженерных способностях?"
Selenium и Cypress тестируют разные вещи по-разному. В контексте найма это различие имеет значение. Один фреймворк покажет вам, понимает ли кандидат архитектуру тестирования. Другой покажет вам, могут ли они написать быстрые, хрупкие тесты, которые работают в демо и ломаются в реальности.
Selenium: распределённый тест
Selenium работает в отдельном процессе от браузера. Тесты — это клиент-сервер. Есть задержка, есть асинхронная работа, есть реальная сложность.
Что раскрывают тесты Selenium при наиме:
- Может ли кандидат справиться с асинхронными операциями (ожидания, тайм-ауты, race conditions)?
- Понимают ли они WebDriver protocol и коммуникацию браузера?
- Могут ли они отладить нестабильный тест — это приложение, сеть или сам тест?
- Знают ли они, как структурировать страницы для тестируемости (идентификация элементов, управление состоянием)?
При оценке: кандидат, который пишет надёжные Selenium тесты — с явными ожиданиями, умными селекторами, логикой очистки — показывает вам, что они понимают реальные ограничения автоматизации браузера. Они не оптимизируют на скорость. Они оптимизируют на надёжность.
Минус: тесты Selenium медленнее писать, медленнее отлаживать, они требуют больше знаний инфраструктуры. Младший разработчик может быстро расстроиться.
Cypress: синхронная иллюзия
Cypress работает in-process, в том же контексте браузера, что и приложение. Нет WebDriver protocol. Нет задержки. Тесты читаются как синхронный, простой JavaScript.
Что раскрывают тесты Cypress при наиме:
- Может ли кандидат написать чистый, читаемый JavaScript?
- Понимают ли они ограничения своего фреймворка (нет кросс-табов, нет нескольких доменов)?
- Могут ли они отладить когда что-то падает (и это произойдёт, иначе, чем Selenium)?
- Знают ли они мнения Cypress и почему они существуют?
При оценке: кандидат, который знает ограничения Cypress и работает в них, показывает вам, что они читают документацию и думают о выборе инструмента. Кандидат, который пытается обойти ограничения Cypress (странные ожидания, polling, перезагрузки страницы), показывает вам, что они борются с инструментом вместо того, чтобы его понимать.
Плюс: тесты быстрее писать. Минус: легко написать тесты, которые выглядят хорошо, но на самом деле хрупкие, потому что Cypress скрывает асинхронную сложность.
Что каждый фреймворк раскрывает об суждениях
Вот где найм становится тонким.
Кандидат, который говорит "я использовал бы Cypress, потому что тесты легче писать" показывает вам, что они оптимизируют на скорость написания. Вероятно, нормально для стартапа, вероятно, плохо для 5-летнего монолита.
Кандидат, который говорит "я использовал бы Selenium, потому что это более реалистично" показывает вам, что они думают об ограничениях продакшена. Но если они выбирают Selenium для простого SPA, они могут быть чрезмерной инженерией.
Кандидат, которого вы хотите, — это тот, кто говорит: "Это зависит от приложения. Cypress для этого внутреннего инструмента, Selenium для кросс-доменного потока оформления заказа, Playwright для всего остального в следующем квартале."
Это суждение. Это тот, кто находит баги и поддерживает наборы тестов.
Какой фреймворк использовать в вашей оценке
Если вы нанимаете кого-то для поддержки наследуемого набора Selenium: используйте Selenium. Это как просить хирурга использовать скальпель, который они будут использовать в ОР.
Если вы нанимаете для современного SPA: Cypress хорош, но задайте уточняющие вопросы об ограничениях. Если они не упоминают "нет кросс-доменов", они не думают критически.
Если вам не важно, какой они знают: используйте тот, который ваша команда знает лучше всего, так что вы можете оценить дизайн теста, а не синтаксис. Или используйте Playwright — это третий вариант, который выигрывает в разговорах о наиме с 2024 года, потому что он честен о том, что он делает.
Паттерн оценки, который работает
Выбор фреймворка имеет меньшее значение, чем то, как они его используют.
Дайте им спецификацию ("Тестируй поток оформления заказа") и позвольте им выбрать. Их выбор раскрывает осведомлённость о контексте. Их реализация раскрывает дисциплину.
Оценивайте по этим критериям:
- Определяют ли они правильный объём (что тестировать, что пропустить)?
- Пишут ли они селекторы, которые выдержат изменения UI?
- Обрабатывают ли они ожидания явно или полагаются на неявную магию?
- Имеют ли они логику setup/teardown или каждый тест хрупкий и изолированный?
- Могут ли они объяснить, почему они выбрали этот подход в этом фреймворке?
Кандидат, который пишет 3 надёжных теста в Selenium, сильнее, чем тот, кто пишет 10 хрупких тестов в Cypress, даже если Cypress — ваш стандарт. Дисциплина важнее, чем инструмент.
Контрпозиция: это все о мышлении тестирования
Некоторые команды утверждают, что фреймворк вообще не имеет значения — что хорошие инженеры QA изучают любой фреймворк за неделю, и найм должен сосредоточиться на стратегии тестирования, а не на синтаксисе.
Это частично верно. Сильный решатель проблем переходит через фреймворки быстро. Но знание фреймворка действительно раскрывает мышление: как они обрабатывают асинхронность, как они структурируют код, борались ли они с ограничениями фреймворка раньше. Это паттерн, который вы хотите видеть.
Правильный подход: не фильтруйте кандидатов по фреймворку. Но оценивайте, как они думают в фреймворке, и спрашивайте, почему они выбрали подход, который выбрали.
На что обратить внимание в оценке автоматизации тестирования
Если вы используете формальную оценку, ищите платформы, которые:
- Позволяют кандидатам выбирать свой фреймворк (Selenium, Cypress, Playwright, WebDriver и т. д.)
- Оценивают по покрытию тестов и качеству кода, а не только по pass/fail
- Сохраняют код, который они пишут, так что вы можете проверить их структуру и комментарии
- Отчитываются о времени выполнения и нестабильности, а не только о том, были ли запущены тесты
Фреймворк — это средство доставки. Реальный сигнал — это то, управляют ли они им хорошо.