Чим займається QA Engineer і що потрібно вміти для цієї роботи

Редакція DOU відновлює рубрику «Кар’єра в IT», де ми детально описуємо специфіку окремих IT-професій. Цього разу розповідаємо, чим займається QA Engineer, які зарплати в цій ніші та як проходить типовий робочий день спеціалістів.

За даними DOU, середньостатистичному українському QA Engineer 30 років, найчастіше він живе у Києві або Львові. Найбільша частка фахівців — рівня Middle, тобто мають досвід роботи 3-5 років та медіанну зарплату $2000. У цій професії більше чоловіків — 62%, жінок відповідно 38%.

Ми поспілкувалися з QA-фахівцями та дізналися, які навички та знання їм потрібні для роботи, що треба знати про мітинги і які є переваги, недоліки та перспективи розвитку. Усі цитати взяті з їхніх розповідей.

👨‍💻 Хто такі QA
✅ Основні завдання та обов’язки QA
👾 Manual, Automation, General — у чому різниця
💰 Зарплати QA
📚 У яких напрямах QA потрібно мати додаткові знання та навички
🐾 Які soft skills важливі для QA
👩‍🏫 Що потрібно знати про мітинги QA-новачку
🎢 Переваги та недоліки роботи QA
🎫 Що має знати Junior QA
👉 Як стати QA
🎩 Розвиток у професії QA

👨‍💻 Хто такі QA

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

«Іноді QA повинен бути „нянькою“ для всієї команди та правою рукою проджекта. Ви обовʼязково маєте знати кожного члена команди як у професійному плані, так і особистому, налаштовувати з усіма звʼязок. А ще пріоритезувати завдання, розуміти вплив на бізнес того чи іншого дефекту. Обовʼязок QA — думати як бізнес, жити бізнесом під час роботи, думати про оптимізацію, покращення. QA витрачає час зараз, щоб зекономити його в майбутньому».

Портрет українського QA-спеціаліста (дані з літнього опитування DOU 2023 року):

Є різні спеціалізації: QA, QС і тестувальник. QA — Quality Assurance, людина, яка забезпечує якість. QС — Quality Control — забезпечення контролю, ці фахівці аналізують результати тестування, відповідають за виявлення та усунення дефектів. Тестувальник — людина, яка тестує готовий продукт за тест-кейсом. Але часто в компаніях їх не розділяють і називають позицію або QA, або тестувальник.

«Зараз часто компанії об’єднують всі ці обов’язки в одному фахівці — QA. Проте на співбесідах можуть запитувати, у чому різниця між QA, QС і тестувальником».

✅ Основні завдання та обов’язки QA

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

2. Створення тест-планів і тест-кейсів. Тестувальник розробляє стратегії тестування, плани та набір тест-кейсів для виконання різноманітних тестів. Тест-кейси створюють для кожного завдання, яке можливо протестувати.

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

4. Автоматизація тестування. Іноді QA використовує інструменти автоматизації для створення тестів, які можуть бути виконані автоматично. Зазвичай цим займаються тестувальники-автоматизатори. Також вони налаштовують автоматичний запуск тестів на CI/CD.

5. Подання звітів. QA створює документи про дефекти, визначає їхні пріоритети і створює звіт про проведене тестування. Подає їх команді розробки та стейкхолдерам.

6. Аналіз проведеного тестування, а також дефектів, що надійшли від кінцевого користувача чи команди підтримки.

👾 Manual, Automation, General — у чому різниця

Manual QA Engineer перевіряє вручну програмне забезпечення, чи відповідає воно вимогам, виявляє дефекти та помилки. Мануальники аналізують і покращують процес тестування. Вони перевіряють ПЗ і з погляду розробки, і з погляду клієнта, контролюють його якість.

Що повинен вміти Manual QA:

  • писати документацію: тест-плани, тест-кейси, чеклісти;
  • оформляти баги;
  • проводити Root Cause аналіз;
  • працювати з інструментами для тестування API: Swagger і Postman;
  • писати запити до баз даних.

