Где искать Джунов QA Автоматизаторов на JS?

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

Привет, ребята.

Вопрос, который внезапно возник.

Просмотрев множество курсов и пообщавшись с тренерами и QA-лидами компаний, оказалось, что джуниоров-автоматизаторов, которые пишут автотесты на Javascript и работают, хотя бы базисно с Protractor — практически нет.

Удивительно, так как направление, само по себе, достаточно перспективно. Учитывая, что Сейчас активно развивается JS со своим React, Angular2 и Node.

Все-таки, подскажите, в каком направлении двигаться? Где можно найти таких самородков?

+ для тренеров и провайдеров курсов рекомендация — включить это в свою программу по автоматизации QA, так как уверен, что запрос со стороны работодателей есть и будет расти в ближайшее время.

👍ПодобаєтьсяСподобалось0
До обраногоВ обраному0
LinkedIn
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter

А я раньше не подозревал как-то, что где-то в Украине нужны автоматизаторы на JS, хоть у Selenium и полно пакетов для разных языков программирования.
Не холивара ради, объясните мне, зачем автоматизатору именно JS? И на какого типа проектах такая необходимость есть, и какая вилка зарплат? И какие задачи стоят перед ним? И откуда такое решение, что именно javascript?

я думаю так кто то сказал и и началось, либо фронтэндищика заставили напистаь пару тестов и тепреь такое требвание)

А какая разница на чём автоматизировать, если это не brainfuck? Не, я конечно понимаю, что что-то проще, что-то лучше для конкретной задачи, но, если мы говорим про веб, то где та принципиальная разница, которая не позволяет js? Я на таком проекте. Доставка и обработка медиа контента. В Киеве на проекте 50+ человек и ещё 3 локации за границами. Всё это добро автоматизируется в большинстве своём на js. И не только UI но и back-end часть тоже. Есть олтдельно взятые задачи, где js ну совсем не очень, тогде на помощь приходят shell и python. Но это редко.

Лично для меня разницы нет.
Просто пытаюсь понять, на сколько это востребованно и популярно — автотестить на жс. Мне кажется, что это большая редкость.
Конечно, язык программирования мало решает, и специалист всегда без сильно большого труда на новый язык перейдёт, но ведь это уже не уровень Джуна, который тут в темке ищут.

Согласен. Перейти на другой язык не большая проблема. У нас иногда автоматизаторы уходят и дальше на дсж в том числе. Точных данных о востребованности у меня нет, хотя и самому интересно ) А джуна, которого в темке ищут, готовы научить делать хорошо на js.

тип проекту: Angular аплікуха, бекенд на Ноді
зп: ~ що і автомейти на інших мовах програмування
задачі: автоматизація виконання тест кейсів
рішення: проект білдиться за допомогою npm і gulp/grunt, зручно сюди впіліть таску на прогон тестів

в результаті виходить так, що весь проект на JS, відповідно писати тести на іншій мові якось не айс.
+ дев тіма за 5 хв розбереться в коді якщо треба буде =)

<joke>
уявіть JS фронтенд дева, який курить Java (абстрактні класи, інтерфейси, енуми...), щоб чекнути чи він поламав функціонал, чи тест полетів через зміну якогось класу в дом моделі =)
</joke>

Курсы есть, специалисты есть. Просто их мало.
Я уже 2 группы студентов по направлению ProtractorJS выпустил
Не сочтите за рекламу.

start-it.com.ua/...g-automation-protractorjs

Здорово! А на сколько успешны оказались группы? Каков процент людей может использовать после курсов это в работе?

Хз. Но лучших курсов я не нашел)

Количество групп — это результаты маркетинга, а не тренера.

Для примера, я когда вёл курсы JS — из примерно 19 человек работу нашло 2, 1 перешёл с вёрстки на жс, и 2-3 просто помогло чуток в работе.

Собственно, начал знакомиться с автоматизацией с JS, будучи просто QA на SPA проекте, начал автоматизировать в Nightwatch.js и вообще знакомство с ООП и понимание именно через него)

Работу поменять не хотите? ;)

Мы тут жалуемся, что мало хороши js автоматизаторов, которых хотелось бы взять на работу, а вы уже и с опытом, вроде как джун написано. Вот и спрашиваю )

я бы с радостью, но живу в Днепре, тут спрос > предложения, поэтому трудно устроиться!)
Не знаю почему так хейтят JS, за Реактом будущее веба, имхо)

Обычно, имхо, его не любят, потому что не знают, а не знают, потому что знать не хотят ) Ибо отличается он очень сильно по логике от других языков. Из коробки у него мало что есть, всё приходится добивать npm модулями. А это отдельный головняк, ибо туда кто что хочет, то и коммитит и в итоге большой не всегда хорошо работающий код, от которого зависит твоё приложение. А дебажить его вообще зло.

Всем хочется красивый динамический контент, поэтому приходиться изощряться) по поводу модульности я согласен, там черт ногу сломит, но прогресс не стоит на месте, все развивается и вон как ES6 прибавил. Знаете, мне просто не с чем сравнивать, поэтому я пишу свою точку зрения, планирую изучать питон, возможно после у меня поменяется отношение, ибо слышал хорошие отзывы)

Никто ж не спорит, что js делает хорошие вещи в вэбе, даются они только не легко ) И питон — очень хороший язык ) Я начинал с питона, а щас на js по воле случая. ES6 добавил сахара и несколько новых возможностей, но суть от этого не поменялась. Те же самые классы, как по мне, могут вызвать трудности у людей, которые не разобрались с прототипным наследованием. Ибо классы в js — это не те классы, которые привыкли видеть люди в других языках.

Между js и python или классами в js и других языках?

между классами в js и в других языках

В других яхыках тоже прототипное наследование, Object.prototype, __proto__ и всё остальное? Я не много языков знаю...

Нет, но прям уж большой разницы я в этом не вижу. Хотя да, поначалу было трудно понять прототипное наследование.

Здравствуйте, столкнулся сейчас с тем что мне тоже придется переходить на библиотеку Nightwatch, не подскажите пожалуйста как джуну разобраться с ней, источники полезные

automated-testing.info — там много интересующихся темой.

P.S: из моего скромного опыта автоматизации в 3 года — я встречал людей, которые начинали автоматизацию с шарпа, джавы, руби, питона, но не встречал ни одного, кто начинал бы с джаваскрипта.

вот мы и встретились)

так в чому проблема?
1. берете джуна автоматизатора з будь-якої мови (головне щоб шарив webdriver i PageObject патерн)
2. вчите його резолвити проміси
3. ...
4. PROFIT

з власного досвіду:
з Java+Selenium на JS+Protractor перехід зайняв 1 тиждень (20 сек після того як зрозумів, навіщо писати element.getText().then(function(text){...}))

а в загальному, все стане на свої круга десь за місяць, коли повністью відстреляться ноги а мозок вивернеться на виворіт в сторону JS з його замутами =)

Может быть проблема не только в малой распространенности JS и Protractor, но и в не очень хорошем процессе отбора:
Я когда-то отправлял резюме на позицию в TemplateMonster, мне позвонил HR, не помню 100% достоверно имя, но по-моему это был Артур.
Так вот, hr-интервью состояло из неадекватных вопросов типа: «Как Вы думаете, почему люди меняют работу?», «Что по Вашему мнению сотрудникам важно в работе?», «Чем сотрудники могут быть недовольны?» «Почему у людей могут возникать конфликты на работе?» и такие все вопросы, все скользкие и все от третьего лица. Это грязный психологический прием нацеленный на то, что кандидат, забывшись и отвечая как бы за других, скажет что-то про себя, чего бы на прямой и без подвохов сформулированный вопрос не сказал бы.
И даже в конце интервью у меня не было возможности узнать интересующие меня детали по позиции.
Я поэтому и запомнил эту компанию, из-за из ряда вон выходящего hr-интервью, даже по украинским меркам это выделялось.
Так что на дальнейшие звонки TemplateMonster я не отвечал. Вряд ли даже интерн, не то, что джун, захочет такое, разве что совсем не будет других вариантов, мало ли, вдруг там у них и в работе что-то такое практикуют...

Еще есть мнение, что формулировку Strong Junior на самом деле понимать надо как «мидл за еду», что тоже объяснит низкое кол-во желающих.

P.S.: А так вообще, если джунов на данной технологии нет, то можно искать с других технологий тех, кому интересны эти.

Леонид, здравствуйте.
Да, верно, мы общались с Вами около полугода назад.

Для меня важно, при приеме на работу, понять внутреннюю мотивацию человека, что им движет, чего от него в перспективе можно ожидать, и насколько мы, как Компания, сможем оправдать все его ожидания. Полученные ответы на данные вопросы дают возможность узнать это. Хотя, я думаю, Вы и так уже все знаете, поскольку после нашего с Вами интервью, я вижу, Вы неплохо подковали себя в области проективных вопросов. Жаль, правда, что Вы считаете это

неадекватным, грязным психологическим приемом
.

И прошу Вас, Леонид, не привирать для сгущения красок, так как для меня всегда важно выслушать интересующие вопросы кандидатов, которые могут появиться у них по ходу диалога.
(Кстати, сами вопросы, тоже, многое могут рассказать о мотивации человека). И для этого я выделяю отдельное время в разговоре.

Леонид, по поводу «миддла за еду» — тоже, к сожалению, не верно, так как условные уровни у каждой компании — свои. И поверьте, сотрудники, успешно прошедшие отбор и попавшие к нам в Компанию, очень довольны всеми условиями, которые та им предоставляет.

А на наши звонки Вы не отвечали, Леонид, наверное, потому, что мы Вам не звонили, поскольку договорились изначально, что я наберу Вас и расскажу о дальнейших действиях, если предварительно всё ок.

С уважением,
Артур

А по какой формуле считается успех прохождения интервью, которое определяет внутреннюю мотивацию человека?
А что происходит после найма? Как вы поддерживаете мотивацию? А как вы «зажигаете» своих сотрудников вновь?
А какая ваша роль в жизни сотрудника после этого первого собеседования? А после найма?

Можно и по-честному ответить на любые вопросы — на любой вопрос можно найти честный ответ — про конфликты, работу и так далее, конечно если сталкивался с этим лично — покажет багаж софт-скиллового опыта.

Можно ответить честно что на прямой, что на косвенный вопрос. Я собственно и не сказал ничего такого в том интервью, чего бы честно не ответил на прямой вопрос.
Однако, интервью не должно состоять полностью из вопросов про негативные личные качества кандидата, на моем опыте в Украине ни на одной нормальной позиции не задавали негативных вопросов, ни одного за все стадии отбора, в европах вообще не сталкивался.
На любом нормальном интервью мотивацию кандидата выясняют прямым вопросом в стиле: «Расскажите, что для Вас важно, какую работу Вы сейчас ищите?»
Использование различных уловок в интервью вообще не приемлемо, не знаю, может быть так и получиться что-то выяснить о «внутренней мотивации», но это является и воспринимается как попытка развести, обмануть, чтобы получить информацию. Еще не начал работать, а уже хотят развести.

Та же проблема. Мы не привязываемся к языку. Готовы брать адекватно человека с другим языком и учить. Автоматизатора с нормальным для джуна уровнем джаваскрипта днём с огнём не сыщешь.

Добрый день, я начинающий JS, PHP разработчик (front & back end), есть 0.5 года коммерческого опыта и один запущенный проект(на 100% сделанный мной): electric.ad.ua. Я работаю с JavaScript, PHP5, Yii2, MySql, html, CSS, bootstrap, Git, etc. Меня интересует QA автоматизация, если вас это заинтересует, — вышлю свое резюме, [email protected]

А какой уровень js нормальный для джуна?

Задачи 6-7 уровня до кодварс должен щёлкать. В нашем случае без привязки к языку + релевантные технологии.

просто не жалейте денег и специалист появится)

Хех, денежные вопросы то не я решаю ) Да и проблема тут не в деньгах. Кандидаты в основном очень слабые приходят.

А что должно мотивировать кандидата, получающего, допустим 2500 перейти к вам на 2600 ? А на 2800? +10% стоит риска попасть в худшие условия, чем есть сейчас?

А с чего вы решили, что у нас 2600? Я не знаю рейты. Я со своей колокольни констатирую факт, что кандидаты слабые. У вас по-другому? )

эти — просто написал цифры из головы, чтобы показать суть.
Ну вообще да. За большие рейты, в районе 3-5к получилось набрать очень сильных кандидатов в деве (сервер и UI) и тестировании. При этом разработчики и тесты автоматизируют и много чего могут сами, если не хватает времени у тестировщика. Я сам тогда искал, хотя разработчик, т.к. компания крохотная: 15+ разрабов, а моя команда 5+ разрабов. И искать особо не пришлось, выбор был большой, хотя фулстек с хорошим ангуляром — не просто найти. Вот уже год — полёт нормальный. В то же время я предыдущей компании сложно было найти на 1500-1600 синьоров или близких к ним. Текущая команда по качеству кода и решений на 2 головы выше остальных команд в компании. Хотя остальные сидят у клиента, потому у них рейты ещё выше. Но расходы тоже выше, чем у удалёнщиков из СНГ.
От сюда я сделал вывод, что всё упирается в бабло. Хочется себя за руку придержать, мол «не всё», есть исключения.... но нет, боюсь что всё. Так или иначе упирается в бабло. Капитализьм.

у нас не 1500 на сеньёра, конечно, но через пару лет зовите — пойду к вам на 5К )

Не, вы там держитесь, а то здесь мне через пару лет 5К точно не светит )

Организуйте курсы сами. В идеале бесплатные с последующим трудоустройством у вас. Так называемая интернатура.

Создать топик на доу), может отпишуться. Оу уже? )

Зачем вам такое сочетание да ещё и для джуна? Я пробовал использовать JS для написания фреймворка для end-to-end тестов приложения на ангуляре. Неудобно. Ушли от этого.
Вернулись к родному C# + Nunit +ProtractorDotNet (Selenium). Всё отлично работает Основное «за» было: «ну раз ангуляр, то значит асинхронность, а значит нужно JS». Оказалось, что это не так. С ожиданиями ангуляра ProtractorDotNet справляется великолепно.
Во-первых проще поддерживать всем разработчикам, а не только QA (исправил данные, задебажил в знакомой среде, пофиксил. Знаний JS бекенд разарбу нужно минимум), во-вторых вся мощь nunit + resharper + C#. А в-третьих прямая и удобная работа файлами на компе а также с SQL. А при наличии правильной архитектуры можно даже воспользоваться некоторыми слоями из проекта для более быстрого создания данных в базе для тестов. У нас к сожалению дал говно, потому приходится тестовые данные для базы SQL запросами пихать динамически формируемыми, правда.

Кстати, задача не такая уж и сложная, как может показаться. Я, как разработчик, через месяц написал уже базу фреймворка + связка с hiptest, через пол года там куча тестов в т.ч. с angular ui-grid (c ним посложнее). Так что можно просто взять разработчика и он всё автоматизирует.

PS Hiptest не рекомендую. Взяли на свою голову, теперь только время больше тратится на следование его архитектуре.

Автоматизирую тестирование уже на втором подряд проекте с фронтэндом на Ангуляре — могу сказать, что мне даже ProtractorDotNet не нужен, обычного Селениума с его умными ожиданиями хватает с головой. Правда на этих проектах адекватные фронтэндщики и мне легко находить все элементы, допускаю, что на проектах где сложно написать нормальный селектор для элементов эта библиотека может быть полезной. А в целом такое ощущение, что фронтендщики засрали новыми фреймворками свою тему и начали лезть с ними к людям работающим параллельно, предлагая миллион своих чудо фреймворков и там.

Автоматизируете на чём?

На том же, что и Sasha Ko sev, которому я отвечал, только без protractor. Стандартный стэк — C# + Nunit + Selenium web driver или мы о чем-то другом?

Да, о том же. А почему шарп?

Клиент сказал, мы работаем. Вообще на бэке ASP.NET MVC, поэтому шарп, хотя я работал на джавишном проекте, а автотесты на шарпе писались — кто платит, тот и правила устанавливает :)

Автоматизация UI для веб-приложений (не путать с unit) на JS с использованием Protractor/Jasmine/NodeJS/npm + Angular
нетривиальна, и отличается от привычного джентльменского набора
Java/C#/Ruby + Selenium + TestNG/JBehave/Cucumber (далее олд-скул).

Шишек надо набить много, больше, чем с олд-скул, и переход сюда больше вызван желанием опытных автоматизаторов попробовать что-то бесконечно испорченное, извращенное и безотвественное, нежели рациональными причинами.
Фреймфорки, которые приходится писать на всём этом тоже «вещь в себе», и нырять во всё это стоит лишь как следует освоившись с уже привычным стеком для олд-скул.

Джунов, которые будут сами в этом копаться, и для которых это будет первый язык/платформа, скорее всего не найти.
Слишком легко ополоуметь от «я художник, я так вижу» поведения JS/Angular в wannabe синхронных авто-тестах. Потом человека уже не исправить, поэтому начинать надо со строго типизированных языков, которые обвешены контрактами с ног до головы.

Рынком уже востребовано, но только для объективного синьорского уровня.

А у селениума нету драйвера на ноде?

зачем вы пишете тесты для джаваскриптов ? я видел и писал большие (в моем понимании) сайты с канвас и кучей динамических объектов (рисование бизнес процессов с экспортом в триплстор), нигде там не пользовались тесты. куда вы их цепляете ?

Зачем мы пишем тесты:

1) чтобы протестить конкретный модуль — нужно, чтобы методы внутри него делали правильные вещи и отдавали правильные значения, нужно проверить, показывается или не показывается что-то при каких-то условиях

2) чтобы проверить флоу — юзер кликает сюда и переходит на такую-то страницу, там должны показываться какие-то штуки, дальше юзер что-то выбирает и кликает, дальше должна появиться форма, дальше надо проверить, как он ее заполнил, после сабмита нужно редиректнуть на правильный экран — а что, если таких флоу в аппе 2.5 миллиона (тру стори) и периодически некоторые вещи рефакторятся? порефакторил — запустил тесты — ничего не упало — норм порефакторил

3) чтобы протестить бекенд — шлется запрос с такими-то значениями, с бекенда должен прийти json с такими-то штуками внутри и у штук должны быть определенные типы — офигенная вещь, если что-то сломалось на бекенде, то на фронте можно найти это даже быстрее, тут вообще можно свою тулзу для такого написать, которая автоматически гоняет тесты каждые n минут и генерит репорты — очень актуально на больших проектах с бекендом из Индии

Не совсем понятно, что имеется в виду под вопросом «куда их цепляете»... Можно цеплять на классы/айди/тэги/текст внутри тэга, заставлять кликать в определенное место в окне браузера, например.

Я так понимаю, вышеописанный апп рисует какие-то блок-схемы на экране. Тут можно протестить, что все правильно отрисовалось. Можно скормить объект с блок-схемой в тест, отрисовать, а потом курсором попадать на экране в места, где должны быть части блок-схемы и смотреть, что это правильная часть правильного размера, внутри нее правильный текст и по ней можно кликнуть и куда-то перейти/не перейти. Можно проверять, чтобы незалогиненному юзеру/юзеру без прав был дан правильный доступ к правильным вещам и еще много вещей.

О да, без тестов тяжело на слаботипизированых языках. Изменяешь что то и приходится либо молиться что оно не поломает что то еще либо заново вручную тестить. Вот в пхп айдишка даже не скажет об элементарном — если забыл импортировать класс. Потому надо переходить на асп.нет и тайпскрипт(на правах рекламы).

А чем типизированные лушче? Разве что тестов меньше писать. И не нужно проверять типы на входе. Unit test те вообще пишутся для того, чтобы гарантировать, что изменения (расширения, рефакторинг) не сломали всё нафиг.
Правда все на это с успехом кладут с прибором.

Ну так тем и лучше что тестов либо меньше надо писать либо вообще можно не писать что не принесет столько опасности как с слаботипизироваными. Простые синтаксические ошибки айдишка может хрен показать а это уже поломает программу. Я уж не говорю о передаче ложных параметров и подобное. А в типизированном языке кроме того что айдишка работает во много раз лучше так еще компиляция подстраховывает. Кроме того судя по умной книжке «Совершенный код» баг словленый при компиляции стоит намного меньше чем баг словленый даже на стадии тестирования. Плюсы очевидны. Вообще смысла в слабой типизации вообще нет в бекенде да и в фронтенде возможно так же. Слабая типизация имеет только один плюс — быстрое написание кода, но в си шарпе уже ввели нову конструкцию или как оно называется «var» которая автоматически определяет тип по тому что справа вписано. В итоге получаем скорость разработки слаботипизированных и безопасность разработки к примеру джавы. Мне вообще кажется что новый асп.нет кор это революция в инструментах разработки.

П.С. ясно что строгая статическая типизация не спасет от ошибок логики, и тесты наверно кое где обязательно писать, но однозначно повысит уровень безопасности кода.

Звучит как-будто вы компиляцией предлагаете автоматизацию заменить ) Тут где-то шёл разговор за UI. А это дело на плюсах... А JS без тестов нельзя оставлять, ибо ошибка на 4-ой строке 1-ого файла вылезет на 649 строке 4-ого файла и не скажет в чём суть.

Ну оно для программиста, чтобы меньше тупых багов комитить. Оно ни в коем случае не заменяет тестирование. Хотя на малых проектах тестеров то и нет и программисту самому приходится либо писать тесты либо вручную тестить.

Согласен, джысы особенно нельзя оставлять без тестов. Впрочем пхп я бы тоже не оставлял. Но оставляют =)

ещё как можно. :-D ни разу не видел идеального мира...где писали бы юнит тесты для UI.
Говорю с сожалением.

взяти студіка як дева чи КУА і вирощувати ?

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