и
IT 12.08.2020

Профессия QA-тестировщик: кто это, чем занимается, зарплата и как стать

14 мин.

Кто же такой QA и чем он занимается?

Работа Quality Assurance engineer заключается скорее не в проверке качества (хоть это слово и присутствует в названии профессии), а в контроле за правильностью выполнения всех этапов разработки и правильностью работы итогового продукта. Звучит немного похоже на задачи тестировщика. Но тот занимается только проверкой работы приложения и по результатам (наличию багов и ошибок) принимает его или не принимает. А QA engineer также контролирует соблюдение стандартов при разработке программ, взаимодействует с разработчиками, дизайнерами, заказчиками, предотвращая само появление багов и ошибок в ПО. Правда у нас профессии тестировщика и QA чаще всего воспринимаются как единое целое.

Если разбивать по пунктам, то круг обязанностей QA инженера входят следующие задачи:

  • детализация требований к программе (выполняется совместно с заказчиком);
  • анализ и расчет времени нужного на создание приложения или исправление бага (задача, конечно, не для джунов, но как человек с взглядом “со стороны”, QA выдает самые реалистичные эстимейты по времени);
  • разработка сценариев тестирования;
  • сам процесс тестирования;
  • внесение обнаруженных недочетов в трекинговую систему
  • обсуждение исправлений с всеми участниками разработки;
  • отслеживание процесса исправления;
  • повторное тестирование проблемных моментов;
  • анализ результатов тестирований;
  • доработка сценариев тестирования’
  • анализ процесса командной разработки;
  • оптимизация процессов разработки для избежания повторного появления обнаруженных ошибок (если ошибки возникают из-за несогласованности действий разных подразделений или потому что кто-то не следует установленным стандартам разработки, то как раз работа QA указать на это проблемное место и добиться его устранения);
  • ведение документации по тестам.

На первый взгляд обязанностей очень много, но на практике часть из них оказывается в зоне ответственности тестировщиков, работников занимающихся Quality Control, разработчиков, бизнес-аналитиков и технических писателей. Так что в разных компаниях обязанности QA engineer будут немного отличаться: где-то будет больше работы по планированию работы над программой и багами, где-то больший упор делается на тесты и отслеживание фиксов, а где-то QA сам участвует в создании правок.

Соответственно в каждом отдельном случае рабочий день будет выглядеть по-разному. В общем случае QA engineer начинает день с работы над тестами и отслеживанием прогресса разработки по трекинговой системе. В течение дня он общается с разработчиками (уточняя ход разработки и проблемы его замедляющие) и заказчиком (уточняя требования по разрабатываемым в данный момент функциям). Под конец дня все изменения вносятся в тестовую документацию.

QA-специалисты — это те, кто видит всю картину

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

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

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

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

QA являются центром знаний

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

Это очень важный момент. Если в организации нет QA-отдела, для того чтобы понять, как ведёт себя конкретный элемент системы, надо найти разработчика, который его писал, и надеяться на то, что он помнит, что и как он делал пару месяцев назад. Это в том случае, если он всё ещё работает в компании.

Кто такие тестировщики

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

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

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

  • Идеальный product-manager создает максимально детализированный спек продукта и передаёт его идеальному дизайнеру.
  • Идеальный дизайнер, в свою очередь, рисует продуманные до мельчайших деталей UI- и UX-мокапы.
  • Техлид компании распределяет работу между разработчиками.
  • Идеальные разработчики в кратчайшие сроки (и, разумеется, без багов) имплементируют спек, тщательно проверяя и документируя свой код.
  • Идеальные QA-инженеры пишут тест-план на основе детального спека и сверяются с UI-диаграммами, полученными от дизайнера.
  • Проверка продукта становится тривиальной задачей и он выходит в продакшн.

Spec — спецификация продукта, этап цикла разработки. Документ, описывающий архитектурные и фунциональные требования к создаваемому ПО. Также называется product requirements document (PRD) или просто requirements (требования).

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

