Кто такой QA engineer: задачи и обязанности, плюсы и минусы, работа и карьера

08 ноября 2022, 13:10

В данном выпуске мы расскажем о QA-инженерах. Профессия этих специалистов молода и всё еще находится на стадии формирования.

Quality Assurance engineer — это специалист по обеспечению качества, деятельность которого направлена на улучшение процесса разработки ПО, предотвращение дефектов и выявление ошибок в работе продукта.

Задачи и обязанности

Основная задача 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 основные роли:

  1. Test Analyst — занимается статическим тестированием требований: проверяет, насколько они полны, однозначны, непротиворечивы etc;
  2. Test Designer — создает набор тестов на базе требований, планирует конфигурации, необходимые для тестирования;
  3. Test Executor — выполняет заранее подготовленные тесты, документирует найденные ошибки и шаги их воспроизведения;
  4. Test Manager — скорее управленец, чем инженер. Планирует и контролирует работы, связанные с тестированием: оценки сроков, работу над планом-графиком, контроль покрытия требований тестами, постановку задач членам команды, коммуникацию со стейкхолдерами).

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

«Тестировщик знает, как система работает, где она не работает, и где работает не так, как задумано. Он умеет определить, чем вызвана ошибка, или хотя бы знает, где это искать. Чем тестировщик опытней, тем более тяжелой и интересной ему кажется работа».

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

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

В круг обязанностей QA-инженера входит:

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

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

Типичный рабочий день QA-специалиста включает в себя:

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

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

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

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

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

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

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

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

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

«Тестировщик должен быть умнее программиста. Ну, по крайней мере, хитрее!».

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

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

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

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

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

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

Чтобы стать 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 ушла работать в театр актрисой».

Источник: https://start-365.ru