Кто такой 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
- Trainee QA Engineer — уровень начинающего QA-инженера с минимальным опытом работы.
- Junior QA Engineer — специалист, имеющий опыт работы до 6 месяцев и уже имеющий определенные навыки.
- Middle QA Engineer — инженер с опытом работы 1-3 года (средняя степень квалификации). Знает, как выполнять поставленные задачи (составления сценариев тестирования, ведение технической документации) и способен консультировать начинающих сотрудников.
- 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 професииям: