Сучасна диджитал-освіта для дітей — безоплатне заняття в GoITeens ×
Mazda CX 30
×

Роль 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.

Тобто обидві ролі важливі. Але знову ж таки, ми не живемо в ідеальному світі. Тому не завжди на проєктах є таке ідеальне поєднання тестувальників. Чому це так?

  1. По-перше, ціна послуг. Досить таки дорого мати одразу тестувальників двох типів.
  2. По-друге, вид проєкту — не на всіх потрібні Automation або Manual QA. Все залежить від проєкту. Об’єктивно кажучи, не всі проєкти можна автоматизувати.
  3. І по-третє, не завжди потрібні 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 на нічний, регресійний прогін тестів, збирати репорти та мануально перевіряти автотести на предмет помилки у функціоналі.

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

👍ПодобаєтьсяСподобалось32
До обраногоВ обраному8
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

День, коли тестувальникив перестануть називати QA, має бути національним святом у всіх нормальних країнах.

Статья — апогей галерного мышления

Перепрошую, а що таке «PERFUM»? Гугл не дав адекватної відповіді.

Portability, Efficiency, Reliability, Functionality, Usability, Maintainability — характеристики якості.

Ярик, привет, крутая статья! Все очень подробно расписано. Думаю особенно новичкам будет полезно.
Единственное это я бы всё-таки не грузил автоматизаторов организацией ci/cd, для этого должен быть нормальный девопс. Да, понимать что такое пайплайн и как он работает нужно, но подымать это на проекте не дело автоматизатора. А вакансии, которые это требуют просто хотят за одну зарплату натять себе сразу и девопса и автоматизатора и мануала в одном лице))
Еще раз похвалю статью, действительно годно написано.

Дякую, Макс) CI/CD не дуже складно зробити, якщо трохи розбиратись з Docker. На проекті вже є репозиторій з солюшеном на type script, так що зараз будемо підтримувати шарпи і писати на TS+Playwright.

Ну це питання зекономити на девопсі, нагрузити авто-куа за ту саму винагороду.

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

Є 500 мануальних кейсів на регрес — автоматизатору одночасно і проходити і автоматизувати? І тоді за вашими словами різниця в зп між цим спеціалістом, і тим, який робить тільки manual як правило невелика?

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

3к за ручного і 6к за автомейшена це не дуже відрізняється? Мануал в аутсосрі буде жити вічно.

Автомейшн 6к це точно не середня вилка, навіть середній девелопер ні отримує 6к на аутсорсингу

я думаю це йдеться про ± максимальні вилки для хороших спеців

В ідеальному світі так. Але як завжди є багато чого з категорії it depends.

В зовсім ідеальному світі тестувальників взагалі немає — бо нормальний девелопер сам напише код, сам протестує, сам задеплоїть його на прод та сам потім буде моніторити його роботу (паралелльно пишучи інші нові фічі).

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

На великих проєктах, доречі, написання автотестів — це дуже маленька частина айсбергу. Багато часу йде саме на аналіз фейлів, фікс тестів, боротьбу із flaky тестами. На все це потрібен час. Тому й на багатьох проєктах потрібні окремі люди для цього. А flaky тести є навіть у Google. І нічого — борються із цим. Але не можуть подолати.

Вітаю, чи є бажаючі поглянути на моє CV manual qa? Шукаю першу роботу, а резуальтат взагалі ніякий( ніяких відгуків, з десятків спроб — 2 відмови(повний ігнор)

Advanced QA Automation

Це шоб сiньора не давати?

Наступний рівень після Senior у компанії.

Дякую за останній абзац)
Багато хто із замовників цього не розуміє.
Та й не тільки замовників.

Черговий топік про одне і те саме. Таке відчуття, що на доу дві категорії можливих топіків, серед яких вибирають автори: в чому різниця між AQA/QA і чому ведення сторінки в Лінкедін — це супер іноваційно і круто

Підкажіть будь ласка, якщо я хочу почати відразу з позиції junior/trainee qa automation (програмуванням вже володію), чи треба обов’язково закінчувати курси по qa manual, чи достатньо базових концепцій теорії тестування.

Курси закінчувати не обов’язково. А от мати хороші знання предметної області — завжди плюс. Якщо вам заходить формат навчання у вигляді курсів то беріть прометеус або юдемі за 12 баксів. За 300+ баксів можна не купляти.

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

Читаючи статті на ДОУ про тестувальників, складається враження що за рамками вебу тестувальників не існує :) . Хоча треба віддати належне автору, один раз він про це згадав.

Ну, як стаття для початківця — цікава, як на досвідченного — бомбить)

теж саме можу сказати, про твої статті. Якщо що, я теж в атоматизації 5+ і не знайомий з автором статті.

Цікава стаття! Єдине, є деяка розбіжність — в тексті розділу «Як виглядає роль QA Manual у структурі Software testing life cycle» написано «Test Cycle Closure», а на картинці — «Test Case Closure». Потрібно поправити)

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