Кто такой QA-инженер?

QA – это расшифровывается, как “обеспечение качества” (от англ. Quality Assurance).

QA-инженер (QA-engineer) это специалист по обеспечению качества разработки ПО (программного обеспечения) и его функционального тестирования.

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

 

QA — легкий старт для IT карьеры 

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

 

Обязанности QA инженера

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

 

Если углубиться в профессию, то у QA-инженеров существует несколько ответвлений.

  • QA-автоматизатор (Automation QA Engineer) — это специалист, который пишет тесты на основе скриптов для автоматизации тестирования.
  • QA-мануальщик (Manual QA Engineer) — специалист, который занимается анализом и улучшением процесса тестирования.
  • QC-специалисты (Quality Control specialist) — отвечают за контроль качества продукта. Их задача проводить анализ результатов тестирования и следить за выявлением и устранением дефектов в продукте.

 

Если еще глубже разбить функции QA и QC специалистов, то можно выделить еще 4 направления специалистов, которые играют важную роль в QA (обеспечении качества).

    • Test Analyst — проверяет, насколько требования полны и не противоречат друг другу;
    • Test Designer — занимается созданием тестов и их конфигурацией для тестирования;
    • Test Executor — проводит тестирования по написанным сценариям и фиксирует найденные ошибки;
    • Test Manager — занимается планированием работ, связанных с тестированием. В его задачи входит: оценка сроков, контроль выполнения плана и графика работ, контроль полноты выполнения тестов по списку требований, постановка задач членам команды).

 

Как это может выглядеть на практике?

Во время процесса разработки, QA-инженер контактирует со множеством людей, которые работают над проектом и над разрабатываемом ПО.

Сначала, QA -инженер узнает все необходимые требования к программному продукту или приложению у заказчика. Под них, QA-инженер пишет тесты для проверки удовлетворенности всех требований к продукту.  Затем, при разработке, по результатом тестирования, в случае, если были найдены ошибки и баги — QA-инженер пишет задачи для программиста/ов на доработку кода. Таким образом, происходит улучшение качества процесса разработки и соответственно, самого программного продукта.

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

 

Инструменты для QA-инженеров

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

  • Selenium — Бесплатный инструмент, который используется для автоматизированного тестирования web-приложений. Поддерживает все известные браузеры разных операционных систем: Windows, Linux, Mac, а также позволяет писать сценарии тестирования на основных языках программирования. Однако, selenium имеет ограниченный функционал и предназначен только для тестирования веб-приложений.
  • Katalon Studio — также бесплатный инструмент, который используется для автоматизированного тестирования web и мобильных приложений. Подходит для новичков и для опытных тестировщиков. Поддерживает систему CI — технология непрерывной интеграции. Однако, Katalon Studio не выдает детальных отчетов, поддерживает небольшое кол-во языков программирования и позволяет запускать несколько тестов сразу.
  • UFT — платный инструмент, который применяется для написание тестов, и также используется для автоматизации тестирования программного обеспечения за счет поддержки скриптов. Позволяет тестировать большое кол-во различных приложений. Главное преимущество UFT в том, что здесь поддерживается запись действий пользователя, что позволяет экономить время на написание новых сценариев тестирования.
  • IBM Rational Functional Tester — инструмент для автоматизации процесса тестирования приложений HTML, Java™, Dojo, Ajax, Microsoft Windows, Microsoft .NET, Microsoft Silverlight, Microsoft Visual Basic, Siebel, Flex, GEF и PowerBuilder, которые выполняются в ОС Microsoft Windows и Linux. Здесь, так же, можно записывать и воспроизводить действия пользователей, а также сценарии для тестирования новых компоновок приложения или ПО. Но полноценное функционирование раскрывается только в IBM среде.
  • TestComplete — еще один инструмент для автоматизированных тестирований десктопных, веб и мобильных приложений. Поддерживает большое количество языков программирования такие, как VBScript, JScript, DelphiScript, C++Script, C#Script, и тестируемых приложений .NET, Java, Visual C++, Visual Basic, Delphi, C++Builder. Также позволяет записывать и воспроизводить действия пользователей и выполнять различные виды тестирования.

 

Необходимые навыки и что должен знать QA-инженер

  • понимание жизненного цикла и этапов разработки ПО;
  • ориентироваться в кодах программирования;
  • владеть новыми технологиями в области тестирования и знаниями актуальных инструментов для проведения ручного и автоматического тестирования;
  • относительно высокий уровень английского языка;
  • знание систем bug-трэкинга (bug tracking system) таких, как Jira/YouTrack, например;
  • уверенно работать с протоколом HTTP и его кодами ответов сервера;
  • умение работать программный интерфейсом DOM;
  • понимание объектно-ориентированного программирования (ООП);
  • знание языков HTML и данных JSON;
  • умение работать с данными cookie & session;
  • знание SQL;
  • умение вести тестовую документацию;
  • понимание Agile/SCRUM/Lean методов;
  • знание и понимание системы CI&CD: программ GitLab, Docker, Kubernetes или их аналогов;
  • понимание Microservice Arhitecture, HighLoad;
  • умение работать с инструментами и методами обработки BigData;
  • тестирование программных решений на основе технологического стека (GoLang и/или php (symfony), PostgreSQL и/или Clickhouse);
  • навык составления тест-планов и тест-кейсов.

 

Преимущества и недостатки профессии QA-инженера

Преимущества

  • профессиональный рост и накопление базы знаний.
  • легкий вход в IT индустрию и в специальность
  • высокая заработная плата.
  • престижная и востребованная IT профессия
  • доступность профессии для любого возраста.

 

Недостатки

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

 

Этапы профессионального роста QA Engineer

  1. Trainee QA Engineer — уровень начинающего QA-инженера с минимальным опытом работы.
  2. Junior QA Engineer — специалист, имеющий опыт работы до 6 месяцев и уже имеющий определенные навыки.
  3. Middle QA Engineer — инженер с опытом работы 1-3 года (средняя степень квалификации). Знает, как выполнять поставленные задачи (составления сценариев тестирования, ведение технической документации) и способен консультировать начинающих сотрудников.
  4. Senior QA Engineer — инженер высшей степени квалификации, умеющий выполнять сложные технические задачи.

 

Курсы для QA инженеров на LinuxTrainingCenter

LinuxTrainingCenter предоставляеют обучение для QA Engineer и предлагает пройти следующие курсы:

  • Курс администрирования linux LPIC-1 и Курс администрирования linux LPIC-2  — это база для дальнейшей работы в любой IT специальности. Практически все программные продукты (особенно их серверные части, с которым возникает большинство проблем у QA инженеров) пишутся для Linux. Как QA инженер, Вы должны уметь поставить, проверить что процесс запущен, убедиться что процесс работает без ошибок, а если ошибки есть — найти их причину и т.д. Из нашего опыта, если QA инженер не обладает минимальными знаниями в Linux, он становиться головной болью для всех команд. Поэтому, без знания и навыков работы в Linux будет крайне затруднительно пройти собеседование. Дополнительный бонус от изучения Linux — вся современная микросервисная архитектура приложений базируется на docker, kubernetes и т.д , но основа каждого контейнера — это Linux с установленными внутрь пакетами и запущенным приложением. Зная Linux, вы всегда сможете зайти внутрь контейнера и найти причину ошибок.
  • Курс GIT для начинающих. Начальный навык работы с GIT даст Вам возможность тестировать различные бранчи и девелоперские фичи и фиксы до их релиза.
  • Курсы Jenkins. Начальный навык работы с Jenkins даст возможность самостоятельно собирать новые билды, автоматизировать тесты, встраивать тесты в релиз, получать логи каждого теста и прочее.

В совокупности, пройденные у нас курсы, дадут для современного QA специалиста представление и понимание о процессе непрерывной интеграции CI и существенно повысят шансы трудоустройства.

Смотрите наши статьи по другим IT професииям: