Путь QA бойца

в 13:54, , рубрики: qa, qa automation engineer, qa management, qa testing, Тестирование IT-систем, Тестирование веб-сервисов, Тестирование игр, Тестирование мобильных приложений, тестирование по, тестирование приложений, тестирование сайтов

Небольшой обзор вариантов развития твоей карьеры в сфере контроля и обеспечения качества. 

С чего начать?

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

QA — это процесс обеспечения качества программного продукта на всех этапах разработки, но на просторах СНГ часто этот термин применяется относительно тестирования ПО.
Путь QA бойца - 1
Что же потребуется начинающему специалисту чтобы ступить на путь борца за качество? Сейчас разберемся.

Для большинства компаний и проектов будет достаточно:

  • Представление о процессе разработки ПО (плюсом будет техническое образование, близкое к IT-сфере, но как показывает опыт многих коллег- это не обязательное условие);
  • Знание основных принципов работы программных продуктов (мобильных или standalone приложений, сайтов в зависимости от профиля компании);
  • Знакомство с теорией тестирования, базовое представление о тест-дизайне, какая бывает тестовая документация и откуда она берется (это очень легко гуглится при желании);
  • Способность быстро разобраться с TMS-системой;
    habr.com/ru/post/461205
  • Желание учиться новому, быстро разбираться в деталях, как работает ПО сейчас и как оно должно работать.

Если пункты выше выполнимы, то мы можем отправляться в путь.

Хорошо, а куда мы идем?

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

Роли в QA

Можно выбрать направление, не меняя сферу деятельности и развиваться, как более узкий специалист. Или объединить в себе несколько ролей. Нужно осваивать стратегии и типы тестирования в разных методологиях разработки, учиться пользоваться инструментами управления тестированием (TestLink, TestRail, Test IT и т.д.) и системами баг-трекинга (Jira, Redmine) – эти знания и навыки являются фундаментальными для всех QA инженеров. Самыми востребованными вариантами специализации являются автоматизированное и нагрузочное тестирования.

Ручное тестирование

Когда ресурсов на разработку автотестов нужно потратить больше, чем на сам продукт — проще/дешевле/быстрее проверить новый функционал руками.

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

Для ручного тестирования потребуются:

  • Высокие аналитические навыки. От вас будут ожидать не только указания на ошибки, но и предложений как сделать лучше. Ведь только вручную можно проверить такие вещи как, например, удобство использования;
  • Креативность. В современных реалиях разработки требования не всегда полные и тестировщики сталкиваются с тем, что им нужно продумывать множество вариантов использования систем, которые они тестируют;
  • Ведение тестовой документации. Хороший тестировщик всегда имеет четкий план действий и активностей по тестированию, основанный на требованиях и сроках;
  • Знание и опыт работы с системой управления тестированием;
  • Владение инструментами работы с HTTP-запросами (Postman, curl);
  • Знания баз данных, умение писать SQL-запросы.

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

Автоматизация тестирования

Автоматизированные тесты помогают быстрее выпускать новые функциональности, быстрее проводить тестирование, уменьшить количество ручных тестов.

Так что же может понадобиться чтобы начать автоматизировать тесты?

  • Нужно будет писать код, например, на Java или Python;
  • Овладеть инструментами автоматизации (Selenium, Katalon);
  • Базовые знания HTML, CSS, XPath;
  • Умение работать с системами контроля версий и репозиториями кода;
  • Навыки работы с API;
  • Знания систем CI/CD (Jenkins, TeamCity и т.д.).

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

Нагрузочное тестирование

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

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

Самые важные навыки для тех, кто хочет заниматься нагрузочным тестированием:

  • Знание архитектуры тестируемой системы. Погружение в тестирование производительности потребует от вас изучения языков разработки и фреймворков которые используются при создании продукта;
  • Умение разработать и анализировать профили нагрузки;
  • Опять же программирование. Для скриптов нагрузочного тестирования могут пригодиться такие языки как Java, Python, JavaScript, C++, C#, C# и специальные фреймворки, например, Gatling;
  • Знание аппаратной и сетевой архитектуры. Часто причиной снижения производительности приложения может стать железо, нужно ориентироваться в таких понятиях как пропускная способность памяти, процессора, сети и уметь анализировать данные о них.

Тест-аналитик

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

Идеальная цепь взаимодействий выглядела бы так:

  • аналитик расставляет приоритеты тестирования и составляет логическую карту проекта;
  • тест-аналитик на основании этой информации приступает к разработке тестов;
  • тестировщик тестирует по описанным тест-кейсам (да, вот такое предложение).

Путь QA бойца - 2

Альтернативные пути развития карьеры. Есть ли жизнь после QA?

Системный аналитик

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

Бизнес-аналитик

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

Менеджер

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

Разработчик

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

Если что упустил — рад обсудить в комментариях!

Автор: qa_meister

Источник


* - обязательные к заполнению поля