IT професії

 

Існує стереотип, що всі айтішники – це програмісти, але це не так. IТ-галузь об’єднує в собі досить багато різнопланових професій, в тому числі й “нетехнічних”.

Тестувальник

Quality Assurance engineer – це фахівець із забезпечення якості, діяльність якого спрямована на поліпшення процесу розробки ПЗ, запобігання дефектам і виявлення помилок в роботі продукту.

За даними ДОУ, середньому українському QA-інженеру 26 років. Він має досвід роботи від півроку (джуніор) до 5 років (сеньйор) і отримує зарплату $ 600-2700.

ЗАДАЧІ ТА ОБОВ’ЯЗКИ

Основне завдання QA – забезпечення якості. QA-інженер фокусує увагу на процесах розробки ПЗ, покращує їх, запобігає появі дефектів і проблем (Makes sure you are doing the right things, the right way).

Процес забезпечення якості складається з таких етапів:

– Перевірка вимог до продукту;

– Оцінка ризиків;

– Планування ідей щодо поліпшення якості продукту;

– Планування тестування;

– Аналіз результатів тестування;

Всередині процесу QA виділяють процес Quality Control – контроль якості продукту. QC-фахівці аналізують результати тестування і відповідають за виявлення і знищення дефектів в продукті (Makes sure the results of what you have done is what you expected).

Ще більш вузька спеціальність в рамках QA / QC – тестувальник ПЗ, який перевіряє готовий продукт на наявність помилок (багів) і невідповідність вимогам, і потім документує знайдені дефекти і шляхи їх усунення. Тестування – це один з етапів забезпечення та контролю якості.

Існує 4 основні ролі:

  • Test Analyst – займається статичним тестуванням вимог: перевіряє, наскільки вони повні, однозначні, несуперечливі;
  • Test Designer – створює набір тестів на базі вимог, планує конфігурації, необхідні для тестування;
  • Test Executor – виконує заздалегідь підготовлені тести, документує знайдені помилки і кроки їх відтворення;
  • Test Manager – швидше управлінець, ніж інженер. Планує й контролює роботи, пов’язані з тестуванням: оцінки термінів, роботу над планом-графіком, контроль покриття вимог тестами, постановку завдань членам команди, комунікацію зі стейкхолдерами).

«QA повинен точно розуміти, в який момент за справу візьметься тестувальник, і встигнути підготувати до цього часу план тестування, тестову документацію, тестове оточення».

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

В Україні відмінності між посадами QA і тестувальника розмиті, і на практиці це одне й те саме. Хоча теоретично тестувальник тестує продукт як результат, а QA працює над забезпеченням процесів, які можуть підвищити якість ПЗ в цілому.

«Якби ми говорили про медицину, то QA займалися б профілактикою, а тестувальники – діагнозами. Але так склалося, що ці дві різні професії стали синонімами. Навіть в тест-планах для іноземних замовників тестувальників записують як QA Engineers».

У коло обов’язків QA-інженера входить:

– Аналіз і уточнення вимог із замовником або бізнес-аналітиками;

– Планування процесу тестування;

– Написання тест-кейсів (сценаріїв тестування);

– Тестування функціоналу;

– Ідентифікація проблемних місць, внесення їх в трекінгову систему;

– Обговорення правок з розробниками;

– Відстеження життєвого циклу помилок;

– Ре-тест підпорядкованих дефектів;

– Аналіз тестування;

– Оптимізація процесу тестування;

– Аналіз процесів роботи в команді;

– Поліпшення процесів;

– Ведення тестової документації.

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

Типовий робочий день QA-фахівця включає в себе:

– Написання тест-кейсів, тестування, документування помилок (залежно від фази проекту);

– Перевірка баг-трекингової системи на предмет появи виправлених помилок;

– Зустрічі команди;

– Вивчення вимог, уточнення їх у замовника;

– Активне спілкування з розробниками;

– Оформлення тестової документації.

«Ранок – ревізія задач, що зібралися за ніч. День – підготовка і запуск компіляцій, аналіз результатів автоматичних тестів, оформлення заявок і т.п. Вечір – перезапуск компіляцій і оновлення статусів задач в баг-трекері».

ПЕРЕВАГИ І НЕДОЛІКИ

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

«Подобається можливість реалізувати свій перфекціонізм без шкоди для соціального життя».

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

«Ця професія вимагає наявності та постійного застосування аналітичних здібностей. Вона не дає розслабитися і розумово деградувати, а змушує постійно вивчати нові технології та галузі знань»

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

«Пішов в QA, бо цікавлюся IT, але не хочу бути програмістом. Мені більше подобається розбиратися в чомусь, шукати помилки, особливо в логіці, яку бізнес-аналітики та розробники могли пропустити».

«Тестувальник повинен бути розумнішим за програміста … Або ж, принаймні, хитрішим!».

«Мислення програмістів й тестувальників “заточене” по-різному. Програміст шукає короткий шлях вирішення проблеми, досягає мети – і після цього переходить до нових завдань. А тестувальник докладно вивіряє невраховані моменти, перевіряє різні комбінації».

Головний мінус – монотонна складова роботи, особливо на початку кар’єри. Сюди відносять проходження тест-кейсів при ручному тестуванні та роботу з документацією.

«Недоліками, швидше за все, можна назвати велику частину рутинної роботи, яка є обов’язковою».

ЯК СТАТИ QA-ФАХІВЦЕМ І КУДИ РУХАТИСЬ ДАЛІ?

Інженерів з якості не навчають в університетах (виняток: на декількох факультетах КПІ читають присвячений тестуванню піврічний курс). Майбутні QA набувають знання на курсах або ж самостійно.

«Якщо програмісти зі шкільного віку або початкових курсів інституту цікавляться якоюсь галуззю технологій і починають розвиватись в цьому напрямку (писати перші боти для ігор, зломщики акаунтів, сайти), то про тестування я ніколи такого не чув. В стилі – “Ось я з 11-го класу тестую додатки і отримую від цього кайф”. Достатньо мати аналітичні здібності, трохи уважності та кмітливості. Ну, і, звичайно, розбиратися в комп’ютерних технологіях, і прочитати хоча б пару книг з тестування».

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

«Переважна більшість вакансій вимагають знання англійської мови. Часто великі компанії беруть джуніора з хорошим знанням англійської, відмовляючи кандидатам з великим досвідом, але без знання мови».

Базові знання теорії тестування – це вміння відповісти на питання:

– Що таке тестування і для чого воно потрібне;

– Які бувають види тестування;

– Що таке баг, і який його життєвий цикл;

– Яка документація використовується при тестуванні.

«Прочитати кілька книг і багато статей, форумів на цю тему. Бажано вивчити якусь мову програмування, а також HTML, SQL, CSS тощо. Це дозволить якісніше робити свою роботу і швидше рухатися кар’єрними сходам».

QA відповідальний за поліпшення якості процесу розробки, тому повинен володіти деякими навичками інших членів команди:

  • Від розробника – розуміння технічних обмежень для реалізації того чи іншого функціоналу і хоча б поверхове розуміння коду;
  • Від бізнес-аналітика – розуміння ринку та цільової аудиторії;
  • Від менеджера проектів – розуміння цілісності всіх частин проекту.

Також необхідне вміння дивитися на продукт з точки зору кінцевого користувача.

«Професія QA зобов’язує розуміти всі технічні аспекти та цілі бізнесу, а також вміти правильно спілкуватися з замовниками/менеджерами/розробниками. Не бійтесь ставити питання, починаючи з “А що, якщо?”. Дуже часто це рятує години, а іноді навіть і дні розробки для всієї команди».

Якщо говорити про особистісні якості, то необхідно:

– Мати широкий IT-кругозір й потяг до вивчення нового;

– Вміти спілкуватися – якість комунікації в команді розробки безпосередньо впливає на якість створюваного ПЗ;

– Бути уважним до деталей, відповідальним і наполегливим;

– Володіти аналітичними здібностями, вміти моделювати і працювати з абстракціями;

– Мати критичний або навіть «деструктивний» склад розуму, спрямований на знаходження помилок;

– Відрізняти муху від слона.

«З навичок – удачливість: якщо спотикаєтеся на рівному місці, то вам в тестувальники».

Серед перспектив професійного розвитку можна виділити 3 напрямки:

  • Вивчати нові області та рости як QA: junior QA->middle QA->senior QA->QA team lead->QA-manager ->Head of QA department.
  • Освоїти автоматизоване тестування і рухатися вже по цій гілці (вимагає більш глибоких технічних знань).
  • Перекваліфікуватися в бізнес-аналітики або програмісти.

 Отримавши достатню кількість досвіду, можна дорости до менеджера проекту і потім розвиватися як управлінець (senior project manager -> CTO). Також зараз відкрито безліч курсів з навчання QA, так що основну роботу можна поєднувати з викладанням або консультуванням.



Коментарі

Популярні дописи з цього блогу

Звіт очільника STEM – Lab « LEGO – математика» Березняк Інни Сергіївни