Профессия QA-инженер: особенности, обязанности, плюсы и минусы, обучение, работа и карьера
Профессия QA-инженера обязывает понимать все технические аспекты и цели бизнеса, а также уметь правильно общаться с тестировщиками, заказчиками, менеджерами, девелоперами.
Профессия подходит тем, кого интересует информатика.
QA-инженер – Quality Assurance engineer (Quality Assurance дословно означает «обеспечение качества») — это специалист по функциональному тестированию программного обеспечения на этапе разработки.
На практике иногда ошибочно считают, что QA-инженер и тестировщик ПО — это одно и то же. На самом деле, тестировщик программного обеспечения занимается тестировкой уже готового ПО, а QA-инженер работает над формированием процессов тестирования на этапе разработки, которые в результате обеспечат повышение качества ПО.
Внутри процесса QA выделяют процесс Quality Control — контроль качества продукта. QC-специалисты анализируют результаты тестирования и отвечают за выявление и уничтожение дефектов в программном обеспечении. А тестировщик ПО является ещё более узким специалистом в пределах QC: он исследует готовое ПО на наличие багов (ошибок) и документирует выявленные дефекты. То есть, тестирование ПО является одним из этапов в процессе QA/QC – обеспечения и контроля качества.
Иными словами, сравнивая IT-технологии и медицину, можно образно сказать, что тестировщики занимаются диагностикой неполадок, а QA-инженеры — профилактикой. Таким образом, QA-инженер это тестировщик, который перешагнул рамки тестирования. Он не просто тестирует ПО, чтобы отчитаться о его работе. QA-инженер совершенствует ПО для всех заинтересованных лиц: пользователей, разработчиков, бизнесменов.
Но чтобы стать хорошим QA-инженером необходимо пройти позицию тестировщика по всем этапам.
В работе над крупными проектами функции QA-инженера могут выполнять несколько человек и их обязанности представлены таким образом:
- Test Analyst занимается статическим тестированием требований и проверкой их полноты и достаточности;
- Test Designer формирует набор тестов на базе этих требований, создаёт конфигурации тестирования;
- Test Executor исполняет тестирование, документирует найденные баги (ошибки) и шаги их воспроизведения;
- Test Manager осуществляет планирование и контроль тестировочных работ, коммуникации с заинтересованными лицами по проекту (так называемыми стейкхолдерами).
Есть мнение, что QA-инженеры — специалисты более низкой квалификации, чем программисты. Это абсолютно неверно. QA-инженеры проверяют качество ПО, разработанного программистами и даже совершенствуют его, поэтому обязаны знать все тонкости работы программистов, понимать цикл разработки ПО и иметь более широкий кругозор. Но мышление тестировщиков и программистов заточено по-разному. Программисты стремятся быстрее создать ПО и, закончив один проект, как можно скорее приступить к новому. Тестировщики же неторопливо и тщательно выявляют дефекты, проверяют и сопоставляют разные комбинации.
Поскольку QA-инженер сотрудничает с большим количеством людей, он должен разговаривать с ними на одном языке и в какой-то мере обладать качествами этих специалистов:
- как девелопер — понимать код и иметь представление о технических рамках для реализации различных методологий;
- как бизнес-аналитик — знать рынок и целевую аудиторию, для которой создаётся ПО;
- как менеджер проекта — видеть общую картину, составленную из всех частей проекта;
- как конечный пользователь — понимать удобство пользования ПО.
Особенности профессии
Функциональные обязанности QA-инженера:
- анализ технической документации;
- уточнение требований к ПО заказчика или бизнес-аналитика;
- оценка возможных рисков;
- формирование тестовой документации и идей по улучшению качества ПО, так называемых тест-кейсов;
- разработка и проведение тестирования;
- определение проблемных мест и их внесение в трэкинг-систему;
- обсуждение проблем с разработчиками;
- прослеживание жизненного цикла проблем;
- выявление, документация и верификация дефектов;
- повторный тест исправленных ошибок;
- анализ тестирования и его оптимизация;
- написание автоматических тестов;
- оформление тестовой документации.
Плюсы и минусы профессии
Плюсы
- Возможность (и необходимость!) постоянного повышения профессионального уровня в соответствии с прогрессом IT-отрасли и сферы бизнеса. Профессия не позволяет расслабиться и умственно деградировать, заставляет быть в курсе новых технологий.
- Высокая оплата труда.
- Престиж и всё возрастающая востребованность профессии в будущем.
Минусы
- Главный минус — рутинная и монотонная работа при прохождении тест-кейсов в ручном тестировании и работе с документацией.
- Один общий минус для всех профессий IT-сферы — постоянная сидячая работа за компьютером.
- Возможное недовольство заказчика результатом работы.
- Большое количество заинтересованных лиц в каждом проекте, у которых свои пожелания и требования: заказчики, разработчики, пользователи.
Важные качества
- аналитический склад ума;
- стратегическое мышление;
- абстрактное мышление;
- умение моделировать и абстрагироваться;
- критический, деструктивный склад ума, направленный на обнаружение ошибок;
- перфекционизм в хорошем смысле этого слова;
- способность быстро переключаться между задачами;
- умение работать в команде и аргументировать свои решения;
- коммуникабельность — умение общаться напрямую влияет на качество ПО;
- умение находить компромиссы между заинтересованными лицами;
- ответственность;
- усидчивость;
- настойчивость;
- внимание к деталям;
- умение расставлять приоритеты.
Инструменты для 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 Engineer
Trainee QA Engineer — уровень начинающего QA-инженера с минимальным опытом работы.
Junior QA Engineer — специалист, имеющий опыт работы до 6 месяцев и уже имеющий определенные навыки.
Middle QA Engineer — инженер с опытом работы 1-3 года (средняя степень квалификации). Знает, как выполнять поставленные задачи (составления сценариев тестирования, ведение технической документации) и способен консультировать начинающих сотрудников.
Senior QA Engineer — инженер высшей степени квалификации, умеющий выполнять сложные технические задачи.
Обучение на QA-инженера (образование)
QA-инженеров не обучают в вузах за некоторым исключением: на нескольких факультетах читают курс по тестированию в течение одного семестра. Существует множество специальных курсов.
Место работы
- IT-компании;
- независимые компании по тестированию;
- крупные компании, внедряющие свои программы.
Зарплата
- Россия: 30 000 — 130 000 ₽
- Москва: 50 000 — 210 000 ₽
Оплату труда продвинутых QA-инженеров можно сравнить с зарплатой программистов.
Источник: https://start-365.ru