in

Современный QA-инженер: скиллы, требования, перспективы

Если с понедельника ты решил начать новую жизнь, то у нас есть хорошая идея — старт карьеры в QA

Про тестировщиков в наше время не слышали, разве что, охранники из местной наливайки. Да и то не факт, что по ночам они не пентестят какой-нибудь проект и не ковыряют REST API. QA-инженеры уже давно имеют огромный вес на рынке, а разработчики не строят презрительные гримасы, пожимая руку.

QA на пальцах

QA (от англ. Quality Assurance) переводится как «Обеспечение качества». Это процесс поиска ошибок, анализ стандартов, выбора инструментов на всех технологических этапах разработки приложения и даже на этапе его эксплуатации.

По сути, это такой «продвинутый» тест для проверки и поддержания заданного уровня качества продукта. QA-специалисты исследуют процессы, проводят тесты, пишут кейсы или автоматические скрипты для проверки ПО (это уже уровень QA Engineer) с целью оптимизации и прикрытия критичных и не очень багов.

QA-специалист не только контролирует, но и обеспечивает качество работы продукта. Он отвечает и за работу ПО, и за сами процессы его разработки: выбирает инструменты, помогает предотвращать ошибки и совершенствовать продукт.

Сейчас в сети есть огромное количество курсов, которое готовит QA-специалистов на уровни Junior и Middle. Актуальный список курсов можно посмотреть здесь — https://cifrokursy.ru/programmirovanie/kursy-testirovshikov-po. В этой подборке систематизированы данные по всевозможным онлайн-платформам: цены, длительности, возможности рассрочки, процесса обучения и так далее.

Скиллы / Обязанности тестировщика

  • Разработка тестов, тестовых моделей, тестовых кейсов, тест-плана и тест-дизайна, включая работу с автотестами.
  • Проведение анализа бизнес-требований и нового функционала (уметь давать своё заключение)
  • Написание тестовой документации
  • Обеспечение качества разработки ПО
  • Понимание разницы между функциональным тестированием и нефункциональным.
  • Проведение системного, интеграционно-функционального, регрессионного автоматизированного тестирования
  • Опыт работы с REST API
  • Понимание принципов работы клиент-серверных приложений и структуры GET/POST запросов
  • Багрепортинг. Ведение багтрекера, написание отчётов, эскалация.
  • Взаимодействие в команде (в том числе в Agile). Участие в митапах с аналитиками, разработчиками, тест-менеджерами и тестировщиками смежных проектов.

Матчасть необходима — без неё никуда, даже если ты джун-выпускник. Поэтому здесь всё довольно серьёзно

  • Умение работать с CI/CD (Jenkins, TeamCity), а также опыт работы с Appium или Espresso/XCTest.
  • Умение работать со снифферами (Fiddler, Charles)
  • Опыт автоматизации тестирования приложений (backend или web-сервисов)
  • Опыт работы с JUnit, Rest Assured, Hibernate, Allure, Maven / Gradle, Git
  • Как минимум шапочное знакомство с GraphQL или REST
  • Слова regress, end-2-end и smoke testing, cross platform testing & cross device testing для вас не пустой звук
  • Знание инструментов багтрекинга, управления версиями и т.п. (стандартный набор Git, Jira, Confluence)
  • Знание инструментов просмотра логов Android и iOS (опционально)

А конкретнее?

Конкретные скиллы будут сильно зависеть от того, что вы будете тестировать. Какие здесь есть варианты?

Тестирование производительности (Performance Testing):

  1. Знание математической статистики
  2. Нужны навыки программирования
  3. Знание особенностей архитектуры
  4. Опыт работы с Apache Jmeter (Grinder, LoadRunner, WebLoad)
  5. Разрабатывать модели нагрузки

Тестирование безопасности (Security Testing):

  1. Придётся вникнуть в особенности среды функционирования приложений
  2. Будет плюсом опыт администрирования
  3. Хорошее знание криптографических протоколов
  4. Отличное знание сетевых протоколов передачи данных
  5. Владение инструментами AppScan, Nmap и им подобным

