Тестировщик (инженер по тестированию, специалист по тестированию, ручной тестировщик, manual Test Engineer) — специалист, который занимается тестированием программного обеспечения с целью его проверки на соответствие требованиям. Кроме этого, целями тестирования являются оценка качества продукта и информирование команды о качестве. В задачи тестировщика входят:

  1. Анализ требований (собирается из документации — ТЗ, спецификации и из уст членов команды — например, менеджера и аналитика)
  2. Разработка тестовой документации (чек-листы, тест-кейсы, сьют-кейсы)
  3. Создание среды тестирования
  4. Выполнение тестов
  5. Документирование результатов тестирования (в том числе заведение баг-репортов)
Качество ПО оценивается тестировщиком по нескольким критериям:
  • Функциональность — продукт решает заявленную бизнес-задачу.
  • Надежность — продолжает работать в условиях нехватки ресурсов (например, мобильное приложение при низком заряде устройства).
  • Удобство использования (usability) — пользователь может достичь своей цели во время использования продукта максимально быстро и комфортно.
  • Эффективность — приложение расходует ресурсы оптимально (например, расход приложением оперативной памяти).
  • Сопровождаемость — можно без особых трудностей разобраться, как работает ПО, чтобы его поддерживать.
  • Переносимость — возможно ли перенести на другую платформу, использовать в новом окружении.

Круг обязанностей тестировщика

Чтобы сформировать более полное представление о том, чем конкретно занимаются специалисты по тестированию, давайте подробнее рассмотрим их задачи.
Мы уже упомянули главные стадии тестирования, за прохождение которых ответственен тестировщик:

Чем занимается QA-инженер?

Теперь посмотрим на список чаще всего встречающихся конкретных обязанностей и задач, которые предлагаются специалисту уровня Junior.

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

А также:

  • Взаимодействие с командой (менеджер, архитектор, аналитик, разработчик, DevOps, поддержка пользователей);
  • Составление пользовательской документации для системы; 
  • Поддержка тестовой документации в актуальном состоянии;
  • Работа с базами данных и другими инструментами для тестирования.

Soft Skills тестировщика

Чем занимается QA-инженер?

  • Аналитическое мышление: обработка и структурирование большого объема информации, формирование причинно-следственных связей, поиск взаимосвязей между объектами, формулирование выводов.
  • Коммуникативные навыки, грамотное и ясное формулирование мыслей: аргументирование точки зрения, ясная постановка вопросов.
  • Организационные навыки: планирование задач и времени, непрерывный анализ процессов и их улучшение, оценка рисков.
  • Любопытство. Интерес, как все устроено.
  • Внимательность к деталям.
  • Желание сделать продукт лучше.

Хороший тестировщик ищет наиболее эффективные процессы для достижения цели, с акцентом на постоянное совершенствование. Отслеживает результаты работы и стремится оставаться эффективным, извлекая уроки как из успехов, так и из неудач. С готовностью принимает вызовы или трудные задачи. Самостоятельно разбирается с объемной и сложной информацией, чтобы эффективно решать поставленные задачи. Налаживает партнерские отношения с другими членами команды, обменивается информацией, демонстрирует уважение к идеям и вкладу других, не поддерживает мышление «мы против них».

Этапы и виды тестирования

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

Модульное или юнит-тестирование (Unit Testing)

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

Чем занимается QA-инженер?

Интеграционное тестирование

В ходе интеграционного тестирования выполняют проверки того, насколько корректно взаимодействуют друг с другом отдельные компоненты. Такая необходимость возникает в том числе потому, что зачастую разные модули разрабатываются разными разработчиками параллельно. Интеграционное тестирование проводится с целью убедиться, что модули действуют как части целой системы, а не как отдельные компоненты. 

Системное тестирование

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

Приемочное тестирование (User Acceptance Testing, UAT)

На этом последнем этапе продукт тестируется непосредственно конечными пользователями — заинтересованными сторонами с целью проверки, удовлетворяет ли продукт заявленным требованиям.

И еще пару слов об одних из самых распространенных видах тестирования.

Регрессионное тестирование

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

Чем занимается QA-инженер?

Дымовое тестирование (Smoke Testing)

Этими тестами покрывают наиболее важные функциональности системы. Цель состоит в том, чтобы убедиться, что критически важные части системы работают, как ожидается. В этом случае не проводится исчерпывающее тестирование всех компонентов. Это первое тестирование, которое совершается с новой сборкой. После того, как с помощью дымового тестирования убеждаются в то, что система в целом стабильна, приступают к следующему уровню тестирования.

Тестирование мобильных, веб-приложений и API

Тестировщики могут заниматься тестированием веб-приложений, мобильных приложений, тестированием API. Для каждого случая будут свои вспомогательные инструменты. Для проведения тестирования веб-приложений используются инструменты веб-разработчика в браузере (Devtools), Charles/Fiddles для работы с HTTP(S)-трафиком, пригодятся знания об HTTP и основы верстки. 

Для мобильного тестирования в компаниях обычно содержится целый «парк» устройств разных производителей, моделей, размеров и разрешений экранов, с разными установленными на них ОС. В ситуациях, когда тестирование на реальном устройстве в силу каких-то причин провести не представляется возможным, пользуются приложением-эмулятором, например Android Studio, который позволяет создать устройства с различными характеристиками и имитировать необходимые действия и состояния. 

Тестирование API относится к интеграционному виду тестирования (о котором рассказывали выше) и позволяет обнаружить баги в процессе взаимодействия разных систем. Также тестирование API может применяться, когда например серверная часть приложения уже готова, а клиент (фронт) еще в разработке. С помощью такого инструмента как Postman можно имитировать совершение запросов к серверу, как если бы это делал пользователь через пользовательский интерфейс, а также проверить, корректно ли взаимодействует сервер с базой данных. Также для тестирования API пригодятся знания о протоколе обмена данными SOAP, архитектурном стиле REST, форматах данных JSON и XML.

Однако ручное тестирование — это начало, основа. Следующим шагом после налаживания четких процессов ручного тестирования во многих компаниях становится автоматизация тестов. OTUS предлагает несколько курсов, которые помогут погрузиться в нюансы автоматизации тестирования:

Также предлагаем ознакомиться с интересными статьями на тему тестирования ПО в блоге OTUS на Хабр:


Ознакомиться с вакансиями для тестировщиков можно на Jooble.​

Чем занимается QA-инженер?