Формула успішного переходу від manual до automation testing
Якщо ви читаєте цю статтю, то швидше за все, ваше життя так чи інакше пов’язано з тестуванням. Моє так точно, вже впродовж
Я — Микола і я пройшов тернистий шлях від мануал тестувальника до автоматизатора.
Мене часто запитували про історію мого переходу від manual to automation інженера, тому вирішив поділитись своїм досвідом та деякими інсайдами.
Буду відвертим: я не консультант оріфлейм-ейвон-емвей і не збираюся нав’язувати той чи інший інструмент, чи мову програмування. Моя основна мета — це допомогти визначитись з чого почати, що вчити і як зробити перехід від мануал до автомейшн найбільш ефективним саме для вас.
Перш ніж перейти до чарівної формули перевтілення в automation engineer-a , варто зазначити, що на сьогоднішній день освоїти автоматизацію стало набагато легше. Як не крути, а з’явилися сучасні та прості інструменти для автоматизації, починаючи з оновленого Selenium IDE, та простого Katalon Automation Recorder, закінчуючи non-Selenium тулами такими як Cypress та TestCafe. Є деталізована документація по цим інструментам зі зручною навігацією, наприклад, я просто кайфую від документації Cypress та TestCafe. На кожному кроці зустрічаються ком’юніті автоматизаторів, а кількість тематичних відповідей в google змушує подумати, що це ізі ту ду.
Однак, з іншої сторони, зросла і кількість мов програмування, інструментів для автоматизації та підходів порівняно з 2014, коли вибір був практично один — чистий Selenium, Java + TestNG або JUnit. Це нашу задачу не полегшує, а навпаки ускладнює.
Історія власного переходу від мануала в автомейшн
Перед тим як давати свої суб’єктивні поради, хотілося б почати зі свого досвіду переходу від мануала до автомейшн (спойлер вже є в назві статті, історія закінчилася хеппі ендом).
Коли я спробував проаналізувати свій досвід, то зрозумів, що мій шлях від мануала до автомейшн почався не з мови програмування, не з інструментів для автоматизації, а з мотивації.
Давайте перемістимось в 2014, коли я почав шукати свою першу роботу тестувальником. Я тільки-но закінчив онлайн-курси, які проводив мій знайомий, і, сповнений ентузіазму, одразу почав шукати роботу. Перша співбесіда була, м’яко кажучи, провальною: хотілося провалитися крізь землю і поплавати підземними ріками Києва. Я дуже нервував, за день до співбесіди перечитав купу матеріалу, що призвело до повної каші в моїй голові. Хоча й запитували прості речі типу які види тестування знаєш, які рівні існування існують принципи тестування, техніки тест-дизайну, протестувати логін форму та знання з SQL.
Але щось пішло не так.
Однак, ця співбесіда змотивувала готуватись краще. І вже наступного разу я почував себе набагато впевненіше і навіть пройшов кілька етапів, отримавши тестове завдання, в якому потрібно було написати кілька позитивних та негативних автоматизованих кейсів на форму реєстрації користувача (використовуючи Java + Selenium).
Стоп-стоп, я ж мав розповісти про першу роботу в ролі мануал QA. Все правильно! Я хоч і проходив співбесіду на мануала, але запитали, чи знаю я щось про автоматизацію і я такий з серйозним лицем відповів: «Звичайно!». Хоча знав тільки те, що існує такий вид тестування :)
На виконання тестового завдання мені дали 7 днів. У той час мені так була потрібна робота і я так хотів потрапити в ту компанію, що з закоченими рукавами взявся за цей челендж. План дій був такий: підключив усіх знайомих, які хоч щось тямили в програмуванні і які хоч якось могли б допомогти з виконанням тестового, перерив і перечитав купу топіків з програмування та автоматизації. За 7 днів встиг написати
Надіслав свій скарб і сподівавався на диво. Але ж ми не в казці і, звичайно, мені відмовили. Що я міг толкового написати за 7 днів без досвіду в автоматизації? Однак, це було саме тою відправною точною, коли я зрозумів, що хочу бути автоматизатором.
До чого ця вся історія? До того, що якщо ви сидите на попі рівно і вам просто хочеться перейти в автомейшн без будь-якої на те потужної мотивації, то це буде дуже довго і складно, або в результаті відмовитесь від такої ідеї. Тому що потрібно володіти як мінімум наступним набором знань: мова програмування, патерни та антипатерни в автоматизації тестування, тули для автоматизації, розуміти бізнес-цінність від автоматизації і доцільність впровадження її на проекті, з чого почати автоматизувати і які кейси покривати і т. д.
Уже після 3 співбесіди мене взяли на роботу, в ході якої я озвучив тест-менеджеру та PM про свої наміри переходу в автомейшн. Звичайно, я почав з мануала, але у вільний час я потрохи починав автоматизувати. Почав з доволі простих інструментів — Selenium IDE, записував елементарні сценарії, експортив в Java, підшаманював і запускав потроху.
Через 6 місяців наш Test Manager всередині компанії організував курси з автоматизації тестування на Selenim + Java, куди запросив і мене. І вже через 3 місяці нам вдалось побудувати тестовий проект з нуля, покрити кілька смоук-тестів, підключити репортер і показати це все менеджменту. Однак, менеджмент сказав, що це поки їм не потрібно.
Хоча, буквально через місяць мене запросили в команду автоматизаторів на іншому проекті в тій же компанії. Змінився стек і довелось перевчатись, бо автотести писали на Python + PyTest. Спочатку відсоток автоматизації був орієнтовно 20%, але вже за півроку він збільшився до +/-60% від основної роботи. Пізніше мене запросили в аутсорс-компанію, де я повністю перейшов на автомейшн (але це вже інша історія).
Якщо вам не зовсім зрозуміла різниця між мануал та автомейшин тестувальником — тримайте детальний туторіал з порівнянням, перевагами та недоліками.
Резюмуючи свій досвід і досвід своїх колег/друзів, які також пройшли такий шлях, хотілося б надати кілька рекомендацій.
Що потрібно вчити
Мова програмування
Не ведіться на рейтинги та тренди мов. Обирайте ту, яка подобається і на якій хочеться писати. Вивчайте мову, яка вже є на вашому проекті, хоча б на базовому рівні, не заглиблюйтесь у деталі. Для автотестів не потрібен високий рівень цих знань.
Інструмент для автоматизації
- Вивчайте інструмент, який вже є на проекті. Читайте його код. Запускайте існуючі тести.
- Почніть з простих інструментів (Selenium IDE, Katalon Recorder).
- Вивчайте популярні фреймворки. Читайте і запускайте вже готові приклади обраного проекту.
- Заведіть GitHib-аккаунт зі своїм тестовим проектом.
- Дивіться готові рішення, які вже існують на просторах GitHub і пробуйте робити по аналогу.
Теорія автоматизованого тестування
Ознайомтесь з основними поняттями: піраміда автотестів, доцільність автотестів, паттерни, як шукати елементи на сторінці, CSS, XPATH, data-test атрибути в коді.
Як навчитись
Організуйте курси всередині компанії. (Для мене це був найефективніший варіант!)
Наш тест-менеджер зібрав групу зацікавлених осіб, які цікавились автоматизацією. Ми склали план занять та програму, за якою будемо проводити заняття, по черзі готували матеріали до кожної з тем, відразу адаптували отримані знання на практиці. Розробляли тестовий проект на основі нашого контексту, тобто автоматизували проект, який ми усі знали і тестували. У результаті — зробили демо-проект і показали його менеджменту. Загалом курс тривав орієнтовно 3 місяці і заняття входили в наш робочий час.
Пройдіть онлайн/офлайн курси.Такі курси ефективні тоді, коли ви оплачуєте їх з власної кишені. Обирайте курс або конструктор курсів, які ви в змозі застосувати на проекті, і відразу застосовуйте та адаптуйте отримані знання на своєму проекті.
Знайдіть ментора всередині команди/компанії, або ж деінде.
Переконайте менеджмент виділяти час на автоматизацію: проговоріть зацікавленість в автоматизації ще на етапі інтерв’ю, потім з тім лідом, PM, Test Manager. Обов’язково покажіть швидкий результат, використовуючи прості тули.
І ще одна порада: зареквестіть допомогу дева при сетапі проекту.
Nice to know:
- GIT
- CI/CD
- HTML/CSS
- SQL
Висновки
Знайдіть для себе чітку мотивацію. Наприклад, це може бути потенційне звільнення у зв’язку з тим, що бізнесу вигідно мати універсальних бійців, які вміють і мануал і автомейшн. Або вас просто пре від того, що ви пишете програму, яка тестує замість вас!
Застосовуйте комплексний підхід до навчання. Одразу застосовуйте отримані знання на практиці
Почніть з простих інструментів і вчіться нон-стоп: майстер-класи, мітапи, воркшопи, статті, слідкуйте за автомейшн спільнотами, дивіться код проектів в GitHub, пробуйте писати код.
8 коментарів
Додати коментар Підписатись на коментаріВідписатись від коментарів