QA Engineer
Статьи

Обов’язки QA Engineer та які навички потрібні для цієї посади

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

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

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

Хто такі QA?

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

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

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

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

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

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

  • Участь у мітингах. QA проводить аналіз роботи, оцінює її обсяг та складність та бере участь в обговоренні процесу розробки. На мітингах спеціалісти також звітують про попередню роботу та презентують план на наступний період.
  • Створення тест-планів і тест-кейсів. До завдань тестувальника входить розробка стратегії тестування, плану та набору тест-кейсів для виконання різноманітних тестів. Тест-кейси створюють для кожного завдання, яке можливо протестувати.
  • Проведення тестування та внесення його результатів до системи. Багом не є кожна проблема, з якою зіткнувся тестувальник. Фахівець повинен переконатися у тому, що під час тестування не відбувається оновлення сервісів, а останні оновлення, які треба протестувати, уже задеплоїні на сервер. Він також має перевірити, чи немає збоїв у роботі сервісів.
  • Автоматизація тестування. Для створення тестів, які можуть бути виконані автоматично, QA використовує іноді інструменти автоматизації. Зазвичай це входить в обов’язки тестувальників-автоматизаторів. Вони також відповідальні за налаштування автоматичного запуску тестів на CI/CD.
  • Подання звітів. Створення документів про дефекти, визначення їх пріоритетів, звітування про проведене тестування – це все також є колом обов’язків тестувальника. Потім ця інформація надається команді розробки та стейкхолдерам.
  • Аналіз проведеного тестування та дефектів, що надійшли від кінцевого користувача чи команди підтримки.

Різниця між Manual, Automation та General

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

Вміння, якими повинен володіти Manual QA:

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

З чого складається типовий робочий день мануальника?

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

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

Automation QA повинен:

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

З чого складається типовий робочий день автоматизатора?

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

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

General QA повинен володіти наступними вміннями:

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

Зарплати QA

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

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

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

Додаткові знання та навички, якими повинен володіти QA

Blockchain

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

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

Embedded

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

GameDev

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

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

Важливі soft skills

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

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

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

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

Знання англійської мови: Це може не зовсім відноситися до soft skills, але всі опитані фахівці QA визнали його важливість.

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

Що повинен знати новачок QA про мітинги?

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

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

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

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

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

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

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

Мінусом для автоматизаторів є складна процедура вивчення. Автоматизатор 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?

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

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

Де новачку в сфері QA можна здобути знання?

YouTube-канали:

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

Платформи

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

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

Матеріали, які підготував DOU про професію QA

Професійний ріст у професії QA

Від стартової позиції Junior до середньої Middle можна перейти за два-три роки, і аналогічно — до вищої позиції Senior. Проте це всього лише приблизний період; все залежить від активного вдосконалення навичок та наполегливості фахівця.

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

Однак існують ширші можливості для росту та перспективи змінити професійний напрямок

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

Джерело: DOU

Слідкуйте за нами Telegram

5 1 vote
Рейтинг статьи
Підписатися
На
guest
0 комментариев
Міжтекстові відгуки
Переглянути всі коментарі