Автоматизація тестування програмного забезпечення – напрям, знайомий не кожному. І навіть у наш час для багатьох стає відкриттям сам факт існування такої спеціалізації, адже традиційно перевірка якості продукту розробки асоціювалася виключно із мануальним тестуванням.
Отже, як проходить процес автоматизації тестування, кому буде цікаво опанувати цей фах, та який мінімальний обсяг знань потрібно мати для старту кар’єри?
Вникнути в тонкощі QA Automation нам допомагатимуть Software Test Automation Engineer Микита Єфимук и Lead Software Test Automation Engineer Равіль Янбеков.
Роль Software Test Automation Engineer у проєкті
Равіль Янбеков: Перед спеціалістами з автоматизації тестування ПЗ стоять дві основні задачі. Перша – вони пишуть код для перевірки тих ділянок продукту, які неможливо протестувати мануально. Друга – оптимізація рутинних процесів та перерозподіл часу на користь більш нестандартних завдань або задач вищого пріоритету. Завдяки автоматизації релізний цикл скорочується й продукт швидше потрапляє до користувачів. Відповідно, автоматизація допомагає перемагати у конкурентній боротьбі.
На мій погляд, спеціальності Manual QA та QA Automation доповнюють одна одну та дозволяють зробити процес тестування більш швидким, ефективним та повноцінним.
Микита Єфимук: Коло завдань Test Automation інженерів залежить від конкретного проєкту, але, як правило, включає написання нових авто тестів, створення нового фреймворку або підтримку існуючого, аналіз наявних тестів (аналіз регресії). Деколи в обов’язки QA Automation інженерів входять і мануальні активності, наприклад, написання тест-кейсів або аналіз вимог. Тому для ефективнішої роботи автоматизатору тестування потрібні знання не тільки автоматизації, але й мануального тестування. До речі, сьогодні автоматизація у чистому вигляді – не в тренді. Більш затребувані інженери, які можуть і код розробників заглянути, і автоматизацією зайнятися.
Кому буде цікава автоматизація тестування програмного забезпечення?
Микита Єфимук: Досить часто в QA Automation приходять з мануального тестування, це своєрідний просунутий рівень для тих, хто прагне подальшого розвитку, вивчає мови програмування, фреймворки, цікавиться технічною стороною.
Равіль Янбеков: Інколи в QA Automation приходять і розробники, але зазвичай вони концентруються або на performance тестуванні, або на написанні інструментів для автоматизації. Наприклад, колеги з девелопменту зробили надзвичайно вагомий внесок до роботи над одним із внутрішніх інструментів компанії ЕРАМ – Report portal.
Природжений QA Automation спеціаліст – це…
Микита Єфимук: Людина, якій притаманна увага до деталей, а також креативне мисленням та адаптивність. Вправному автоматизатору корисно бути трохи лінивим, завдяки цьому винахідливість у питаннях автоматизації рутинної роботи стрімко зростає.
Равиль Янбеков: Людина, яка бачить себе у ролі архітектора системи. На відміну від девелоперів, які найчастіше обмежені рамками платформи або фреймворка – як, наприклад, Hybris або Sitecore – та можуть працювати лише з технологіями, передбаченими проектом, QA Automation не обмежені у виборі інструментів. Головний критерій їхнього успіху – ефективність, а інструментарій вони можуть підбирати, виходячи з власного досвіду. Напевне, таких людей можна назвати дослідниками, які люблять шукати шляхи підвищення якості роботи, комбінуючи різні методи.
Що необхідно знати для старту в QA Automation?
Равіль Янбеков:
- Початківцям потрібно добре знати core частину тієї чи іншої мови програмування. Найчастіше це Java або С#, хоча останнім часом тренд змінюється, виникає потреба JavaScript автоматизації, та, можливо, в майбутньому JS обгонить за популярністю Java. Але поки що Java є лідером, тому я раджу починати з неї.
- Обов’язковими є знання основ ООП, знання веб-частини, розуміння принципу роботи серверів та front-end технології, а також html та css.
- Потрібно звернути увагу на фреймворки, які дозволяють виконувати тести та генерувати звіти: JUnit4, JUnit5, TestEngine, Jbehave (test runner).
- Для того, щоб розуміти, як запускати тести та як відстежувати зміни у додатках, необхідно знати continuous integration інструменти такі, як Jenkins, DeepCity.
- Існують різні рівні автоматизації, які дозволяють регулювати дії кінцевого користувача. Автоматизатору-початківцю потрібно звернути увагу на веб-драйвер, технологію, яка дозволяє контролювати браузер та побудовані на ньому фреймворки, такі як Serenity, Selenide (Java стек) або Playwright, Protractor (JavaScript стек).
- Під час автоматизації на рівні API SoftwareTest Engineer працює з даними, відповідно, йому потрібно знати принципи роботи backend-частини додатків.
- Автоматизація на рівні бази даних передбачає знання SQL, а робота з performance тестуванням вимагає знання архітектури додатків.
Отже, джентльменський набір автоматизатора - початківця – це Java, веб-драйвер, Jenkins, TestNG.
Микита Єфимук: Перш за все, майбутньому Junior Software test automation engineer потрібно визначитися із напрямом – чи хоче він розвиватися у тестуванні мобільних додатків, веб або API. Обов’язковим є володіння однією з топових мов програмування – це Java, C# та JavaScript – на рівні ключових концепцій та знання основ ООП. Важливо розуміти, як побудований власне процес розробки. На мій погляд, найголовніше для початківця – якомога скоріше почати отримувати практичний проектний досвід, а більшість фреймворків можна освоїти досить швидко.
Ресурси для Software Test Automation інженерів-початківців
Равіль Янбеков: Спершу початківцям потрібно максимально занурюватися у технічні деталі. Звертати увагу на технічну реалізацію того чи іншого інструменту, на можливості удосконалення процесів з технічної точки зору, покращувати знання фреймворків, приділяти особливу увагу мовам програмування.
Спеціалістам, що досягли рівня Middle, потрібно обов’язково звертати увагу на те, як побудовані процеси на проєкті, заглиблюватися у його особливості, шукати можливі шляхи раціоналізації та оптимізації взаємодії із іншими командами.
Микита Єфимук:
- «Тестирование.COM», Роман Савін (варто прочитати, коли виникла думка займатися тестуванням)
- CS50: Introduction to Computer Science
- Eric Freeman, Elisabeth Robson. Head First Design Patterns: A Brain-Friendly Guide
Спеціальність Software Test Automation поки що не вивчають у жодному вузі. Але якщо ви маєте бажання розвиватися у цьому цікавому та перспективному напрямі, зверніть увагу на навчальні програми ЕРАМ за напрямом QA Automation. Отримати інформацію про відкриті набори можна тут.