Так что вернёмся теперь в реальность и попробуем разобраться, как в действительности выглядит проверка ПО и какие роли в организации исполняют тестировщики.

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);
  • навык составления тест-планов и тест-кейсов.

Плюсы и минусы профессии

Плюсы

  • Возможность (и необходимость!) постоянного повышения профессионального уровня в соответствии с прогрессом IT-отрасли и сферы бизнеса.  Профессия не позволяет расслабиться и умственно деградировать, заставляет быть в курсе новых технологий.
  • Высокая оплата труда.
  • Престиж и всё возрастающая востребованность профессии в будущем.

Минусы

  • Главный минус — рутинная и монотонная работа при прохождении тест-кейсов в ручном тестировании и работе с документацией.
  • Один общий минус для всех профессий IT-сферы — постоянная  сидячая работа за компьютером.
  • Возможное недовольство заказчика результатом работы.
  • Большое количество заинтересованных лиц в каждом проекте, у которых свои пожелания и  требования: заказчики, разработчики,  пользователи.

Как стать QA?

Фактически для того чтоб ступить на стезю QA не нужно знание языков программирования или строения баз данных. Главное иметь представление о структуре процесса разработки ПО и разбираться в процессе тестирования. Нужно почитать литературу (в основном зарубежную), потренироваться на “кошках” (потренироваться использовать ПК стараясь замечать все недочеты и баги в приложениях/сайтах). Для большей уверенности можно пройти пару обучающих курсов в интернете и/или стажировку в обучающих центрах (в институтах эту специальность, к сожалению, не преподают).

 Подтянуть английский (при отборе кадров IT компании предпочитают кандидатов со знанием английского). В любом случае начинающего QA в первую очередь проверяют на знание процесса тестирования ПО: для чего оно вообще нужно, какие есть виды тестирования, что такое баг, как его задокументировать и какие шаги нужно пройти для его закрытия. Поначалу вашим уделом будут именно тесты. А после того как освоитесь с этой работой и немного поближе узнаете как построена разработка ПО в вашей компании – перейдете на более высокий уровень и получите свою долю ответственности за разрабатываемый продукт. Уровень вхождения на специальность QA существенно ниже, чем на программиста из-за чего конкурс на данную вакансию может быть очень, ооочень, ОЧЕНЬ большим.

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

Место работы

IT-компании; независимые компании по тестированию; крупные компании, внедряющие свои программы.

Важные качества

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

Перспективы

Работа QA, как одна из относительно легких точек входа в ИТ, предлагает довольно много вариантов развития. Можно остаться в этой специальности и подняться по лестнице: junior QA, middle QA, senior QA, QA team lead, QA manager, head of QA department. Если вы больше тяготеете к программированию, но не готовы идти в программисты, то можно переключится на QA automation engineer.

Тогда вы сможете попробовать свои силы в автоматизации проверки приложений. Если же вы рассматриваете QA только как трамплин для карьеры в другой специальности, то после дополнительного обучения можно переквалифицироваться в программиста, бизнес аналитика или менеджера проектов. На новых поприщах открываются дополнительные возможности профессионального роста, но и уровень ответственности там совсем другой. QA. +13

Оплата труда

Новички направления получают от 35-45 тыс. рублей. Доходы экспертов зависят от количества реализованных проектов, солидности компании, типа заказов. В среднем они составляют 120-150 тыс. рублей в месяц.

Заключение

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

Источники

  • https://javarush.ru/groups/posts/kto-takoy-qa-engineer
  • https://skillbox.ru/media/code/pochemu_vam_ne_oboytis_bez_qa_i_zachem_voobshche_nuzhny_testirovshchiki/
  • https://LinuxTrainingCenter.com/qa-engineer/
  • https://www.profguide.io/professions/qa_injeneer.html
  • http://PROFchoice.ru/atlas-professij/qa-inzhener
[свернуть]
Оцените статью
Понравилась статья?
Комментарии (0)
Комментариев нет, будьте первым кто его оставит

Комментарии закрыты.