Що охоплює типовий робочий день мануальника:

  • перевірка завдань для тестування або написання тест-кейсів, пріоритезація завдань на день;
  • кілька годин тестування або ж написання тест-кейсів перед мітингом;
  • мітинг з колегами (та, можливо, з командою замовника, якщо це аутсорс). Daily stand up мітинг відбувається щодня, він зазвичай короткий (15 хвилин). Також за потреби можуть бути інші зідзвони;
  • опрацювання документації, її рефакторинг, тестування фіч, якщо є готові;
  • написання тест-кейсів для нового функціонала.

Automation QA Engineer відповідає за створення, тестування та впровадження автоматизованих рішень для перевірення якості програм. Основне завдання — переконатися, що ПЗ відповідає вимогам якості, не містить помилок і працює так, як очікувалося. Automation QA пишуть код для автоматизованих скриптів тестування, що моделюють взаємодію користувачів і перевіряють різні функції програм.

Що повинен вміти Automation QA:

  • базово знати одну з мов програмування;
  • знати основні фреймворки для автотестування та писати автотести;
  • моніторити результати прогону автотестів;
  • коригувати автотести відповідно до етапу роботи чи зміни функціонала.

Що охоплює типовий робочий день автоматизатора:

  • перевірка автотестів, які пробігли вночі, зазвичай вони запускаються на CI/CD, виявлення failed-тестів та їхніх причин;
  • виправлення failed-тестів або створення задач на баги, що блокують роботу цих тестів;
  • тестування та автоматизація завдань і тест-кейсів у спринті;
  • мітинги з командою та обговорення завдань на наступний спринт;
  • перед релізом — запуск усіх автотестів та аналіз результатів. На деяких проєктах тестувальники готують реліз-ноутси.

Існує і третій напрям — General QA. Цей фахівець має досвід і в мануальному, і в автоматизованому тестуванні.

Що повинен вміти General QA:

  • базово знати принаймні одну з мов програмування;
  • знати основні фреймворки для автотестування та писати автотести;
  • моніторити результати прогону автотестів;
  • коригувати автотести відповідно до етапу роботи чи зміни функціонала;
  • розуміти, на якому рівні піраміди повинні бути написані ті чи інші тести;
  • вміти налаштовувати CI/CD.

💰 Зарплати QA

Як змінювалися медіанні зарплати тестувальників протягом 2011–2023 років:

Зарплати QA за спеціалізацією (дані з літнього опитування DOU 2023 року):

Актуальні статистики зарплат можна переглядати у зарплатному віджеті DOU.

📚 У яких напрямах QA потрібно мати додаткові знання та навички

Blockchain

  • Мови програмування. Якщо QA взаємодіє зі смартконтрактами, здебільшого йому треба буде вчити мову програмування Solidity та базовий JS, щоб писати та читати код і тести. Плюс орієнтуватись, як виконується код і чому його «непросто змінити чи відкотити» після релізу.
  • Знання для тестування Blockchain. Теорія та практика розподілених систем і консенсусів, криптографія, peer-to-peer взаємодії в системах. А також більш поглиблені речі на кшталт zero-knowledge proofs.
  • Інструменти. Це можуть бути всім відомі інструменти для API-тестування: Postman, Insomnia, cURL.
  • Технології для автотестів. Від звичного JavaScript (TypeScript) і Python до чогось більш екзотичного типу Scala чи Rust.

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

Embedded

  • Знання домену. Embedded QA потрібно гарно орієнтуватися в домені: знатися на відповідних протоколах, сигналах тощо.
  • Інструменти та навички. Вони в Embedded відрізняються від умовних web і mobile. Корисними є навички роботи з командним рядком Linux, знання, як працює мережа, вміння працювати з Wireshark для моніторингу запитів на транспортному рівні.
  • Інша робота з моделями (особливо в автоматизаторів) і відповідні техніки тест-дизайну. Без чіткого розуміння комбінаторних технік, станів і переходів не варто тестувати Embedded.

GameDev

  • Тестування на консолях. Робота з консолями відрізняється своїми вимогами, управлінням, тестуванням UI/UX тощо. Не менш важливим фактором є те, що інформації щодо тестування консольних ігор надзвичайно мало у відкритих джерелах. Тобто більшість моментів, пов’язаних з консольним тестингом, необхідно опановувати вже на практиці.
  • Сертифікація. У GameDev широко поширена сертифікація ігор платформотримачами. У цій сфері в QA є окремий напрям з експертами з питань сертифікації на різні платформи (Compliance QA).
  • Тестування продуктивності. Цей вид тестування відрізняється від аналогічних тестів в інших доменах. В іграх важливо стежити за частотою кадрів, використанням пам’яті та тестуванням нетворку в багатокористувацьких іграх.

Також у GameDev для рядового QA-інженера важливо принаймні базово розуміти сертифікаційні вимоги до ігор на різних платформах, а також вимоги щодо продуктивності та використання пам’яті. Детальніше — читайте у матеріалі «Хто такий QA в ігровій індустрії».

🐾 Які soft skills важливі для QA

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

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

Прагнення експериментувати. Іноді QA варто поглянути на завдання з нестандартного боку: «А що я маю зробити, щоб це зламалось?». Нестандартне мислення допоможе у цій професії.

Вміння ефективно комунікувати. Важливо не лише прийти до розробників та сказати їм, що щось потрібно переробити. А вміти переконати людей і відстояти свою думку.

Знання англійської. Можливо, це не зовсім soft skill, але про його важливість сказали всі опитані QA.

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

👩‍🏫 Що потрібно знати про мітинги QA-новачку

Backlog Refinement (або Grooming). На ньому всі учасники розробки оцінюють завдання в Story Points. Це умовна величина, що визначає складність його виконання. Вона враховує всю активність, потрібну, щоб зробити це завдання.

Завдання оцінює вся команда, зокрема й тестувальники. І коли QA вперше на мітингу, йому складно відразу оцінити всю роботу. Адже в теорії він знає, що таке Story Points, але на практиці у кожної команди може бути своя шкала.

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

Planning. Це планування перед початком спринту. На ньому команда вибирає, які завдання вона буде виконувати за наступний спринт із тих, які вже обговорювали на Backlog Refinement. На мітингу складають список завдань, їх розподіляють між командою та пріоритезують. QA важливо врахувати свою зайнятість, чи встигне він закінчити заплановану роботу. Адже традиційно завдання вважається виконаним, коли готова розробницька частина, вона протестована мануально та написані автотести.

«Оскільки в команді зазвичай більше розробників, вони часом забувають про QA і те, що завдання ще потрібно тестувати. Тож можуть набрати завдань відповідно до власного capacity. Тому QA важливо на плануванні простежити, що додають у спринт і чи встигнуть вони все протестувати».

Ретроспектива. Це мітинг, який проводять після закінчення спринту. На ньому команда обговорює, що вдалося, а що ні, що варто змінити й кому подякувати. У результаті цього мітингу формується список дій для покращення робочого процесу. І QA, як і кожен учасник команди, повинен зі свого боку зазначити, що було складним у його роботі та що варто змінити.

🎢 Переваги та недоліки роботи QA

Для Automation QA плюсом є те, що він може досить легко перекваліфікуватися в розробника. Адже автоматизатор теж знає мову програмування: пише код для автотестів і працює з кодом розробників.

Мінус автоматизаторів — це складніший напрям для вивчення. Automation QA повинен вміти все те, що і мануальник, а ще знати мову програмування та вміти писати автотести.

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

Мінус для мануальників — автоматизація багатьох процесів. Тобто саме цей напрям наразі не має великого попиту. А щоб перекваліфікуватися в автоматизатора, потрібно отримати більше hard skills.

Із загальних плюсів QA відзначають велику кількість комунікації, що дає можливість отримати нові знання.

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

Також QA відмітили, що часом важливість їхньої роботи не помічають. І їм потрібно доводити свою цінність команді та менеджменту.

«Результат роботи розробника видно відразу. Роботу тестувальника видно, коли вона виконана погано та є критичні баги на продакшені. Іншими словами, розробник може сказати „дивись, я зробив цей продукт“. QA так сказати не може, адже він продукт не робив, а тільки тестував».

🎫 Що має знати Junior QA

Web:

  • Клієнт-серверна архітектура — базове розуміння;
  • HTML, DOM-дерево, JS (на рівні розуміння, як будуються Web-сторінки).

Браузер:

  • DEV tools (Network, console);
  • Cookies.

Тестування API:

  • Rest API REST, SOAP API-архітектура (що це таке, різницю між ними, коди відповідей, методи);
  • JSON, XML (що таке, навіщо потрібно).

Інструменти:

  • Postman, Fiddler;
  • JMeter (для перформанс-тестування).

Робота з базами даних:

  • SQL (на рівні базових SELECT з різними умовами).

Інструменти:

  • SQL Server Management Studio (або альтернативи).

Трекери:

  • Jira (або альтернативи) — для створення задач, тест-кейсів, багів;
  • TestRail (або альтернативи).

DNS (Domain Name System) — базове розуміння:

  • Доменні імена: розуміти, як доменні імена призначаються та інтерпретуються. Доменні імена використовують для ідентифікації ресурсів в інтернеті (наприклад, www.example.com).
  • DNS-запити: як браузери перетворюють доменні імена на IP-адреси за допомогою DNS-запитів.
  • Протоколи передачі даних — базове розуміння:
  • HTTP і HTTPS: розуміння протоколів для передачі гіпертекстового змісту через інтернет.
  • TCP/IP (Transmission Control Protocol/Internet Protocol): основний стек протоколів для передачі даних в інтернеті.

👉 Як стати QA

Зазвичай в університетах на спеціальностях, пов’язаних з програмуванням, немає предметів чи курсів з тестування. Винятком є КПІ, де на деяких факультетах є відповідний курс (наприклад, ФІОТ).

Переважно для QA проводять різноманітні курси, є відео на YouTube і книжки для самонавчання. Література переважно англійською, тому її знання важливе.

Де шукати знання новачку QA

YouTube-канали:

Безплатні курси:

Платформи

Для ознайомлення з основною термінологією та принципами тестування: Guru99. Software Testing Tutorial

Для практикування навичок написання коду: LeetCode

Що почитати про професію QA на DOU

🎩 Розвиток у професії QA

Від позиції Junior до Middle можна перейти за два-три роки. І так само до позиції Senior. Але це приблизний період, усе залежить від відточування навичок і наполегливості.

«Важливо розуміти, що Senior — це не про кількість технічних знань і вмінь, а про відповідальність. А вона приходить з досвідом. Senior — це фахівець, який сам враховує всі ризики, відповідає за свої факапи й може їх заменеджити, звести до мінімуму».

Проте є й ширші перспективи розвитку та можливість перекваліфікуватися.

«Усе залежить від того, що більше сподобається. Якщо хочеться розвивати комунікативні навички, то далі можна рухатися в бік менеджменту. Якщо ж технічні — то SDET, AQA, Security/Performance, Development тощо. Якщо це комбінація навичок, може бути напрям Head/Lead».


Дякуємо за підготовку та рецензування матеріалу нашим експертам. Серед них:

Роман Марінський — QA Lead / Release manager в GO TO-U (окрема подяка команді Романа);
Геннадій Міщевський — Lead SDET (Test Automation) Engineer в FutureLog;
Павло Сафонов — Senior QA expert в Sitecore та QA coach в Комп’ютерній школі Hillel;
Олексій Остапов — Head of Test Automation Practice в Infopulse;
Оксана Коваль — Middle QA Automation Engineer в EPAM Systems;
Ганна Каплун — Lead QA Engineer в Intellias;
Олександр Романов — Software Engineer In Test в IOHK;
Олександр Шараєвський — Head of QA Department в Pingle Studio;
Анна Політікова — Middle Manual QA Engineer в Agilie;
Дмитро Потапов — Senior QA Automation Engineer.



Все про українське ІТ в телеграмі — підписуйтеся на канал DOU

👍ПодобаєтьсяСподобалось23
До обраногоВ обраному15
LinkedIn



20 коментарів

Підписатись на коментаріВідписатись від коментарів Коментарі можуть залишати тільки користувачі з підтвердженими акаунтами.

Посадові обовʼязки тестувальників: 😅
0. чатються та ниють в чатах
1. ниють на колах
2. ниють плани про тестування
3. проводять ниюче тестування
4. автоматизують ниття
5. подають звітність про ниття
6. аналіз проведеного ниття

У цьому каналі теж можна знайти море безкоштовних навчальних ресурсів для QA від трейні до менеджменту;) www.youtube.com/@QAGroupVideo

Тобто зі всіх Lead/SDET/Senior експертів і редакторів ніхто не помітив, що на позицію Junior QA у вимогах немає базової теорії? Тест дизайн чомусь згадується лише в Embedded. За методології ні слова. В ресурсах жодної профільної книжки...
Це журба, а не стаття

ви можете написати свої рекомендації по книжкам в коментарях :)

з корисного для навчання може бути ще цей канал youtube.com/@from_a_to_qa :) там є декілька курсів невеличких :)

Дякую за посилання на канал <3

Основні завдання та обов’язки QA:
1. Участь у мітингах.
— Це якщо тебе туди позвали. Скоріш за все звати будуть на дейлики та допитуватися що ти робив та чего так мало і так погано.

2. Створення тест-планів і тест-кейсів.
— Які стратегії та тест плани? На спринт? Та ну. А от тест кейси — так: кожна кнопка повинна бути покрита 25 тест кейсами та трейситися на рекваєрменти :)

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

4. Автоматизація тестування.
— Так. Кожен QA в незалежності від грейду повинен вміти писати автотести та налаштовувати автоматичний запуск тестів на CI/CD. А ще баги в контейнерах фіксити на проді поки деви у відпустці. Один хер він нічого не робить по проекту.

5. Подання звітів.
— Ага. Кожен день по 10 звітів до 10 менеджерів різного рівня — бо це його основна работа!

6. Аналіз проведеного тестування, а також дефектів, що надійшли від кінцевого користувача чи команди підтримки.
— Що саме повинен аналізувати і яку проблему ми вирішуємо? Так. Забув. QA все одно нічого не робить корисного.
— Дефекти користувача. Теж саме — якщо більше мільйона користувачів — взагалі вогонь :) Тільки треба не забути користувачам доступ до Jira надати щоб зменшити фітбек луп :)

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

Класна і корисна стаття. Завдяки школі RedRover School став автоматизатором.!

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

базово знати одну з мов програмування;

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

Стосовно Blockchain не обов’язково знати Solidity. Взаємодіяти з контрактами можна через різні тестнети чи мейннет. Але треба розуміти, що таке метод смартконтракту, вміти прочитати транзакцію, відправити транзакцію різними способами.

Згоден.
В тестуванні дуже багато всього не обов’язкового. Але чим більше знаєш — тим більш цікави тести можна задизайнити.

Йшов 2023 рік, а люди все ще думали чим займається QA

в нас вчора в чаті був «файт» кого вважати БА і СА.

Це вічне питання від менеджмента :) - Нафіга QA на проекті? Що? Девелопери не тестують?

Коли штампують автомейшенів на курсах, він і гадки не має що таке техніки тест дизайну

напевно наразі головне для цієї посади це вміти знайти першу роботу.... Всі інші знають що це таке бо вже працювали)

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

Щоб дізнатися чи хочеш тим займатися треба піти на курси, хоча б безкоштовні

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

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