article-spots
article-carousel-spots
programs
Історії
Я не планував переходити на .NET, але це рішення виявилось найкращим з усіх можливих. Re-skill історія Павла Висоцького
1 лют 2023

«Знання зайвими не бувають,» — переконаний герой нашої статті, Павло Висоцький, Junior Software Test Automation Engineer. Його надихаюча історія переходу від Java до .NET автоматизації є чудовим прикладом того, як re-skill програма відкриває нові можливості та розширює вибір проєктів. 

Як ти потрапив до ІТ і чому обрав саме тестування?  

– До переходу в ІТ я 15 років працював у гуртовій торгівлі, продавав комп’ютерну техніку і комплектувальні деталі. Два роки працював як індивідуальний підприємець, відтак три з половиною роки керував власною фірмою. Але в певний момент втомився від закупівель, постачань, продажів і постійного стресу. Вирішив обрати сферу, де я матиму душевний спокій, і водночас у мене будуть цікаві завдання та можливості для подальшого розвитку. ІТ здалося мені саме тим, що треба. Ще в школі мені подобалося програмувати на Pascal, тож коли я пішов на курси з програмування на Java, для мене там не було чогось незрозумілого або страшного. Вивчився і взявся підкорювати IT. Розіслав резюме і навіть пройшов кілька співбесід, але результат був очікуваний для початківця: мені обіцяли розглянути мою кандидатуру і подзвонити пізніше. Зрештою, мій друг порадив написати рекрутеру EPAM в LinkedIn, я взяв ініціативу у свої руки та зв’язався з нею. Я знав, що вона шукає інженерів-автоматизаторів, але не думав, що наше спілкування виявиться настільки плідним.  

Вона відразу надіслала мені тестове завдання й уточнила щодо досвіду в автоматизації. Я чесно сказав, що працював у Java-розробці, з тестуванням на практиці не стикався, але залюбки самостійно у всьому розберуся. Тестове завдання я виконав вчасно і якісно, тож мені запропонували перейти на наступний етап співбесід на позицію Junior Test Automation Engineer.  

За п’ять днів після співбесіди я дістав пропозицію працювати на внутрішньому проєкті. Я тоді не розумів до ладу, що означає «внутрішній проєкт», а тому був трохи спантеличений: беруть мене на роботу чи ні? У травні 2021 почалась моя кар’єра в EPAM: onboarding тривав близько двох тижнів, потім я певний час працював з ментором, який допомагав мені адаптуватися. Він давав завдання і контролював їх виконання, дозволяв мені самостійно знаходити відповіді й не втручався у процес, поки я не просив допомогти. Ми працювали разом приблизно півтора місяця, після чого ментор побажав мені успіху. Він вважав, що я готовий, і я виправдав його очікування.  

Як би ти описав професію інженера з автоматизації тестування?  

– Автоматизатори пишуть код, який імітує дії користувачів і перевіряє продукт на відповідність очікуваному результату.   

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

Що входить у твої щоденні завдання?  

— Все починається з щоденного короткого мітингу (“daily”), на якому ми визначаємо які завдання ми вже виконали, що збираємося робити, і які маємо блокери. Після зустрічі я заходжу у Jira й беру тест-кейс залежно від пріоритету. Якщо «гарячих» кейсів немає, забираю будь-який на мій вибір.  

Я відкриваю свій тест-кейс, детально його вивчаю — іноді трапляється, що тест-кейс вже має баг. Тоді краще спочатку протестувати все руками, щоб не витрачати час на написання коду, а потім все одно зіткнутися з невідповідностями. Якщо все гаразд, починаю писати код. Час на виконання завдання залежить від його складності — це може бути пів години, день або тиждень. Закінчивши я роблю pull request або merge request (залежно від сервісу), і тоді вже інші члени команди починають перевіряти й коментувати код. Зазвичай у коментарях розгортається дискусія, ґрунтуючись на якій я вношу виправлення. Далі я пушу виправлений код, і якщо немає конфліктів, мержу його з головною гілкою. Якщо конфлікти є — виправляю їх і знову мержу.  

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

