Роль QA Automation та QA Manual: у чому принципова різниця й чи потрібні обидва в одній команді
Усі статті, обговорення, новини про тестування — в одному місці. Підписуйтеся на DOU | QA!
Привіт! Мене звати Ярослав Завоюра. Я випускник перших QA Manual and QA Automation курсів на базі Bionic University. У сфері тестування працюю 9 років, з яких 7 років Team Lead/QA automation. Зараз обіймаю посаду Advanced QA Automation у компанії Innovecs.
За час роботи отримав досвід бізнес-аналізу, управління командою, мануального та автоматизованого тестування, а також проводжу співбесіди і є викладачем IT-школи.
Сьогодні хочу розповісти про різницю між QA Automation та QA Manual й чи потрібні ці фахівці одночасно в одній команді (спойлер — це просто ідеал). Більшість розуміє різницю, але я хочу розповісти саме з позиції спеціаліста, який працював і в QA Manual, і в QA Automation, а також у ролі QA Team Lead у команді з обома ролями.
Стаття буде корисною інженерам-початківцям і тим, хто хоче обрати, у якому напрямку розвиватися: Manual QA чи Automation QA. Також трохи розповім, що потрібно знати для успішного проходження співбесіди, адже вже понад 7 років проводжу співбесіди для QA Automation і QA Manual.
QA Manual & QA Automation: партнери чи конкуренти
Manual QA, або ручне тестування програмного забезпечення — це напрям роботи в IT, який передбачає перевірку програмного забезпечення на наявність помилок, дефектів та вразливостей. Тестувальники вручну перевіряють програмне забезпечення з точки зору розробки й з точки зору клієнта, а також контролюють якість роботи програмного забезпечення. Manual QA Engineer — спеціаліст, який займається аналізом і покращенням процесу тестування.
Плюси і мінуси Manual QA
Вважаю некоректними формулювання, коли пишуть, що QA Manual Engineer займається тільки написанням тест-кейсів та проходженням степів за цими тест-кейсам у готовому функціоналі. Сьогодні настільки великий поріг входу у QA Manual, що потрібно знати не тільки теорію, але мати ще й досить таки широкий набір технічних навичок, а саме: вміти тестувати API та GraphQl, робити запити до баз даних, розуміти, що таке DOM (document object model, а не будинок чи квартира) і трохи орієнтуватися в тегах, а також розмовляти «на ти» з панеллю розробника (F12 Dev Tools) будь-якого браузера.
Діапазон обов’язків QA Manual досить широкий:
- участь у мітингах з приводу вимог до якості ПЗ та внесення зауважень
- написання тестових кейсів;
- безпосереднє тестування;
- оформлення багів;
- проведення root cause аналізу, до якого входить аналіз Network, Console tabs у F12 Dev Tools;
- написання запитів до баз даних;
- складання чек-листів;
- робота зі Swagger та Postman — інструментами для тестування API.
Переваги Manual QA:
- простота вивчення;
- легший поріг входу у професію порівняно з QA Automation;
- багатовекторність задач;
- робота з різноманітними інструментами й технологіями;
- варіативність росту;
- робота з новим функціоналом;
- задоволення від знайдених помилок до моменту релізу;
- можливість легко перекваліфікуватися у Business Analyst;
- на рівні Middle та Senior багато спілкування з іноземними замовниками та, як результат, гарна практика англійської мови.
Недоліки Manual QA:
- великий потік інформації, який постійно треба опрацьовувати, щоб залишатися обізнаним;
- завжди мало часу на тестування;
- явна тенденція потреб переходу від Manual до General/Automation QA, що потребує вже більше навичок hard skills та знання програмування.
Soft skills, якими повинен володіти QA Manual Engineer
QA Manual Engineer має бути не лише технічно підкованим і постійно розвиватися, але й працювати над вмінням комунікувати з усіма учасниками команди, аби співпраця була ефективною. Серед найважливіших soft skills такі:
- англійська мова на рівні Intermediate, починаючи з рівня Senior/ Middle QA;
- здатність моніторити й контролювати свій робочий процес: важливо, щоб спеціаліст міг не тільки тестувати, але й робити це вчасно, що потребує контролю над собою та вміння бути гнучким й адаптувати свій робочий процес залежно від кількості завдань;
- вміння передбачити ризики й проводити mitigation and contingency ризиків: спеціаліст повинен спланувати кілька сценаріїв, коли може не встигнути все протестувати або ж на випадок, якщо функціонал буде недостатньо протестований. Тоді необхідно тестувати найбільш поширені бізнес-сценарії, більше робити акцент на новий функціонал при регресійному тестуванні тощо. Також варто розробити план дій на випадок критичного багу на продакшені (швидко встановити робочу версію продукту);
- time management: спеціаліст повинен вміти розраховувати свій час, щоб не тільки встигнути все протестувати, але і підготувати всю необхідну документацію (тест-кейси, баг-репорти, чек-листи);
- комунікативні навички у роботі зі стейкхолдерами проєкту;
- вміння вирішувати конфліктні ситуації.
Як виглядає роль QA Manual у структурі Software testing life cycle
QA Manual повинен постійно розвивати технічні навички. Розглянемо ці обов’язки у структурі Software testing life cycle, який складається з Requirement Analysis, Test Planning, Test Case development, Test Environment Setup, Test Execution, Test Cycle Closure.
На етапі Requirement Analysis тестувальник бере участь в обговоренні вимог до продукту, вносить свої пропозиції та конструктивно критикує. Потрібно добре знати вимоги, орієнтуватися у бізнес-кейсах та загальному функціоналі продукту і дуже багато питати, читати, якщо щось неясно.
Потім тестувальник приступає до Test Planning, на якому планує свою активність на спринті, займається test case design, що потребує знання техніки тест-дизайну, готує test data та список необхідних тестових тулів, наприклад, Postman, SQL management studio тощо.
На етапі Test case development спеціаліст пише тест-сценарії, за якими тестуватиме функціонал, де треба вже знання техніки тест-дизайну, розуміння тестування API та бази даних. На етапі Test Environment setup тестувальник повинен встановити всі необхідні програми для тестування. Це може бути — Postman, SQL management studio, Swagger, Test case execution tools та інше. Test Execution — етап, коли вже тестується функціонал, заводяться баги, проводиться root cause analysis. Test Cycle closure — етап, коли тестувальник закриває задачі, готує готові чек-листи та необхідні графіки з якістю протестованого функціоналу.
Плюси і мінуси QA Automation
QA Automation — це напрям в ІТ, який передбачає залучення в усі процесу девелопменту (від підготовки стандартів, вимог і планування до безпосередньо розробки продукту). QA Automation Engineer — це спеціаліст, який пише тести на основі скриптів для автоматизації тестування.
QA Automation Engineer повинен володіти такими навичками та знаннями:
- розробка та затвердження тест-стратегії;
- вміння програмувати;
- знання основних фреймворків для автотестування;
- вміння вручну перевірити функціонал, продумати сценарії, розробити план тестування;
- написання автотестів;
- контроль та аналіз результатів прогону автотестів, рапортування про знайдені проблеми;
- коригування та рефакторинг вже наявних автотестів — часто їх необхідно доопрацьовувати відповідно до прогресу роботи або зміни функціоналу та дизайну.
Переваги Automation QA:
- можливість переходу в іншу професію (Developer, DevOps): в автоматизації є своя монотонність і стеля розвитку. Професії Developer, DevOps є більш творчими і цікавими — там завжди є що вчити нового та постійний розвиток;
- знання мови програмування: ця перевага завжди дає багато можливостей у пошуках нового місця роботи — відчуваєш себе більш-менш захищеним при скороченнях;
- написання коду: знань програмування недостатньо. Потрібно ще писати код, щоб мати практику, не забувати синтаксис та тримати себе у тонусі.
Недоліки Automation QA:
- складніший напрям у вивченні;
- більше часу для старту;
- у написанні коду для автотестів є своя рутина;
- часто замовник визначає, на чому будуть написані автотести: трапляється, коли розробка йде однією мовою програмування (логічно на ній же писати автотести), але замовник обирає іншу мову через низку причин — дешевші фреймворки, більше спеціалістів на ринку, дешевша підтримка.
В ідеалі задачі автотестувальника повинні складатися з покриття автотестами мануальних тест-кейсів, які готує QA manual, налаштування Pipelines для нічних (тести запускаються вночі) і регресійних ранів, стеження за цими ранами, виправлення помилок у коді, root cause analysis знайдених багів, контролю та аналізу графіків після нічних проходжень тестів, участь у регресії, а також Exploratory testing — куди ж без нього.
Але, на жаль, у більшості проєктів немає ідеально розподілених обов’язків, і всі задачі, котрі описані для мануального QA, переходять до автотестувальника. Тому сьогодні автотестувальник — це універсальний Full-Stack спеціаліст у сфері quality.
Soft skills, якими повинен володіти QA Automation Engineer:
- вміння моніторити і контролювати свою роботу;
- стратегічне та аналітичне мислення;
- хороша пам’ять та зібраність: написання автотестів потребує знання фреймворків, готових рішень, а також завжди вивчення нових технологій та інших мов програмування;
- вміння передбачити ризики, проводити mitigation and contingency ризиків;
- управління часом: спеціаліст повинен не тільки писати вчасно автоматизовані тести, але й готувати всю необхідну документацію (мануальні тест-кейси, баг-репорти, чек-листи);
- ефективна комунікація з командою та замовниками;
- неконфліктність.
Чи потрібні ці два фахівці в одній команді
Роль будь-якого QA у команді — це насамперед важливість якості продукту. Без професійного тестувальника це майже неможливо. У чому принципова різниця між Manual та Automation? Наче після двох цих слів йде тестувальник? Чому тоді виділяють ці дві ролі у проєкті? Розглянемо детальніше.
В ідеалі у кожному великому проєкті повинні бути як Manual, так і Automation QA. QA Manual Engineer готує manual тест-кейс, робить мануальне тестування в той час, як Automation QA бере мануальний тест-кейс та покриває його автотестом. Така злагоджена робота дає свої плоди у періоди регресійного тестування (тестування усього функціоналу перед релізом), а також в проєктах, де нормою вважаються дуже великі обсяги тестування в короткі проміжки часу. Також такий тандем є виправданим при розрахунку ризиків, їх mitigation і contingency.
Тобто обидві ролі важливі. Але знову ж таки, ми не живемо в ідеальному світі. Тому не завжди на проєктах є таке ідеальне поєднання тестувальників. Чому це так?
- По-перше, ціна послуг. Досить таки дорого мати одразу тестувальників двох типів.
- По-друге, вид проєкту — не на всіх потрібні Automation або Manual QA. Все залежить від проєкту. Об’єктивно кажучи, не всі проєкти можна автоматизувати.
- І по-третє, не завжди потрібні Manual QA. Скажімо, навіщо Manual QA, якщо проєкт передбачає support, коли розробка вже завершена і ніяких нових фіч вже не потрібно? У такому випадку все можна автоматизувати.
Тобто виходить, у нас палка з двома кінцями. Все залежить від проєкту, фінансових можливостей та потреб у якості продукту. Є проєкти, де потрібні обидва QA, є проєкти, де потрібні тільки QA Automation, а є такі, де QA Manual.
QA Manual Engineer здебільшого потрібні у FinTech, проєктах, які пов’язані з business intelligence, або на десктоп-проєктах. Наразі поки немає інструментів, які б робили тести стабільними й не потребували багато часу та й саме автотестування стає досить таки дорогим через мінливість фінансових умов або великих обсягів даних, які потрібно правильно обробляти.
Автоматизатори потрібні здебільшого на вебпроєктах, для яких є багато досить стабільних фреймворків для більшості мов програмування. Також автотестувальники потрібні на проєктах, де тестуються тільки API або GraphQl.
Mustread & Musthave. Як стати QA Automation або QA Manual спеціалістом
Що вчити, читати, які навички розвивати, якщо хочеш стати QA Automation спеціалістом або QA Manual спеціалістом. Насамперед важливою є самоосвіта — треба стежити за трендами й підписуватися на експертів у цій сфері.
QA Manual спеціалісти повинні отримати такі знання:
- знання API, GraphQl та вміння їх тестувати;
- знання REST Clients для тестування, наприклад, Postman;
- вміння писати запити до баз даних;
- знання MS SQL, Mongo, MySql та інших. Вміння працювати з їх клієнтами для написання запитів;
- вміння працювати з панеллю розробників F12 Dev Tools браузера;
- знання та вміння працювати з будь-якою Bug tracking system — Jira, Azure DevOps, HQ Quality center та інші;
- теорія згідно з ISTQB;
- знання основних понять: тестування, верифікація, валідація, техніки тест-дизайну, 7 принципів тестування, цілі тестування, що таке якість та PERFUM тощо;
- розуміння DOM та основних тегів HTML;
- вміння збирати метрики;
- розуміння клієнт-сервісної архітектури;
- орієнтація у роботі F12 dev tools у браузері, а також Fiddler або Charles.
Для отримання цих знань я раджу два ресурси — або курси QA Manual, або самостійне вивчення у w3school чи будь-якому онлайн-ресурсі в Google.
Для QA Automation трохи складніше. У цій сфері необхідні такі знання:
- володіння однією з мов програмування, а в нинішніх реаліях — навіть двома;
- знання фреймворків для написання автотестів для Front end;
- знання фреймворків для написання автотестів для Back end;
- вміння працювати з патернами програмування;
- здатність налаштувати CI/CD процеси;
- знання Docker, який стає популярним на більшості проєктів;
- вміння працювати із запитами до баз даних саме у програмному коді;
- те ж саме стосується й API;
- знання теорії тестування, як і для Manual QA;
- знання системи контролю версій (Git) і вміння з нею працювати;
- розуміння основних принципів певної методології розробки (наприклад, Agile), якої дотримується компанія;
Це все можна освоїти на курсах або займатись самостійно на основі різних інформаційних ресурсів.
Можливі напрямки кар’єрного розвитку QA Manual
- Вирости до Team Lead. Залежить від рівня експертності та soft skills. Достатній досвід, щоб стати лідом — мінімум
4-5 років. - Перекваліфікуватися у Business Analyst. Легший шлях, але робота рутинна і потребує дуже багато праці з документами. Шлях від QA Manual до QA Automation — від пів року до року.
- Перекваліфікуватися в автоматизатора. Треба вивчити основи програмування, що займає
3-4 місяці. Також важливо вивчити фреймворки для тестування і вміти ними користуватись, що також займає приблизно2-3 місяці. Загалом весь шлях може зайняти до пів року.
Можливі напрямки кар’єрного розвитку QA Automation
- Перейти у девелопмент. Займає десь до
2-х років, щоб вийти, наприклад, на той самий рівень доходу. - Вирости до Team Lead. Залежить від рівня експертності та soft skills. Достатній досвід, щоб стати лідом — це мінімум від
3-х років. - Перейти у Delivery Management. Ефективні Delivery-менеджери — це найчастіше досвідчені технічні спеціалісти, які виросли з девелопменту або автотестування.
Короткий висновок
Як QA Manual, так і QA Automation важливі в одній команді. Вони доповнюють одне одного — з QA Automation спадає рутина підготовки мануальної документації, і він чи вона може зосередитись на написанні коду, а з QA Manual спадає рутина проходження regression та smoke тестування мануально.
Кожен зі спеціалістів може на певний період і на певні задачі замінити один одного у випадку форс-мажорних ситуацій. Автоматизатор може займатися мануальними задачами — написанням тестової документації, ручним тестуванням, проходженням регресії. QA Manual може запускати Pipelines на нічний, регресійний прогін тестів, збирати репорти та мануально перевіряти автотести на предмет помилки у функціоналі.
Проєкти, в яких є дві ролі, мають значно вищий рівень якості продукту, швидше тестування, а тому і швидшу доставку готового функціоналу.
29 коментарів
Додати коментар Підписатись на коментаріВідписатись від коментарів