Хто такий QA Automation Engineer і як ним стати?
Яку мову програмування обрати тестувальнику-автоматизатору? Чому варто частіше змінювати проєкти? І як навчитися професії на співбесідах? Андрій Воловик QA Automation Engineer із 10-річним досвідом у тестуванні ділиться із читачами Anywhere Club інформацією про те, які знання і навички необхідні, щоби стати QA Automation Engineer і побудувати кар’єру в IT.
— Я закінчив політехнічний інститут за спеціальністю радіотехніка. До ІТ працював у сфері телекомунікацій, в продажах та інженером-конструктором. Бажання покращити фінансове становище стимулювало мене змінити сферу діяльності. Помоніторивши ринок вакансій, мене зацікавило тестування, тому що через нього можна швидко залетіти в ІТ. Почав вчити, ходити на курси англійської і готуватися до співбесід. Технічні курси я не відвідував, проте у мене було декілька менторів з досвідом, які допомагали. Моя порада — шукайте собі ментора, — зауважує Андрій, — Через пів року отримав свою першу роботу мануальним тестувальником.
Хто такий QA Automation Engineer?
— QA Automation Engineer (Quality Assurance Automation Engineer) — це спеціаліст, який займається автоматизацією тестування програмного забезпечення. Він використовує різноманітні програмні інструменти та технології для розробки тестових скриптів, виконання автоматизованих тестів та аналізу їхніх результатів.
Обов'язки QA Automation Engineer
— Завдання QA Automation Engineer залежать від проєкту, на якому ти працюєш. В більшості випадків — це робота з web/mobile UI (User Interface), API та базою даних. Зазвичай замовник хоче, щоб UI був покритий автотестами. Це можуть бути end-to-end сценарії, найбільш критичні для бізнесу фічі, або ті сценарії, з якими стикаються юзери кінцевого продукту (наприклад створюють якісь айтеми, щось купують, додають в корзину).
Найчастіше автоматизаторів наймають для:
- Створення автотестів, базуючись на мануальних тест-кейсах чи вимогах;
- Налаштування CI/CD, щоб автотести запускались автоматично чи за необхідністю. Кожен член команди повинен мати змогу запускати тести та переглядати результати (наприклад використовуючи Jenkins чи GitLab);
- Постійного аналізу результатів виконання;
- Аналізу продукту, що тестується та аналізу тестового покриття.
Навіщо загалом потрібні автотести:
- Перший кейс. У нас є продукт з web UI, 10 FE розробників, кожен з яких щоденно щось робить. Для виконання поставлених задач вони створюють окремі бранчі. Коли вони виконали свою роботу, перед тим як це змержити в основну гілку — їм потрібно впевнитися в тому, що вони не зламали вже наявний функціонал. Тому вони можуть створити тестове середовище чи збілдити локально та запустити автотести, в яких будуть детальні звіти з результатами. Або девелопер може попросити автотестера зробити це;
- Другий кейс. У нас є автотести, які запускаються кожного дня за графіком. Двічі, тричі на день. Девелопери постійно пишуть код. Інколи не завжди вдається протестувати цей код на етапі розробки. Тому AQA налаштовує процес так, щоб кожного дня створювалось тестове середовище з усіх основних гілок нашого проєкту і запускались тести проти нього. Після завершення ми отримуємо детальний звіт.
Як стати QA Automation Engineer
— Я почав розглядати можливість займатися автоматизацією через два роки роботи мануальним тестувальником. Постійно писати тест-кейси і робити монотонну роботу — це набридає, — зізнається Андрій. В автоматизації більше опцій: сьогодні ти автоматизуєш UI, завтра — API. Загалом цікавіші завдання, на мою скромну думку.
Почав дивитися відеоуроки з автоматизації, самостійно писати. Часто міняв роботи в перший час. Не тому, що не влаштовувало, а щоб здобути досвід. Загалом, що більше у тебе досвіду на різних проєктах, то краще. З часом є можливість бачити проєкт не як сукупність завдань, а більш глобально. Починаєш розуміти, що треба зробити, аби покращити процеси: десь доцільніше буде не писати UI-тести, а написати API, десь треба додати ще перформанс-тести, інтеграційні тощо.
Я зазвичай приходив на проєкт як автоматизатор і починав усе з нуля. Приміром, там була команда мануальників, які написали тест-кейси. Далі ми узгоджували із замовником, що мало бути автоматизовано — і поїхали. Якщо готових тест-кейсів не було, то ми обговорювали із замовником, що саме треба зробити. А потім я презентував своє бачення, аргументував, чому це важливо. Часто доводиться спілкуватися з бізнесом напряму. Бувають і інші кейси, коли у клієнтів інші моделі роботи, масштаби проєкту й інші бюджети. Хтось може найняти команду із 20 автоматизаторів, а хтось — із двох.
Кілька порад джуніорам
- Моя порада світчерам і джуніорам — не бійтеся ходити на співбесіди. Якщо першого разу не вдалося — нічого страшного, питання на інтерв’ю часто повторюються. Можна не пройти 10 інтерв’ю і пройти одинадцяте, бо ти уже вивчив напам’ять і підготувався до усіх запитань. І це нормально. Бо проходити співбесіди — це теж скіл.
Я особисто співбесідував багатьох. І, давайте будемо відвертими, те, чи подобається тобі людина, відіграє дуже велику роль. Тому розвивайте свої софт-скіли. - Дуже важливо вчити англійську. Я знаю людей, які вчать програмування, тестування, але не англійську, але вона не менш важлива, ніж технічна частина.
- Не обов’язково йти на платні курси. Я чув відгуки кардинально протилежні від різних людей: усе залежить і від якості курсів, і від викладача, і від мотивації. Але курси — не обов’язковий крок. Там можуть показати шлях, куди йти. Але у будь-якому випадку доведеться багато працювати самому. І тут варто зауважити, якщо ви бачите, що вам не подобається курс чи викладач — потрібно про це говорити. А не чекати завершення і скаржитися, що щось було погано.
- 3найдіть собі ментора. Ця людина допоможе розібратися у купі навчальної інформації, бо складно зробити це самому через невпевненість: «Чи вчу я те, що треба?», «А що вчити далі?». Людей, які погодяться вам допомогти, в ІТ чимало. Ледве не у кожного є або друг в ІТ, або друг друга. Ну якщо так склалося, що немає взагалі нікого із цієї сфери — то тоді можна піти на курси. Там точно буде кілька однодумців і кілька викладачів, які можуть дати пораду.
Яку мову програмування вчити QA
— Так склалося, що я вчив Java. І в основному працював з нею. Також ще трошки вчив TypeScript. Багато хто з моїх друзів-автоматизаторів пишуть на Python. Але тут вибір залишається за людиною.
Якщо зараз би довелося обирати якусь мову для автоматизації, я б обрав Python. Вона більш проста, постійно розвивається, зараз має попит. На Python можна зробити багато речей простіше, ніж на Java, наприклад. Кожна мова програмування по-своєму цікава. Тут справа смаку.
Якщо так трапиться, і вам запропонують проєкт на Python, а ви її не вчили — не варто відмовлятися. Підучіть трохи, заплатіть 10 доларів і завантажте кілька відеокурсів, прокачайте себе, — заохочує Андрій, — Це цілком можливо, джерел зараз багато. Єдине, що може заважати — незнання своєї мети, невміння зосереджуватися на поставлених цілях.
Що почитати й подивитися
Якщо підсумовувати — як я отримав першу роботу як QA? У мене не було особливих скілів в автомазиції, я просто якісно підготувався до співбесіди. Пройшов її та почав отримувати реальні завдання. І вже на цих реальних завданнях я собі набив руку.
Ти можеш сидіти вдома і писати якийсь код, але це буде відірвано від життя. Тому готуйтеся до співбесід, отримуйте реальну роботу і там уже вдосконалюйтесь, — підсумовує Андрій. А корисну інформацію на тему (окрім YouTube) пошукайте тут: