Карьера в IT: должность QA engineer

Bug image via Shutterstock.

Представляем пятую статью серии «Карьера в IT». В данном выпуске мы расскажем о QA-инженерах. Профессия этих специалистов молода и всё еще находится на стадии формирования (особенно в Украине). Предыдущие материалы цикла были посвящены должностям Team Lead, Software Architect, Project Manager и CTO.

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 — занимается статическим тестированием требований: проверяет, насколько они полны, однозначны, непротиворечивы etc;
  • Test Designer — создает набор тестов на базе требований, планирует конфигурации, необходимые для тестирования;
  • Test Executor — выполняет заранее подготовленные тесты, документирует найденные ошибки и шаги их воспроизведения;
  • Test Manager — скорее управленец, чем инженер. Планирует и контролирует работы, связанные с тестированием: оценки сроков, работу над планом-графиком, контроль покрытия требований тестами, постановку задач членам команды, коммуникацию со стейкхолдерами).
«QA должен точно понимать, в какой момент за дело возьмется тестировщик, и успеть подготовить к этому времени план тестирования, тестовую документацию, тестовое окружение».
«Тестировщик знает, как система работает, где она не работает, и где работает не так, как задумано. Он умеет определить, чем вызвана ошибка, или хотя бы знает, где это искать. Чем тестировщик опытней, тем более тяжелой и интересной ему кажется работа».

В Украине различия между должностями QA и тестировщика смазаны, и на практике это одно и то же. Хотя теоретически тестировщик тестирует продукт как результат, а QA работает над обеспечением процессов, которые могут повысить качество ПО в целом.

«Если бы мы говорили о медицине, то QA занимались бы профилактикой, а тестировщики — диагностикой. Но так сложилось, что эти две разные профессии стали синонимами. Даже в тест-планах для иностранных заказчиков тестировщиков записывают как QA Engineers».

В круг обязанностей QA-инженера входит:
— Анализ и уточнение требований с заказчиком или бизнес-аналитиками;
— Планирование процесса тестирования;
— Написание тест-кейсов (сценариев тестирования);
— Тестирование функционала;
— Идентификация проблемных мест, внесение их в трэкинговую систему;
— Обсуждение фиксов с разработчиками;
— Отслеживание жизненного цикла ошибок;
— Ре-тест починенных дефектов;
— Анализ тестирования;
— Оптимизация процесса тестирования;
— Анализ процессов работы в команде;
— Улучшение процессов;
— Ведение тестовой документации.

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

Типичный рабочий день QA-специалиста включает в себя:
— Написание тест-кейсов, тестирование, документирование ошибок (в зависимости от фазы проекта);
— Проверка баг-трекинговой системы на предмет появления исправленных ошибок;
— Стенд-ап митинги;
— Изучение требований, их уточнение у заказчика;
— Активное общение с разработчиками;
— Оформление тестовой документации.

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

Достоинства и недостатки

Привлекает QA-инженеров возможность улучшать качество продукта и при этом осваивать разные технологии и вникать в детали продукта.

«Нравится возможность реализовать свой перфекционизм без ущерба для социальной жизни».

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

«Эта профессия требует наличия и постоянного применения аналитических способностей. Она не дает расслабиться и умственно деградировать, а заставляет постоянно изучать новые технологии и области знаний».

Не последнее место занимает и возможность приобщиться к миру высоких технологий и больших зарплат. Некоторые инженеры по качеству пришли к своей профессии, потому что хотели в IT, а порог входа на QA ниже, чем на программиста. Некоторые считает работу QA более интересной и разнообразной, чем работу разработчика.

«Пошел в QA, потому что интересуюсь IT, но не хочу быть программистом. Мне больше нравится разбираться в чем то, искать ошибки, особенно в логике, которые BA и девы могли пропустить».
«Тестировщик должен быть умнее программиста... Ну, по крайней мере, хитрее!».
«Мышление программистов и тестировщиков „заточено“ по-разному. Программист ищет короткий путь решения, достигает цели — и после этого стремится уже к новым задачам. А тестировщик обстоятельно выверяет неучтенные моменты, проверяет разные комбинации».

Главный минус — монотонная составляющая работы, особенно в начале карьеры. Сюда относят прохождение тест-кейсов при ручном тестировании и работу с документацией.

«Недостатками, скорее всего, можно назвать большую часть рутинной работы, которою нужно делать обязательно».

Как стать QA-специалистом и куда идти дальше?

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

«Если программисты со школьного возраста или начальных курсов института интересуются какой-то отраслью технологий и начинают развиваться в этом направлении (писать первые боты для игр, взломщики аккаунтов, сайты), то про тестирование я никогда такого не слышал. В стиле — „Вот я с 11-го класса тестирую приложения и получаю от этого кайф“. Достаточно иметь аналитические способности, немного внимательности и смекалки. Ну, и, конечно, разбираться в компьютерных технологиях, и прочесть хотя бы пару книг по тестированию».

Чтобы стать QA, нужно понимать цикл разработки ПО, изучить теорию и основные инструменты тестирования, иметь хороший уровень английского.

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

Базовые знания теории тестирования — это умение ответить на вопросы:
— что такое тестирование и для чего оно нужно;
— какие бывают виды тестирования;
— что такое баг, и каков его жизненный цикл;
— какая документация используется при тестировании.

«Прочитать несколько книг и много статей, форумов на эту тему. Желательно изучить какой-то язык программирования, а также HTML, SQL, CSS etc. Это позволит качественней делать свою работу и быстрее двигаться по карьерной лестнице».

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

  • От девелопера — понимание технических ограничений для реализации того или иного функционала и хотя бы поверхностное понимание кода;
  • От бизнес-аналитика — понимание рынка и целевой аудитории;
  • От PM’а — понимание целостности всех частей проекта.

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

«Профессия QA обязывает понимать все технические аспекты и цели бизнеса, а также уметь правильно общаться с заказчиками/менеджерами/девелоперами. Не бойтесь задавать вопросы, начиная с „А что, если?“. Очень часто это спасает часы, а то и дни разработки для всей команды».

Если говорить о личностных качествах, то необходимо:
— Иметь широкий IT-кругозор и тягу к изучению нового;
— Уметь общаться — качество коммуникации в команде разработки напрямую влияет на качество создаваемого ПО;
— Быть внимательным к деталям, усидчивым, ответственным и настойчивым;
— Обладать аналитическими способностями, уметь моделировать и работать с абстракциями;
— Иметь критический или даже «деструктивный» склад ума, направленный на нахождение ошибок;
— Отличать муху от слона.

«Из навыков — удачливость: если спотыкаетесь на ровном месте, то вам в тестировщики».

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

  1. Изучать новые области и расти как QA: junior QA —> middle QA —> senior QA —> QA team lead —> QA-manager —> Head of QA department.
  2. Освоить автоматизированное тестирование и двигаться уже по этой ветке (требует более глубоких технических знаний).
  3. Переквалифицироваться в бизнес-аналитики или программисты.

Получив достаточное количество опыта, можно дорасти до менеджера проекта и затем развиваться как управленец (senior project manager —> CTO). Также сейчас открыто множество курсов по обучению QA, так что основную работу можно совмещать с преподаванием или консультированием.

«А был случай, когда девушка-QA ушла работать в театр актрисой».

P.S. Спасибо за помощь в написании статьи 46 украинским QA- и Test-инженерам, которые поделились с DOU таинствами своей профессии. Приведенные в статье цитаты взяты из их рассказов.

Похожие статьи:
Софт скиллы — это ряд личностных навыков человека. Нанимая новых сотрудников, работодатели оценивают их не менее скрупулезно, чем...
Генеративний ШІ суттєво прискорює розробку ПЗ та автоматизує багато процесів. Це, на думку засновника компанії SoftServe Тараса...
У Вас скучная работа или Вы хотите сменить род деятельности? А может, Вы практикующий тестировщик и Вам необходимо...
Почитать Итоги 2016 и тренды 2017: Vue in 2016 — итоги года для Vue.js The 10 Most Important Node.js Articles of 2016 The 18 most popular Node links of 2016 The most...
It has only been a few days since a large fire destroyed much of the world famous Notre Dame Cathedral in Paris, but already donations are flooding in from around the world to help pay for repairs to the...
Яндекс.Метрика