Кто такой QA engineer?

22 февраля 2021

Мы с вами в рамках рубрики "IT Role" знакомились со сферой менеджмента: говорили о проджект-менеджере, продакт-менеджере и продакт-оунере. Давайте сегодня немного обсудим обеспечение качества ПО и одну из самых востребованных профессий - QA-engineer.  

Кто такой тестировщик? 

Стоп, мы же с вами решили говорить о QA engineer?! Тогда причем здесь тестировщик? Разберемся с понятиями, которые могут привести в замешательство при знакомстве с этой профессией. 

  • Итак, Quality Assurance - это процесс, направленный на обеспечение высокого качества разрабатываемого продукта. Он присутствует на всех этапах разработки, запуска и последующей поддержки: сюда входит подбор методов/методологий для контроля за качеством, создание стандартов, подбор инструментов для сбора информации и ее анализа, отладка механизма для выявления и предотвращения дефектов (или багов). Если по-простому, то основная задача QA-процесса - сделать программу лучше как для бизнеса (реализовав желаемые функции), так и для конечного пользователя (чтобы ему было удобно ею пользоваться), предотвратив как можно больше возможных ошибок и сбоев.    
  • Одна из составляющих QA - это Quality Control (контроль качества). Здесь имеется в виду анализ полученных данных после проведения тестов, поиск и выявление ошибок/дефектов. И если QA - это обширный термин, описывающий весь процесс обеспечения качества в компании, то говорить о QC мы будем в контексте определенного продукта - проверка его кода, юзабилити, дизайна и т.п.
  • И, собственно, Testing (тестирование) - процесс проверки реализованных функций на соответствие заданным параметрам.  

Роли специалистов по обеспечению качества

Среди экспертов в тестировании ПО можно выделить 4 основные роли, которые отличаются своими KPI. Чаще всего один специалист совмещает как минимум несколько ролей:

  • Менеджер (Test Manager). Отвечает за организацию процесса обеспечения качества: составляет и контролирует планы и сроки выполнения работ, общается с ключевыми стейкхолдерами, следит за % покрытия требований тестами, организовывает работу QA-команды.
  • Аналитик (Test Analyst). Работает с требованиями (анализирует однозначность, отсутствие противоречий, полноту) и структурой приложений (выделяет основные составляющие, приоритезирует срочность тестирования, составляет схематическую карту).
  • Дизайнер (Test Designer). Получив анализ требований и карту приложения, разрабатывает тест-кейсы.
  • Тестировщик (Test Executor, Tester). Выполняет написанные тесты, создает техническую документацию, где описывает найденные дефекты (баги) и как он их получил. 

Виды тестировщиков

Можно выделить 2 большие группы относительно способа проведения процесса тестирования: 

  • функциональный/мануальный тестировщик. Проверка программ/приложений согласно заданным критериям производится “вручную”.
  • автотестировщик (занимается автотестированием). Проверка проходит с помощью кода, написанного тестировщиком, для автоматизации процесса тестирования. 

Также компании могут выделять в отдельную должность экспертов-тестировщиков, занимающихся каким-то определенным видом тестирования: к примеру, security QA engineer - проверяет системы безопасности (очень актуально в банковской сфере, например), тестировщик локализации - важно для программ, выходящих в разных странах и т.д. Но чаще всего требуются специалисты, способные проводить как минимум несколько видов  тестирования.

QA engineer равно тестировщик?

Мы разобрали процессы обеспечения качества, виды и роли специалистов. Можем ли мы теперь сказать точно, есть ли разница между QA engineer и тестировщиком или это одна и та же роль? 

В теории, QA engineer - это более обширное понятие, который подразумевает специалистов, отвечающих за обеспечение качества в компании: сюда входит подготовка плана, необходимой документации, проведение анализа требований, написание тест-кейсов и т.п. Он отвечает за настройку механизма, который может улучшить как ПО, так и сам процесс разработки в целом. Тестировщик же непосредственно проводит тестирование по заранее подготовленным заданиям, анализирует, где и как лучше искать возможные уязвимости и баги. 

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

Задачи QA-инженера

Основная задача QA-специалиста - это, конечно, обеспечить выпуск качественного продукта. Ее можно разбить на ряд других подзадач:

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

Обязанности специалистов-тестировщиков 

  1. Изучение спецификаций к продукту в тандеме с бизнес-аналитиками или непосредственно заказчиками.
  2. Поиск изначально “слабых” мест для более детального наблюдения.
  3. Планирование тестирования и написание тест-кейсов.
  4. Проведение тестов и анализ полученных данных.
  5. Общение с разработчиками о внесенных исправлениях.
  6. Проведение повторного тестирования “пофиксенных” элементов и работы всего приложения с исправленными фичами.
  7. Анализ процессов внутри команды на предмет эффективности.
  8. Ведение документации.
  9. Проведение митингов.

Куда можно расти QA-специалисту

В условиях жесткой конкуренции создание качественного продукта - это основная задача любого бизнеса, поэтому востребованность на таких специалистов растет. Если раньше порог "входа" был минимальный, то сейчас для успешного старта даже на позиции Junior нужно, как минимум, пройти специальные курсы по тестированию. Представим, вы получили эту должность. Куда идти дальше?

Вертикальный карьерный рост может начаться с позиции Trainee и затем идти к → Junior → Middle → Senior. Дальше вы можете стать тим-лидом, а после - главой отдела по обеспечению качества (если он есть в вашей компании). 

Горизонтальный карьерный рост подразумевает развитие hard skills: например, можно уходить в тестирование безопасности (перспективное направление в эру массовой диджитализации) или же вплотную заняться автотестированием, что включает в себя изучение языков программирования. 

Уход в смежные области: менеджмент, дизайн, разработку. Конечно, это требует изучения новой информации, но ваш бекграунд и знание IT-кухни изнутри помогут вам разобраться в тонкостях быстрее. 

Для кого подходит должность инженера по обеспечению качества

Вы открыты новым знаниям, любите искать "нестандартные" пути для выполнения обычных заданий, у вас хорошо получается находить причинно-следственные связи, вы любите задавать себе вопросы и находить на них ответы? Тогда профессия тестировщика может прийтись вам по душе!

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

Похожие темы