Тестирование удобства использования (Usability Testing):

  1. Основы статистики
  2. Практика работы с UX/UI дизайном
  3. Анализ требований и бизнес-процессов
  4. Теория взаимодействия и методологии исследования пользователей
  5. Использование сервисами сбора статистики

Автоматизация тестирования (Test Automation):

  1. Знание языков программирования
  2. Необходимы основы SQL и баз данных
  3. Написание качественного кода
  4. Работа с техниками тест-дизайна
  5. Опыт работы с инструментами Selenium, REST-Assured, Appium, TestNG

Управление тестированием (QA managment):

  1. Управление командой, прокачанные софт-скиллы
  2. Оценка мониторинга и качества продукта
  3. Процессы в тестировании
  4. Управление задачами
  5. Управление дефектами и тестами

Обеспечение качества (QA assurance):

  1. Полезные практики (Best practices)
  2. Методологии разработки (Waterfall, Agile)
  3. Бизнес-процессы в разработке ПО
  4. Оценка и мониторинг качества продукта
  5. Взаимодействие между командами.

Инструменты для работы

Для тестировщика бэкенда:

Insomnia — известный API-клиент, который позволяет работать с эндпоинтами и обращаться к API через набор методов HTTP/s, gRPC API

Для мобильного тестировщика:

Charles — инструмент для мониторинга HTTP/HTTPS трафика. Программа работает как прокси-сервер между мобильным приложением (в нашем случае) и сервером этого приложения. Charles записывает и сохраняет все запросы, которые проходят через подключенный к нему телефон и позволяет их редактировать.

Android Studio — интегрированная среда разработки (IDE) для работы с платформой Android

Xcode — это интегрированная среда разработки (IDE) программного обеспечения для платформ macOS

Для билдов: 

Один из многочисленных инструментов Atlassian — Bamboo. Это инструмент непрерывной интеграции и непрерывного развертывания, который объединяет автоматизированные сборки, тесты и релизы в единый жизненный цикл

Для тестирования API:

Swagger — это набор инструментов, который позволяет автоматически описывать API на основе его кода

SoapUI — приложение с открытым исходным кодом для тестирования веб-сервисов

Postman — это сервис, который используется для ручного и автоматизированного тестирования HTTP API

Для работы с логами:

Kibana — это веб-интерфейс для просмотра и анализа данных из хранилища. Для полноценного логирования используется стек ELK — Elasticsearch, Logstash, Kibana.

Для асинхронных запросов:

RabbitMQ отлично подходит для интеграции разных компонентов, создания микросервисов, потоковой передачи данных в режиме реального времени или при передаче работы удалённым работникам

Также для этого можно использовать Apache Kafka. Это распределенная платформа потоковой передачи событий. События, опубликованные в Kafka, не удаляются сразу после их использования, как в решениях, ориентированных на обмен сообщениями. Проектировать этот обмен можно через специальную шину событий events-bus

Куда расти?

Тестирование уже настолько устоявшаяся и самостоятельная дисциплина, что вертикально расти внутри QA можно вполне комфортно, не уходя в смежные специальности, тем более, что QA лиды очень востребованы на рынке.

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

P.S. Кратко про собеседование и резюме

Универсальных советов про собеседование не существует хотя бы потому, что в компании может использовать только ручное, либо только автоматизированное тестирование.

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

Резюме лучше писать на английском языке. Это будет очень хорошим знаком для HR и QA-лида. А что вообще писать? Начните с саммари — это ваша специализация. Почему мы такие умные и молодцы.

Дальше — опыт с разделением по ролям, если всё происходило в одной компании на разных позициях. Опыт нужно миксовать с достижениями. Любая ачивка, любой кейс, который вы сделали самостоятельно или были к нему причастны.

Следом идёт образование, тем более, если оно профильное. Скиллы, используемые инструменты в работе можно добавить в конце.

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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *