Від філолога до тестувальника: як увійти в ІТ з нуля
До дня тестувальника "Рубрика" розкриває секрети професії та розповідає, як її опанувати з нуля.
Одна з легенд каже, що 9 вересня 1947 року вчені Гарвардського університету тестували обчислювальну машину Mark II Aiken Relay Calculator. І виявилось, що між контактами електромеханічного реле застряг метелик. Побачивши це, одна зи вчених — Грейс Хоппер — вимовила слово "bug" (з англійської — "жук"), яке пізніше стало офіційним терміном, що означає комп'ютерну помилку.
Метелика витягли і вклеїли до технічного щоденника, супроводивши підписом "First actual case of bug being found" ("Перший випадок у практиці, коли був виявлений жук" — ред.). Цей факт поклав початок використанню слова "баг" у значенні "помилка".
Згодом процес виявлення й усунення причин збою в роботі комп'ютерів отримав назву debugging (дебаггінг, "налагодження", дослівно: позбавлення від жуків — ред.). А ще виникла професія — тестувальник, від англійського "test", тобто випробування.
До дня тестувальника "Рубрика" розповідає історії двох тестувальників: досвідченого професіонала, який розкриває секрети професії, та новачка, яка ще кілька місяців тому вважала, що ІТ — це виключно для "технарів".
Історія Кості. Адвокат користувача
Костя — Software Test Automation Engineer (або ж тестувальник-автоматизатор) в одній з провідних українських ІТ-компаній. Це означає, що його основним завданням є створення програм (скриптів/інструкцій), які потім тестують інші програми — автотесту.
"Автотест виконує рутинну роботу тестувальника. Скажімо, сайт передбачає реєстрацію користувача. Вона вже є, вона працює, однак замовник вирішив туди щось додати. І щоб перевірити коректність роботи всієї системи після нововведення, створюється програма-тестувальник. Можна, звісно, перевірити все і вручну, однак це забере невиправдано багато часу на дистанції — якщо працювати над проектом передбачається не один місяць і тестити треба буде багато разів", — пояснює він.
Спеціалізацій серед тестувальників безліч: хтось відповідає за безпеку даних; хтось — за навантаження на продукт: чи витримає, скажімо, сайт, якщо туди одночасно зайде кілька мільйонів людей; хтось — за функціонал, наприклад, чи працює певна кнопка в комбінації з іншими, і чи працює вона взагалі.
І хоч кожна зі спеціалізацій переслідує свою конкретну мету — впевнитись, що окремі деталі сайту, додатку чи софту працюють і роблять це злагоджено абощо, — кожна з них в кінцевому результаті "заточена" на одне: зручність для користувачів у роботі з продуктом.
"Тестувальник — це такий собі адвокат кінцевого користувача. Відповідно, він має ставити себе на місце людини, яка користуватиметься сайтом чи програмою, і знаходити способи полегшення роботи з ними", — каже Костя.
Як працюють тестувальники?
Робота над проектом починається з озвучення замовником побажань. Потім вони оформляються в чіткі технічні вимоги — і передаються на виконання команді.
Костя пояснює процес роботи тестувальника на прикладі створення новинного сайту.
"Замовник вказує, де мають бути розміщені стрічка новин, швидкі та головні новини, а ще йому потрібна, наприклад, адмінка окремо для редагування матеріалів і окремо — для реклами. Ти дивишся на них,
аналізуєш, наскільки це все реально виконати, і чи зможе воно потім запрацювати як слід", — роз'яснює він.
Потім починається, власне, робота. Завдання виконуються за пріоритетністю: спочатку створюється стрічка новин, потім до неї кріпляться головні новини – і так аж до завершення.
Тестувальники включаються в роботу відразу ж, на самому старті проекту. По-перше, визначають, як саме проводитимуть тестування. А по-друге, зауважує Костя, певні несправності легше і дешевше виправляти ще під час озвучення вимог замовником: "Адже якщо баг вилізе уже на етапі користувача, виправити це буде набагато довше і, що головне, дорожче".
"Тестувальники постійно запитують, чому вирішено, що щось працюватиме саме так, а не інакше, дають поради з покращення функціонування, переконують, що користувач не зрозуміє логіки якоїсь дії, вказують на суперечливість у побажаннях замовника тощо. Бо якщо щось не працюватиме, або продуктом буде дуже складно користуватись — навіщо його взагалі робити?" — переконаний він.
Найкраще — проходити навчальні курси, організовані великими компаніями
Костя став тестувальником, пройшовши курси, організовані компанією, у якій він зараз працює.
"Після закінчення університету — а я є інженером з електроніки — півтора роки я пропрацював інженером на кафедрі провідного технічного ВНЗ України, а потім мені подруга запропонувала піти на безкоштовні курси нашої компанії – на той час університет співпрацював з компанією, і курси проходили в лабораторіях нашого університету. Мені було просто цікаво послухати і спробувати щось нове. Так я став тестувальником", — розповідає він.
Костя пояснює: багато великих компаній організовує на своїй базі безкоштовні навчальні курси і саме це є їхньою перевагою – оскільки студентів відбирають з прицілом на майбутнє працевлаштування.
"Це зручно — відразу для себе готувати молодих спеціалістів: так ти чітко знаєш, до чого готувати людину, вивчаєш її сильні й слабкі сторони. З іншого боку, самі студенти отримують майже 100% можливість залишитись у великій компанії. Всі задоволені", — переконує він.
Історія Юлі. Від філолога до тестувальника
Сьогодні Юля — junior QA Engineer у тій же великій американській ІТ-компанії. Це означає, що її досвід складає менше 6 місяців, однак вона вже має певні навички для подальшого зростання.
А до того, як стати тестувальницею, Юля була філологинею-перекладачкою з італійської та англійської мов. І все було добре, аж поки перед нею не постала перспектива багато працювати і мало отримувати.
"На останній роботі я займалась організацією та проведенням міжнародних іспитів з англійської мови Cambridge. Проте коли моя керівниця звільнилась, я була готовою виконувати її обов'язки. Однак з умовою, що мені дадуть помічника — адже впоратись зі всіма завданнями одній чисто фізично було нереально. Помічника мені знайти пообіцяли — але лише за півроку. Так я вирішила закінчити з перекладацтвом", — розповідає Юля.
Ще більше в цій думці її укорінила ситуація на ринку праці.
Варіантів, де можна було б не лише машинально виконувати завдання, а й розвиватись та отримувати новий досвід, було мало. Ще менше було пропозицій з адекватною фінансовою складовою.
Так Юля вирішила піти в ІТ.
Навчання з нуля
"Природно, що мені, філологині, яка все життя працювала за освітою, IT здавалося суто технічною професією. Однак тут спрацювала підтримка рідних", — ділиться Юля про перші кроки в освоєнні нового напрямку.
Сестра Юлі розповіла їй про курси, які пройшов свого часу Костя — безкоштовні навчальні програми з найбільш трендових технологій та напрямків.
Для того, аби почати навчання, потенційний студент мусить пройти співбесіду, потім — виконати тестове завдання, тоді — ще одну співбесіду, потім — прийняття на самі курси. І вже аж після цього студентів розподіляють за напрямками навчання, залежно від їхніх бажань.
"Там дуже складний відбір. З 400 осіб, які подали заявку, на курси потрапило менше ста", — розповідає Юля.
Навчання проходило протягом 4 місяців в режимі онлайн, продовжує вона, були вечірні лекції, "після яких задавали практичні завдання, які детально розбирались під час наступних занять".
"Щотижня у нас була відеорозмова з нашою координаторкою, під час якої вона не лише розповідала про специфіку роботи, а й відповідала на наші питання. Крім того, під час цих розмов ми починали тестувати якусь програму, вирішували логічні завдання тощо", — описує специфіку навчання Юля.
Водночас вона пояснює: особливістю та плюсом навчання на організованих великими ІТ-компаніями курсах є те, "що студенти практично зі 100% вірогідністю, залишаються там працювати".
Щоправда, прийом на роботу в більшості випадків відбувається не автоматично після закінчення навчання.
По-перше, пояснює Юля, "ти проходиш ще одну співбесіду — цього разу вже для участі в конкретному проекті", а по-друге, варто бути готовим до того, що на таку співбесіду доведеться чекати: "Скажімо, мене взяли до резерву компанії в грудні, співбесіду для участі в оновленні інтерфейсу одного з сайтів я пройшла в квітні, а повноцінно працювати почала лише з травня — з тримісячним випробувальним терміном".
Перші кроки в професії
Наразі Юля — мануальна тестувальниця. Це означає, що її робота полягає в особистому, "ручному" стеженні за відповідністю програми заявленим замовником вимогам.
"Разом із командою та замовником ми обговорюємо вимоги до проекту, після чого починаємо, власне, тестувати програму: визначаємо її баги і даємо звіт про дефекти. Після виправлення робимо повторне тестування — аби переконатися, що все працює як слід", — розповідає Юля.
Окрім мануальних тестувальників існують т.зв. "автоматизатори" — тестувальники, як Костя: зі знанням мови програмування, які створюють автотест: скрипт, що імітує взаємодії користувача з додатком, маючи на меті локалізувати помилки в роботі програмного забезпечення.
Юля пояснює: те, який тип тестувальників буде залучений до проекту, визначається обсягом закладеної до нього роботи. "Автоматизатори підходять для довгострокових проектів. Для коротких ефективнішим є мануальне тестування".
Кар'єрний ріст
Тестувальники, як, втім, і решта ІТ-спеціалістів, самостійно оцінюють, наскільки ростуть у професійному плані.
"Це цікава робота, кожен проект унікальний, і ти постійно вчишся чомусь новому. У різних проектів різні вимоги, і якщо ти вважаєш, що ти виросла з одних завдань, то завжди можна поговорити з куратором, щоб перевестися на інший проект", — розповідає Юля.
Подібний підхід практикується і щодо кар'єрного росту.
"Наймолодшою" категорією є джуніори. Далі — мідл та сіньйор фахівці. Найвищі — лід-тестувальники.
"Щоб перейти на наступний рівень, потрібно пройти іспит. Якщо не складеш — за певний час можна повторити. Як швидко людина може вирости, залежить виключно від неї. Але в середньому, кажуть, необхідно близько двох років роботи, аби перейти на новий рівень", — пояснює Юля.
Інструкція для майбутніх тестувальників
Стати тестувальником можуть всі, незалежно від освіти та попереднього досвіду. Однак для того, аби стати успішним тестувальником дуже важливо бути, природно, уважним, а ще — вміти читати документацію та дивитись на програму "очима користувача": аби користувачам було зручно нею користуватись.
Крім того, за словами Юлі, для якнайшвидшого оволодіння навичками тестування, "бажано знайти англійську мову на рівні В1, В2″. А також одразу визначитись із напрямком подальшої роботи — для "прокачування скілів" саме в ньому з метою швидшого розвитку та набуття відповідних знань.
"Комусь легше працювати з фінансовими програмами, комусь — з юридичними чи безпековими. Все ж індивідуально", — пояснює вона.
Та головне, переконує Юля, навіть у процесі роботи не боятись ставити питання та продовжувати навчатись: "Буває, тобі здається, що ти все правильно робиш, а в підсумку десь вискакує помилка. Тож варто постійно запитувати, навіть якщо питання тобі здаються безглуздими. Ну і, звісно ж, потрібно розвиватись – проходити навчальні курси, дивитись фахові відео. Адже ІТ-сфера розвивається дуже швидко. І аби завжди бути затребуваним на ринку праці, треба відслідковувати всі тренди".