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, так що основну роботу можна поєднувати з викладанням або консультуванням.
Коментарі
Дописати коментар