×

Кар’єра автоматизатора — досвід, секрети та поради при пошуку роботи

Мене звати Остап, я компетенс менеджер по автоматизації в компанії ELEKS. Впродовж останнього року експерти нашої компанії провели велику кількість інтерв’ю на позицію Test Automation Engineer , та здобули багато досвіду, інформації, та загалом бачення ринку автоматизації та трендів — всім цим ми б хотіли поділитись з вами. Це може бути корисним для інженерів, які розвиваються в напрямку автоматизації тестування програмного забезпечення. Вся інформація в цій статті зібрана за останній рік (2019) і є актуальною саме для нашої компанії. На ринку картина може дещо відрізнятися від досвіду ELEKS, але в цілому, думаю, тренди схожі.

Перед детальним аналізом вакансій та технологій коротко опишу, що мається на увазі під словом автоматизатор: це інженер, який пише скрипти та утиліти для перевірки програмного забезпечення на наявність помилок. В обов’язки автоматизатора також входить: написання звітів, надання інформації по результатах виконання регрешин тестів, інтеграція тестів з CI/CD, автоматизація різних процесів на проекті — від генерації тестових даних до написання допоміжних утиліт і ще багато іншого.

Кого ми шукали?

Разом з відділом рекрутингу ми проаналізували відкриті вакансії за останніх 12 місяців та вивели певну статистику. Вона показала нам, що в компанії ELEKS був попит на автоматизаторів, які працюють з наступними мовами програмування:

З даного графіку бачимо, що найчастіше ми шукали C# автоматизаторів, але ця статистика пов’язана з розширенням двох існуючих в компанії проектів і в цілому не відображає тенденції на ринку. Якщо відкинути ці проекти, то на першому місці були б Java Script та Java, що в цілому більш наближено до ситуації на ринку (за рeйтингом DOU мови програмування JS та Java були найпопулярнішими в 2019).

Наразі в нас відкрито більше 15 вакансій для автоматизаторів різного рівня та технологій, а саме Python, C#, JS, Java (на час виходу статті ця цифра буде відрізнятись).

Детальніше про стек технологій

Якщо говорити про популярність тих чи інших мов програмування для автоматизації в нас в компанії, то за останній рік фокус змістився на C# та JS. Ще 2-3 роки тому безумовним лідером серед мов програмування була Java, більшість курсів при великих компаніях готували (та і зараз готують) Java автоматизаторів. Компанія Eleks, керуючись трендами та потребами ринку, також змістила фокус — ми почали готувати JS автоматизаторів ще минулого року, а також плануємо запустити академію з підготовки C# автоматизаторів в 2020 році. Ситуація з Java Script зрозуміла — стрімкий ріст популярності JS для розробки і відповідно кількість проектів де і Front-end, і Back-End пишуть на js/typescript невпинно росте кілька років поспіль, відповідно, коли всі працюють в одному стеку технологій, то це мінімізує затрати по налаштуванні та підтримці середовища розробки та тестування. Також розробники з часом можуть запускати та підтримувати автотести, які написані на знайомій мові програмування.

З C# зовсім інша справа. Цю мову доцільно вибирати у випадку інтеграції з сервісами, технологіями та продуктами від Microsoft — Devops Azure (раніше це були Team Foundation Server та Visual Studio Team System).

Також вибираємо С#, якщо потрібно тестувати аплікації за допомогою фреймворку Ranorex, оскільки підтримки інших мов у ньому немає. Тестування десктопних аплікацій, які базуються на UI фрейморку від Microsoft WPF, також переважно відбуваєтсья з використанням C#.

Переважна більшість проектів, на які ми шукаємо автоматизаторів, це фінансова сфера. На таких проектах автоматизація показує високу окупність та доцільність. Це тестування великих об’ємів даних, перевірка комплексних сценаріїв, які вручну дуже довго і проблемно протестувати. Також є проекти пов’язані з медициною, логістикою, безпекою, платформами для навчання, тощо.

Розподіл вакансій за платформами, які потрібно тестувати

В першу чергу нам потрібні автоматизатори, які вміють тестувати UI (Front End) та Web Services (Back End).

Для тестування Web UI в більшості випадків використовуємо Selenium WebDriver, Protractor, webdriver.io або фреймворки-обгортки навколо нього: Atata, Selenide тощо.

Mobile UI — тестуємо за допомогою Appium, цей інструмент вміє працювати як з Android, так і з iOS мобільними пристроями.
Desktop UI ми тестуємо за допомогою Ranorex або Windows Application Driver, використовували також Robot Framework + UIAutomation.

На що звертаємо увагу на співбесідах, та які речі позитивно впливають на загальну оцінку кандидата

  • Досвід в manual testing. Для автоматизаторів він не є критичним, але добре якщо є. Знання принципів тестування, технік тест дизайну (особливо pair-wise) та підходів до тестування допомагає значно ефективніше вибирати що і як автоматизовувати. Також бекграунд в manual testing дозволяє знаходити спільну мову з клієнтом, пропонувати що варто автоматизовувати, а що ні.
  • Досвід в automation testing. Оскільки в основному проекти пов’язані з тестуванням UI та Web services, то перевіряємо в першу чергу саме такі навики. Досвід у Performance / Security тестуванні не обов’язковий, але це безумовно є перевагою.
  • Які мови програмування / технології інженер знає та з якими готовий працювати.
  • Дуже часто кандидати надають перевагу лише одній мові програмування, що заважає розвиватись в автоматизації. Деколи доцільніше перейти на іншу технологію, яка краще підходить для тих чи інших задач (наприклад: JS для Angular, C# для Microsoft stack, ...)
  • Вміння працювати хоча б на 2 мовах програмуваннях є суттєвою перевагою таких кандидатів. Цінуємо готовність працювати з різними технологіями, бажання вчитися.
  • Навички комунікації та вміння обгрунтувати і донести свою думку. Часто виникали випадки,коли кандидат технічно був сильним, але через невміння комунікувати і надавати зворотній зв’язок ставили автоматизацію під загрозу або навіть приводили до припинення співпраці. Тому хороша комунікація — це теж великий плюс.
  • Володіння англійською мовою на розмовному рівні, вміння проходити інтерв’ю з замовниками
  • Розуміння та використання технічної термінології
  • Наявність сертифікацій. Тут питання неоднозначне, але, з нашого досвіду, кандидати з сертифікаціями зазвичай краще орієнтуються в термінології, підходах до тестування, з ними простіше порозумітись. Серед автоматизаторів компанії ELEKS досить популярними є 3 сертифікації: ISQTB Foundation Level, ISQTB Advanced Level Test Automation та A4Q Selenium Tester Foundation.
  • Досвід написання та використання тест фреймворків. Для проектів, які починаємо «з нуля» є важливим досвід написання, розробки фреймворку, розуміння з архітектурної точки зору як їх будувати. Не завжди доцільно писати свій фреймворк на проекті, але важливо мати цей досвід, щоб в разі потреби переробити його під цілі проекту.
  • Досвід у навчанні нових людей в компанії. На цей навик звертаємо особливу увагу, коли плануємо наймати автоматизатора на посаду Middle і вище. Ознакою хорошого спеціаліста є вміння навчити інших та постійно допомагати розвиватися новачкам.

Top 5 gaps, які заважають кандидатам отримати offer:

  • Слабкі знання основ мови програмування (Java core, C# core, JS).
  • Відсутність знань про дизайн патерни, SOLID (для Middle і вище), брак знань про фреймворки та інструменти, які вже є на ринку.
  • Погане розуміння термінології (наприклад BDD, keyword-driven, data-driven, test design techniques).
  • Недостатній рівень володіння англійською мовою, необхідний рівень — Intermediate і вище.
  • Невміння доносити думку та комунікувати з замовником.

Рекомендації та поради автоматизаторам, які хочуть розвиватись та отримати offer

  • Освоїти одну основну мову програмування і додатково ще 1-2 на базовому рівні, щоб за потреби можна було легко перейти на них.
  • Розширювати досвід покриття різних платформ. Окрім Web корисно мати знання/досвід тестування АРІ, Performance, Security, Mobile, Desktop. Якщо немає можливості отримати комерційний досвід на проекті, можна вивчати інструменти, тестуючи невеликі безкоштовні додатки
  • Вивчати фреймворки та інструменти — на ринку є дуже багато безкоштовних і потужних тест фреймворків під більшість потреб. Для економії часу і ресурсів можна вибрати готовий фреймворк і розгорнути автоматизацію на проекті з першого дня, наприклад, для UI автоматизації це можуть бути такі фреймворки: ATATA (C#), Cypress (JS), Selenide (Java).

На цьому ресурсі зібрана і посортована інформація по всіх найвідоміших інструментах та фреймворках для автоматизованого тестування (можна зберегти у закладках).

Як стати автоматизатором без попереднього досвіду роботи?

Вивчити хоча б одну мову програмування, це бажано зробити ще до курсів (про це детальніше в наступному пункті). Знання мови програмування допоможуть краще засвоїти інформацію на курсах, та використовувати ці знання при написанні тестів.

Рекомендуємо наступний список книжок для вивчення мови програмування (книжки з серії «Head First» простіші у сприйнятті і дуже базові, їх можна читати паралельно для кращого розуміння):

По Java:

Bruce Eckel. Thinking in Java
Head First Java, 2nd Edition

JavaScript:

Eloquent JavaScript, 3rd Edition: A Modern Introduction to Programming
Head First JavaScript Programming: A Brain-Friendly Guide

С#:

C# 7.0 in a Nutshell: The Definitive Reference
C# in Depth, 3rd Edition

Python:

Dive Into Python 3
Head First Python: A Brain-Friendly Guide

Пройти курси по автоматизованому тестуванню (3-4 місяці). Більшість великих компаній, серед яких і ELEKS готують автоматизаторів у внутрішніх академіях, а потім наймають їх на комерційні проекти. Весь навчальний матеріал включає найнеобхіднішу інформацію, яка дозволить швидко розпочати роботу після завершення курсів. Викладачі академій, зазвичай, досвідчені та професійні, зацікавлені в працевлаштуванні студентів.

Додатково для себе можна вивчати автоматизоване тестування на таких ресурсах як:

Розвиток інженерів в компанії ELEKS

В компанії Eleks для спеціалістів з тестування створені наступні можливості для розвитку:

  • Короткі курси — по API, performance, security тестуванню, та багато інших. Експерти на регулярній основі проводять практичні курси (workshops), на яких за короткий проміжок часу інженери здобувають навички в найважливіших сферах тестування.
  • Mentorship програми — зараз в навчальному каталозі 26 тем, за якими можна отримати менторську допомогу від колег менторів, ці програми тривають від 1 до 4 місяців. Процедура вибору і запису до ментора автоматизована — все робиться через Jira ticket. Ментор отримує запит на проведення програми і починає співпрацю з людиною, яка створила цей запит. Після завершення програми обов’язково залишаються двосторонні відгуки безпосередньо в тікеті.
  • Також є rotation програма: якщо інженер хоче змінити проект — створює запит, і, спільно з PM та HR менеджером, планується вихід та заміна людини на проекті.
  • Внутрішня система навчання, в якій інженери проходять курси та підготовку до сертифікацій. Корпоративна начальна система, яка базується на Moodle, містить великий каталог тренінгів і навчальних програм, вона фактично покриває всі потреби та напрямки в тестуванні.
  • Корпоративний репозиторій на основі GitLab, де зберігаються наші розробки, тестові фреймворки для популярних технологій.
  • За бажання кожен інженер може долучитись до mentorship програм, ведення курсів, допомагати у розширенні експертизи, підготовки до сертифікацій.

Сподіваюсь, інформація, подана в цій статті дасть змогу краще зрозуміти, які на ринку є можливості для автоматизаторів, що важливо знати та вміти. Якщо ви все ще в пошуках проектів, або зацікавила можливість розвиватись в компанії ELEKS — то запрошуємо ознайомитись з актуальними вакансіями на сайті компанії за посиланням.

👍ПодобаєтьсяСподобалось3
До обраногоВ обраному3
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

лично я с автоматизацией справляюсь и на старом добром PHP.

ATATA

цікаво більше почути про ваш досвід використання. Впеше чую, щоб хтось його юзав.

досить цікавий фреймворк, використовуєтсья досить часто і не тільки в нас, має досить великий набір функціоналу, автоматичиний пошук локаторів, рекомендую спробувати atata.io/getting-started

я його бачив. Саме недавно досліджував.
Цікавий. Ще і український
Просто раніше, не чув, щоб використовували в комерційних цілях

в комерційних цілях використовують точно, навіть Sikuli використовують на комерційних проектах, хоча і важко працювати з image recognition через нестабільність

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