Прокачайся в код-рев’ю: для перших 50 учасників — курс безкоштовний

час читання: 4 хв

Як стати AQA, удосконалюватися й отримувати задоволення від челенджів: життєвий шлях інженера

Як і навіщо працювати в AQA? Які є плюси та мінуси в професії? Як у ній розвиватися? На основі особистого досвіду розповідає Михайло Брель, Software Test Automation Engineer в EPAM.

Software Test Automation Engineer Mikhail Brel

Навчання та підробіток

— Не можу сказати, що в дитинстві мріяв про щось конкретне. Було просто цікаво пробувати щось нове, але не завжди це виходило. Плюс я не завжди отримував підтримку своїх починань від батьків: можливо, це якось вплинуло на мої рішення в майбутньому.

Загалом мені подобалося знаходити причинно-наслідкові зв’язки, докопуватися до суті різних процесів, працювати з цифрами. У підлітковому періоді було цікаво спробувати себе в покері.

За освітою я інженер-економіст, закінчив БНТУ за спеціалізацією «Економіка та організація виробництва на автомобільному транспорті». Не можу назвати цей вибір усвідомленим: у 16 років складно визначитися з майбутньою професією на роки вперед, та й тяги до чогось конкретного не було. Я вступав, виходячи з цілком прагматичних уявлень: вибрати професію, яка користується попитом, де можна нормально заробляти, ну а якщо це ще й з інтересами буде співпадати, узагалі чудово.

Працювати я почав у 14-15 років, і за цей час спробував себе на різних роботах. Наприклад, я був вантажником, будівельником, складальником на заводі з виробництва обладнання для зв’язку, кальянщиком. Але думка про програмування не полишала мене, я навіть пройшов безкоштовний курс на JavaRush. Безкоштовних курсів тоді було не так багато, як зараз, потрібні були гроші для перенавчання. Після університету влаштувався економістом із матеріально-технічного забезпечення на заводі в Мінську. Ішов туди з думкою: «Зараз зароблю грошей на платні курси й піду пробувати себе в програмуванні». Але з заводською зарплатою це було не дуже просто, і ентузіазм поступово згасав.

Переломний момент

— Через рік роботи на заводі я вирішив подумати про майбутнє, пошукав вакансії, сходив на кілька співбесід: усвідомив, що перспективи працювати в постачанні та логістиці мене не радують, і почав пошуки альтернатив. У підсумку вирішив повернутися до ідеї з програмуванням. З’ясував, що є безкоштовні курси від EPAM на Java-розробника, подався на них, але не пройшов відбір: мені не вистачило знань. Я вирішив ґрунтовно підготуватися і через 3-4 місяці подався знову. Цього разу знань уже було достатньо, і я пройшов.

Ближче до кінця навчання вирішив спробувати себе в автоматизації тестування: у ній уже працював мій друг, я періодично слухав від нього розповіді про роботу, мене це зацікавило. У той момент саме відкривалися перші онлайн-курси від EPAM з автоматизації тестування, і я зареєструвався на цю програму. Потрібно було пройти всі її рівні, тоді тебе брали в лабораторію EPAM. Я це зробив і був тією людиною, яка потрапила в легендарний перший набір лабораторії з онлайн-курсів. У лабі протягом 5 місяців я отримував практику, наближену до реальної роботи на продакшн-проєкті. Після цього склав іспит на Junior-фахівця, і мені зробили оффер за умови, що я перевчуся на JavaScript. Відповідно, JavaScript я вчив, уже будучи працевлаштованим у компанії.

Сьогоднішній стан справ

— На даний момент я Key Tester у своїй команді. На моєму проєкті ми розділені на команди, у кожній з яких 5-6 розробників, бізнес-аналітик, скрам-майстер та один тестувальник, який виконує функцію як мануального тестувальника, так і автоматизатора.

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

QA у 2024: плюси та мінуси

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

У більшості випадків усе залежить від конкретного проєкту. Коли на проєкті легасі-технології, щось постійно не працює й терміни горять, то це напружує. Але напружує всіх, не тільки автоматизаторів.

Про натхнення

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

Цікаво пробувати різні технології, найчастіше вони являють собою розумні й продумані рішення для різних завдань. З останнього — було цікаве завдання про те, яким чином розподіляти тести на різних рівнях: від unit до end-to-end. Доводиться багато думати й спілкуватися з розробниками, але в результаті можна створити набагато ефективнішу систему в плані тестування.

Навички для тестувальників

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

Для ознайомлення з автоматизацією на JavaScript я б порадив Typescript, Webdriver IO (UI testing), Axios (API testing), Allure (reporting), Mocha + Chai, Eslint, Git, добре б уміти писати тести, використовуючи Cucumber, Jenkins.

Про вдосконалення

— Знання я підтримую переважно завдяки навчанню в рамках роботи на проєкті та співбесід, коли переходжу на інший проєкт. Базові знання з мови та тестування можна отримати на YouTube. Можна знаходити платні курси на навчальних платформах, там можуть бути дуже корисні речі для фахівців-початківців. Щось складніше треба гуглити, читати документацію, дивитися конференції або шукати курси — залежить від конкретного запиту. Якщо знати, що запитувати, і мати експертизу, то можна добре розвиватися за рахунок використання AI-інструментів.

Поради

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

На початку шляху мені довелося спробувати кілька книжок і ресурсів для вивчення, і тільки після того, як я знайшов відповідний, процес дійсно пішов. Також варто приділити увагу мануальному тестуванню, оскільки замовники все частіше хочуть, щоб автоматизатор також виконував функцію мануального тестувальника. Ну й головне — займатися AQA (як і будь-якою іншою справою), якщо до цього є інтерес, мучити себе точно не варто.