article-spots
article-carousel-spots
programs
Технології

Шлях тестувальника: з чого починати вивчення автоматизації

18 лист 2020

Більше шести тому Роман Печерський пройшов курси для функціональних тестувальників та почав працювати QA-інженером. Через кілька місяців він вперше зустрівся з автоматизацією і зрозумів, що хоче розвиватися в цьому напрямку.  

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

Як я познайомився з автоматизацією?

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

Хтось із колег на проєкті розповів мені про Selenium IDE — інструмент для автоматизації дій Firefox-браузера. Пригадую, як написав свій перший автотест з допомогою методу Record and Play: включив запис, почав натискати кнопки, вводити текст у пошуковий рядок і клікати на посиланнях. Вийшов набір збережених дій, який можна було запустити й відразу побачити результат.  

Як я вивчав автоматизацію?

Незабаром я почав самостійно вивчати Java — одну з найпопулярніших мов для автоматизації тестування — і спробував писати нескладні автотести в Eclipse, наприклад для тестування login-форми додатків. 

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

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

Ось що допомагало мені долати труднощі: 

Розуміння навіщо це потрібно 

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

Підтримка колег 

Завжди приємно, коли тебе хтось підбадьорює — особливо люди, які вже пройшли той самий шлях.  

Почуття суперництва 

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

Коли курси закінчилися, я почав працювати на проєкті, виконуючи по черзі обов'язки функціонального тестувальника й автоматизатора. За кілька місяців приєднався до нового проєкту – вже в ролі тімліда. QA-команда складалася всього з двох людей – мене і функціонального тестувальника, якому я пояснював основи автоматизації. 

Як я почав навчати автоматизації?

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

Поступово моя команда збільшилась до 10 автоматизаторів. На той час я повністю залишив ручне тестування і займався комплексним системним автотестуванням веб-додатків. Потім почав допомагати команді зі створенням архітектурних рішень для тестів і став проєктним координатором.  

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

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

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

Почніть з практики – створіть власний автотест 

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

Я вважаю, що починати треба з простих речей. Створіть нескладний автотест самостійно. Щоб було цікавіше, спробуйте вирішити яке-небудь життєве завдання. Наприклад, напишіть скрипт, який автоматизує передачу показників лічильників води на сайт водоканалу. Сьогодні це можна зробити з допомогою Katalon Studio, який замінив Selenium IDE. Такі завдання підігрівають інтерес до вивчення автоматизації. Потім можна буде перейти до вивчення теорії та специфіки автоматизації, а також почати опановувати мову програмування в зв'язці з Selenium WebDriver. 

Визначте пріоритети  

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

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

Почніть навчатися самостійно або пройдіть курси 

Курси — гарний варіант для тих, хто взагалі не має уявлення з чого починати або хоче систематизувати свої знання. Онлайн-курси можна знайти на Stepik та Lynda. Якщо говорити про офлайн-навчання, його можуть організовувати різні ІТ-компанії вашого міста – пошукайте інформацію про це на їх сайтах.  

Зазвичай програма будь-якого курсу з автоматизації поділена на три модулі:  

  • Вступ до теорії автоматизації;  
  • Вивчення основ мови програмування (наприклад, Java); 
  • Написання власних автотестів. 


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

Ось мінімальний набір знань, які ви повинні опанувати, щоб почати працювати на реальних проєктах:  

  • Розуміння основних понять тестування: тест-кейси, дефекти і т.д.; 
  • Розуміння, що можна автоматизувати, а що ні; 
  • Знання основ мови програмування (Java, JavaScript, Python, C#); 
  • Вміння працювати з Selenium WebDriver; 
  • Вміння писати локатори для елементів; 
  • Знання одного-двох юніт-фреймворків.  


Якомога більше цікавтеся 

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

 Не стійте на місці  

Щоб підтримувати себе в формі, потрібно постійно знаходитись на вістрі технологій. Почніть вводити в роботу нові фреймворки та бібліотеки, розберіться з Continuous Integration, поглиблюйте знання мови програмування або опануйте нову.

За п'ять з половиною років, які я працюю з автоматизацією, я жодного разу не пожалкував, що обрав цей напрям. Мені подобалося виконувати й задачі ручного тестування, але я розумів, що рано чи пізно впруся в стелю. Стелі мануальний тестувальник досягає тоді, коли він тестує різні види додатків – веб, десктопні, мобільні – настільки професійно, що робота припиняє кидати нові виклики й перетворюється на рутину. Щоб не стояти на місці й розвиватися далі, необхідно отримати яку-небудь нову навичку. Можна зайнятися автоматизацією функціонального або навантажувального тестування, можна переключитися на тестування безпеки або, наприклад, розібратися в базах даних. Ще можна поглянути в бік DevOps, бізнес-аналізу або проєктного менеджменту. 

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

Матеріал блогу «Клевер»