×Закрыть

Формула успішного переходу від manual до automation testing

Якщо ви читаєте цю статтю, то швидше за все, ваше життя так чи інакше пов’язано з тестуванням. Моє так точно, вже впродовж 5-ти років. Ну що ж, давайте познайомимося, бо в нас є спільні інтереси.

Я — Микола і я пройшов тернистий шлях від мануал тестувальника до автоматизатора.

Мене часто запитували про історію мого переходу від 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 днів встиг написати 3-4 позитивних сценарії, дізнатися, що таке Selenium IDE, базовий синтаксис Java, Selenium, git і навіть залити все своє добро на GitHub, непогано, еге ж?

Надіслав свій скарб і сподівавався на диво. Але ж ми не в казці і, звичайно, мені відмовили. Що я міг толкового написати за 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, пробуйте писати код.

Корисні посилання

  • GitHub — тут ви можете знайти приклади моїх проектів.
  • CodeWars — ресурс для тестування різних мов програмування.
LinkedIn
Допустимые теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter
Допустимые теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter

Полезно, спасибо.
Можешь порекомендовать курсы (желательно на JS)?

Цікава стаття. Який рівень знання мови програмування наприклад Java взагалі потрібен?

Дякую!
На мою думку, нижчий ніж для Junior Java розробника.
Для початку достатньо розуміти як працювати зі змінними, типами даних, функціями, масивами та умовами.

Я пробую все це, але ж там багато) Рівень розробника я оцінити не можу, пробую Intellig IDEA + Java + Gradle поки що прості речі. От привітні класи та лямбда це складно

Не поглиблюйтесь в деталі, для початку достатньо бази. Пробуйте писати тести і паралельно вивчати, те що не зрозуміло як працює. Таким чином поступово вивчаючи більш глибші деталі тої чи іншої мови програмування.

Подписаться на комментарии