У межах рубрики «IT Role» ми з вами знайомилися зі сферою менеджменту: говорили про проджект-менеджера, продакт-менеджера та продакт-оунера. Давайте сьогодні трохи обговоримо забезпечення якості ПЗ та одну з найбільш затребуваних професій — QA Engineer.
Хто такий тестувальник?
Стоп, ми ж з вами вирішили говорити про QA Engineer. Тоді до чого тут тестувальник? Розберемося з поняттями, які можуть збентежити під час знайомства з цією професією:
- Quality Assurance — процес, спрямований на забезпечення високої якості продукту, що розробляється. Він присутній на всіх етапах розроблення, запуску та подальшої підтримки: сюди входить підбирання методів/методологій для контролю за якістю, створення стандартів, підбирання інструментів для збору та аналізування інформації, налагодження механізму виявлення та запобігання дефектам (або баґам). Якщо по-простому, основне завдання QA — зробити програму краще як для бізнесу (реалізувавши бажані функції), так і для кінцевого юзера (щоб йому було зручно користуватися нею). При цьому важливо запобігати появі помилок та збоїв.
- Quality Control (контроль якості) — одна зі складових QA. Тут мають на увазі аналізування отриманих даних після проведення тестів, пошук та виявлення помилок/дефектів. І якщо QA — великий термін, що описує весь процес забезпечення якості в компанії, говорити про QC будемо в контексті певного продукту — перевірка його коду, юзабіліті, дизайну тощо.
- Testing (тестування) — процес перевірки реалізованих функцій на відповідність заданим параметрам.
Ролі фахівців із забезпечення якості
Серед експертів у тестуванні ПЗ можна виділити 4 основні ролі, що відрізняються своїми KPI (Key Performance Indicators або Ключові показники ефективності). Найчастіше один фахівець поєднує щонайменше кілька ролей:
- Менеджер (Test Manager). Відповідає за організацію процесу забезпечення якості: складає та контролює плани й терміни виконання робіт, спілкується з ключовими стейкхолдерами, стежить за % покриття вимог тестами, організовує роботу QA-команди.
- Аналітик (Test Analyst). Працює з вимогами (аналізує однозначність, відсутність суперечностей, повноту) та структурою застосунків (виділяє основні складові, пріоритезує терміновість тестування, складає схематичну карту).
- Дизайнер (Test Designer). Отримавши аналіз вимог та карту програми, розробляє тест-кейси.
- Тестувальник (Test Executor, Tester). Виконує написані тести, створює технічну документацію, де описує знайдені дефекти і як він їх отримав.
Види тестувальників
Можна виділити 2 великі групи щодо способу проведення процесу тестування:
- Функціональний/мануальний тестувальник. Перевірка програм/застосунків згідно із заданими критеріями проводиться вручну.
- Автотестувальник. Перевірка відбувається за допомогою коду, написаного для автоматизації процесу.
Також компанії можуть виділяти на окрему посаду експертів, які займаються певним видом тестування: наприклад, security QA Engineer — перевіряє системи безпеки (дуже актуально в банківській сфері), тестувальник локалізації — важливо для програм, що виходять у різних країнах тощо. Але найчастіше потрібні фахівці, здатні проводити щонайменше кілька різновидів тестування.
QA Engineer і тестувальник
Ми розібрали процеси забезпечення якості, види та ролі фахівців. Чи можемо тепер сказати точно, в чому полягає різниця між QA Engineer та тестувальником?
Теоретично, QA Engineer — ширше поняття, яке передбачає фахівців, відповідальних за забезпечення якості у компанії: сюди входить підготовка плану, необхідної документації, аналізування вимог, написання тест-кейсів тощо. Вони відповідають за налаштування механізму, який може покращити як програмне забезпечення, так і сам процес розробки загалом. QA Engineer проводить тестування за попередньо підготовленими завданнями, аналізує, де і як краще шукати можливі вразливості й баґи.
На практиці, через відносну «молодість» ІТ-сфери, отримуємо кашу у вигляді суміші різних завдань та обов'язків в одній вакансії. Буває так, що в компанію шукають QA-менеджера, хоча на практиці потрібні автотестери або мануальні тестувальники.
У чому полягає робота QA-інженера?
Основне завдання QA-фахівця — забезпечити випуск якісного продукту. Його можна розбити на низку цілей:
- детально вивчити вимоги до продукту та його структуру;
- скласти план можливих ризиків та способи їхнього запобігання;
- розробити план для покриття вимог тестами та написати графік їх проведення;
- провести тестування;
- проаналізувати отримані дані, задокументувати дефекти та передати їх для виправлення.
Обов'язки фахівців-тестувальників
- Вивчення специфікацій до продукту у тандемі з бізнес-аналітиками чи замовниками.
- Пошук слабких місць для більш детального спостереження.
- Планування тестування та написання тест-кейсів.
- Проведення тестів та аналізування отриманих даних.
- Спілкування з розробниками про внесені виправлення.
- Проведення повторного тестування пофікшених елементів та роботи всього застосунку з виправленими фічами.
- Аналізування процесів всередині команди щодо ефективності.
- Ведення документації.
- Проведення мітингів.
Куди можна розвиватися QA-фахівцю?
У разі жорсткої конкуренції, створення якісного продукту — основне завдання будь-якого бізнесу, тому попит на таких фахівців зростає. Якщо раніше поріг входу був мінімальний, зараз для успішного старту навіть на позиції Junior потрібно пройти спеціальні курси з тестування. Припустимо, ви отримали цю посаду. Куди йти далі?
Вертикальне кар'єрне зростання може початися з позиції Trainee і йти шляхом Junior → Middle → Senior. Далі ви можете стати тім-лідом, а потім — головою відділу забезпечення якості (якщо він є у вашій компанії).
Горизонтальне кар'єрне зростання передбачає розвиток hard skills: наприклад, можна йти в тестування безпеки (перспективний напрям в еру масової діджиталізації) або ж впритул зайнятися автотестуванням, включно з вивченням мов програмування.
Також можливий перехід у суміжні галузі: менеджмент, дизайн, розроблення. Звичайно, це вимагає вивчення нової інформації, але бекґраунд та знання IT-кухні зсередини допоможуть розібратися у тонкощах швидше.
Для кого підходить посада інженера із забезпечення якості?
Ви відкриті новим знанням, полюбляєте шукати нестандартні шляхи для виконання звичайних завдань, умієте знаходити причинно-наслідкові зв'язки, умієте знаходити причинно-наслідкові зв'язки та відповіді на різні запитання? Тоді професія тестувальника може прийтись вам до душі!
Якщо вирішили спробувати себе в цій ролі, можна почати з вивчення матеріалу в інтернеті або піти на курси з основ тестування ПЗ. Тим самим ви заощадите час, при цьому отримаєте систематизовану інформацію, яку зможете використати на практиці.