Quality Assurance engineer - це фахівець із забезпечення якості, діяльність якого спрямована на поліпшення процесу розробки ПЗ, запобігання дефектів і виявлення помилок в роботі продукту.
За даними ДОУ, середньому українському QA-інженеру 26 років. Він має досвід роботи від півроку (джуніор) до 5 років (сеньйор) і отримує зарплату $ 600-2700.
Завдання та обов'язки спеціаліста по QA
Основне завдання QA - забезпечення якості. QA-інженер фокусує увагу на процесах розробки ПЗ, покращує їх, запобігає появі дефектів і проблем.
Процес забезпечення якості складається з таких етапів:
- перевірка вимог до продукту;
- оцінка ризиків;
- планування ідей щодо поліпшення якості продукту;
- планування тестування;
- аналіз результатів тестування;
Всередині процесу QA виділяють процес Quality Control - контроль якості продукту. QC-фахівці аналізують результати тестування і відповідають за виявлення і знищення дефектів в продукті.
Ще більш вузька спеціальність в рамках QA / QC - тестувальник ПЗ, який перевіряє готовий продукт на наявність помилок (багів) і невідповідність вимогам, і потім документує знайдені дефекти та шляхи їх відтворення. Тестування - це один з етапів забезпечення та контролю якості.
QA повинен точно розуміти, в який момент за справу візьметься тестувальник, і встигнути підготувати до цього часу план тестування, тестову документацію, тестове оточення.
Тестувальник знає, як система працює, де вона не працює, і де працює не так, як задумано. Він вміє визначити, чим викликана помилка, або хоча б знає, де це шукати.
В Україні відмінності між посадами QA і тестувальника ПЗ майже відсутні, і на практиці це одне і те ж. Хоча теоретично тестувальник тестує продукт як результат, а QA працює над забезпеченням процесів, які можуть підвищити якість ПЗ в цілому.
Якби ми говорили про медицину, то QA займалися б профілактикою, а тестувальники - діагностикою. Але так склалося, що ці дві різні професії стали синонімами. Навіть в тест-плани для іноземних замовників тестувальників записують як QA Engineers.
У коло обов'язків QA-інженера входить:
- Аналіз і уточнення вимог із замовником або бізнес-аналітиками;
- Планування процесу тестування;
- Написання тест-кейсів (сценаріїв тестування);
- Тестування функціоналу;
- Ідентифікація проблемних місць, внесення їх в трекінгову систему;
- Обговорення фіксів з розробниками;
- Відстеження життєвого циклу помилок;
- Ре-тест підпорядкованих дефектів;
- Аналіз тестування;
- Оптимізація процесу тестування;
- Аналіз процесів роботи в команді;
- Поліпшення процесів;
- Ведення тестової документації.
Типовий робочий день QA-фахівця включає в себе:
- Написання тест-кейсів, тестування, документування помилок (в залежності від фази проекту);
- Перевірка баг-трекінгової системи на предмет появи виправлених помилок;
- Стенд-ап мітинги;
- Вивчення вимог, їх уточнення у замовника;
- Активне спілкування з розробниками;
- Оформлення тестової документації.
Переваги та недоліки роботи QA-інженером
Привертає QA-інженерів можливість покращувати якість продукту і при цьому освоювати різні технології і вникати в деталі продукту.
Деякі спеціалісти відзначають, що інтерес до роботи посилюється з часом: спочатку не зрозуміло, що робиться і для чого, а потім приходить розуміння і бажання брати на себе складні завдання.
Ця професія вимагає наявності і постійного застосування аналітичних здібностей. Вона не дає розслабитися і розумово деградувати, а змушує постійно вивчати нові технології і галузі знань.
Не останнє місце займає і можливість долучитися до світу високих технологій та великих зарплат. Деякі інженери по якості прийшли до своєї професії, тому що хотіли в IT, а поріг входу на QA нижче, ніж на програміста. Деякі вважають роботу QA більш цікавою та різноманітною, ніж роботу розробника.
Головний мінус роботи, як відзначають QA-інженери - монотонна складова роботи, особливо на початку кар'єри. Сюди відносять проходження тест-кейсів при ручному тестуванні і роботу з документацією.
Як стати QA-фахівцем і куди йти далі?
Майбутні QA набувають знання на курсах або ж самостійно.
Щоб стати QA потрібно розуміти цикл розробки ПЗ, вивчити теорію і основні інструменти тестування, мати хороший рівень володіння англійською мовою.
Переважна більшість вакансій вимагають знання English. Часто великі компанії беруть джуніор зі знанням англійської, відмовляючи кандидатам з великим досвідом, але без знання мови.
Базові знання теорії тестування - це вміння відповісти на питання:
- що таке тестування і для чого воно потрібне;
- які бувають види тестування;
- що таке баг і яким є його життєвий цикл;
- яка документація використовується при тестуванні.
Бажано також вивчити якусь мову програмування, а також HTML, SQL, CSS etc. Це дозволить якісніше робити свою роботу і швидше рухатися по кар'єрних сходах.
QA відповідальний за поліпшення якості процесу розробки, а тому повинен володіти деякими навичками інших членів команди:
Від девелопера - розуміння технічних обмежень для реалізації того чи іншого функціоналу і хоча б поверхневе розуміння коду;
Від бізнес-аналітика - розуміння ринку і цільової аудиторії;
Від PM'а - розуміння цілісності всіх частин проекту.
Також необхідне вміння дивитися на продукт з точки зору кінцевого користувача.
Професія QA зобов'язує розуміти всі технічні аспекти і цілі бізнесу, а також вміти правильно спілкуватися з замовниками / менеджерами / девелоперами. Не бійтеся задавати питання, починаючи з "А що, якщо?". Дуже часто це рятує години, а то і дні розробки для всієї команди.
Якщо говорити про особистісні якості, то необхідно:
- Мати широкий IT-кругозір і тягу до вивчення нового
- Вміти спілкуватися - якість комунікації в команді розробки безпосередньо впливає на якість створюваного ПЗ
- Бути уважним до деталей, посидючим, відповідальним і наполегливим
- Володіти аналітичними здібностями, вміти моделювати і працювати з абстракціями
- Мати критичний або навіть «деструктивний» склад розуму, спрямований на знаходження помилок
- Відрізняти муху від слона
Перспективи професійного розвитку
- Вивчати нові області і рости як QA: junior QA -> middle QA -> senior QA -> QA team lead -> QA-manager -> Head of QA department.
- Освоїти автоматизоване тестування і рухатися вже по цій гілці (вимагає більш глибоких технічних знань).
- Перекваліфікуватися в бізнес-аналітика або програміста.
- Отримавши достатню кількість досвіду, можна дорости до менеджера проекту і потім розвиватися як управлінець (senior project manager -> CTO). Також зараз відкрито безліч курсів з навчання QA, так що основну роботу можна поєднувати з викладанням або консультуванням.