Коли ти перейшов з тестування на Java до .NET? 

— Я долучився до внутрішньої програми перенавчання у жовтні 2022 року. Так склалося, що я не встиг пройти асесмент на middle-спеціаліста до того, як завершився мій проєкт, а в нові проєкти шукали фахівців A2+. Час на бенчі я не марнував: пройшов кілька професійних курсів, підтягував англійську.  

Ресурсний менеджер порадив зайти на портал Test Automation as a Service (TAaaS). Так я познайомився з crowd тестуванням і почав брати завдання з автоматизації на Java. Я співпрацював з TAaaS приблизно пів року, поки менеджер не повідомив гарні новини: є нові проєкти, потрібні автоматизатори. Але не на Java, а на С#. І розповів, що є можливість перевчитися на автоматизацію на С# для роботи з .NET фреймворком.  

Я мав тиждень, щоб вирішити. Спочатку, я сумнівався, зважував «за» та «проти», а тоді подумав: це ж нова мова, новий досвід, нові технології. Наступного разу на співбесіді на проєкт, менеджери, побачивши мої навички, скажуть: «Хто це такий? Ми маємо негайно взяти його до нас!». «У будь-якому випадку ти нічого не втратиш,» — сказав мій менеджер і я не заперечував. Знання зайвими не бувають. Усього за півтора тижня я пройшов re-skill програму з .NET і відразу почав працювати на поточному проєкті.  

Як відбувалося твоє навчання?  

— Перші два дні я перебував у ступорі. Я не міг виконати жодного завдання тому, що ніколи не стикався з середовищем розробки Visual Studio і навіть не знав як запустити у ньому проєкт і вивести на екран Hello World. Мені написав здивований ментор, який планував долучатися на складніших етапах, і допоміг у всьому розібратися. Пізніше, коли я вже набрав обертів у навчанні та надсилав pull requests безперестанку, він жартома казав: «Ого, зупинися, дай-но я перевірю попередні завдання.» На проєкт був терміново потрібен інженер з автоматизації тестування на .NET, щоб вибудовувати процеси тестування з нуля. Довелося докласти зусиль, але ми з ментором впоралися достроково. Хоча Java і C# різні мови програмування, перевчитися було не складно, маючи досвід роботи в автоматизації. З переваг С# над Java я б відзначив гнучкість першої, яка суттєво полегшує навчання. Якщо у мене виникали питання, звертався до Google: «Ось так я робив на Java, наприклад, процес сортування. Як мені реалізувати це на С#?» 

З якими викликами на роботі доводиться зустрічатися? Як ти даєш їм раду?  

— Найголовніший мій виклик — це нове середовище розробки. Хоча я й розібрався, як в ньому працювати, мені досі незвично як реалізовано деякі функції. Також наша команда має важливе завдання з систематизації фреймворку, яке вимагає багато уваги та зусиль. Ще є один виклик, незначний, але кумедний: місяць придумуємо назву для одного методу, але так і не дійшли остаточної згоди. Якою б не була ситуація, я завжди відчуваю підтримку команди; вони готові підняти настрій жартом, долучитися до вирішення складного завдання, поділитися досвідом.  

Чи вдається тобі зберігати баланс між роботою та особистим життям?  

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

Що порадиш тим, хто тільки починає свій шлях у тестуванні?  

— Перш за все, не боятися спробувати нове. Якось колеги з мануального QA запитали мене, чи варто їм вивчати автоматизацію, якщо вони ніколи раніше не писали код. Я відповів: «Спробуйте пройти будь-який курс з автоматизації тестування. Тоді у вас буде що порівнювати й з чого вибрати.» Дисципліна в усьому також дуже важлива. Якщо ви ухвалили рішення, дотримуйтесь його. Неможливо досягти своєї мети, якщо не знаєте, куди йдете.