Профессия тестировщика (software test engineer) или QA-инженера (quality assurance engineer) остается одной из самых востребованных на рынке труда — во многом благодаря своей зрелости (есть множество учебников, подготовительных курсов и тренингов) и относительно легкому входу в профессию.
Но все ли так однозначно? Действительно ли software test engineer и quality assurance engineer — два названия одной и той же профессии? Этот фундаментальный вопрос очень часто задают на собеседовании начинающим рекрутерам, так что разобраться в тонкостях будет более чем полезно.
Давайте разбирать все по порядку.
Тренды в QA и тестировании на 2021 год
QA-инженер и тестировщик: схожесть и различия
Часто можно встретить следующую диаграмму, описывающую соотношение между понятиями «обеспечение качества» (quality assurance), «контроль качества» (quality control) и «тестирование» (testing).
«Матрешка» тестирования
В реальности же понятие «тестирование» отождествляется с понятием «контроль качества» (quality control). Основными задачами тестировщика являются:
- проверка качества конечного продукта на последнем этапе перед сдачей всего продукта заказчику;
- поиск и документирование дефектов;
- предоставление информации бизнесу и заказчику о соответствии продукта заявленным требованиям.
Другими словами, вся работа сосредоточена вокруг поиска дефектов в продукте. Тестировщик, используя различные методы тестирования, находит и документирует дефекты, а также проверяет их отсутствие после исправления («закрывает баги»).
Основным ограничением профессии является то, что тестировщик практически не может влиять на продукт, т.к. вступает в игру на самом последнем этапе разработки продукта, когда изменения и улучшения вносить уже поздно и дорого. Как результат, тестировщик не обладает полным контекстом в продукте, его влияние на продукт ограниченно, а большая часть работы сводится к монотонной проверке результатов предыдущих этапов разработки.
Отдельно стоит упомянуть автоматизированное тестирование, при котором для выполнения тестов и определения результатов проверки используются программные средства. В силу того что тестировщик-автоматизатор должен обладать дополнительными навыками программирования и владеть средствами автоматизации, он может рассчитывать на более высокую оплату труда, хотя принципиально суть его работы мало чем отличается от обычного тестировщика.
Роль QA-инженера гораздо шире, а основной фокус направлен на предотвращение появления ошибок как таковых. QA-инженер подключается к работе на самых ранних этапах разработки продукта. Задача QA-инженера состоит в том, чтобы убедиться, что программное обеспечение соответствует всем необходимым стандартам и спецификациям. Это включает в себя:
- плановую оценку стратегии процесса тестирования;
- способы предотвращения возможных ошибок;
- анализ проектных рисков;
- разработку стратегии управления качеством и сопутствующих процессов, включая процессы не только тестирования, но и разработки.
QA-инженер тесно взаимодействует с другими членами команды: продукт-менеджерами, дизайнерами, разработчиками. Являясь высокоуровневым инженером, способным влиять на все процессы в компании, QA проходит через весь жизненный цикл продукта и возглавляет процесс сопровождения программного обеспечения. Иными словами, QA-инженеры — это люди, которые помогают командам разработки выпускать качественный продукт как можно быстрее за как можно меньшие деньги, ведь чем раньше обнаружен дефект, тем дешевле его исправить, а наиболее выгодный вариант — исправить ошибку еще на уровне идеи.
Именно этой кривой мотивируют заказчика согласиться на услуги тестирования.
QA-инженер измеряет качество продукта, знает его актуальное состояние и что нужно сделать, чтобы его поднять не только на этапе тестирования, но и на самых ранних этапах жизненного цикла: разработки, дизайна или составления требований.
К основным недостаткам профессии можно отнести то, что работу QA-инженера сложно оценить в количественных метриках, ведь если он выполняет ее хорошо, то количество дефектов в продукте будет минимальным.
Сейчас набирает обороты shift-left testing — подход, при котором тестирование подключается раньше в жизненном цикле продукта, т.е. сдвигается «влево» на таймлайне проекта. При таком подходе тестирование включается уже на этапе планирования и проработки требований. Такой подход становится все популярнее в крупных продуктовых компаниях и позволяет QA-специалисту иметь весь контекст о проекте и продуктовое видение.
Как видим, и QA-инженер, и тестировщик имеют свои методы и способы проверки того, соответствует ли программный продукт требованиям и может ли он быть передан заказчику. Однако, несмотря на то что эти две профессии имеют много общего и довольно сложно провести черту между ними, различия все-таки есть, причем довольно существенные.
Кто востребован на рынке труда?
Чтобы ответить на этот вопрос, для начала давайте рассмотрим описания различных вакансий, представленных на платформе Linkedin. Вот несколько примеров:
Описание вакансии тестировщика в одну из международных компаний
Описанные выше задачи полностью или частично покрывают сферу деятельности тестировщика.
- E2E, функциональное и интеграционное тестирование — способы тестирования продукта, прямая задача тестировщика.
- Ничего не указано про документирование дефектов и коммуникацию результатов тестирования: то ли не является необходимостью, то ли подразумевается само собой.
- Открытый вопрос, что вкладывается в понятие «поддерживать качество»: на каком уровне? какой властью будет обладать инженер на этой позиции, чтобы это самое качество поддерживать? Вопросов много.
Рассмотрим пример описания вакансии QA-инженера.
Описание вакансии QA-инженера в одну из минских компаний
Здесь, как видим, круг задач гораздо шире, чем у тестировщика. И зарплата, соответственно, совсем на другом уровне.
Однако есть и другие, менее удачные примеры, где требования описаны для одной профессии, а шапка вакансии — для другой. Например:
Описание вакансии QA-инженера
Как видим, несмотря на то что шапка вакансии гласит «QA-инженер», заявленные требования на 90% описывают работу тестировщика. Вероятнее всего, и зарплата будет на 90% приближена к зарплате тестировщика, несмотря на влиятельный тайтл.
Такая путаница возникает из-за того, что понятия «QA-инженер» и «тестировщик» часто подменяются. Компании-наниматели хотят заполучить грамотного специалиста за меньшие деньги (ведь «вилки» зарплат тестировщиков и QA-инженеров отличаются), тестировщики, с другой стороны, хотят расти и развиваться, оказывать большее влияние и на продукт, и на процессы внутри компании, а рекрутеры, в свою очередь, не очень сильно вникают в нюансы и различия. И хотя в последнее время ситуация заметно улучшилась, на рынке труда все еще не хватает ясности и понимания, зачем QA-инженеру платить больше.
Стоит также отметить, что сейчас наблюдается общемировая тенденция по уходу от профессии тестировщика в сторону QA-инженера или Software Engineer in Test (человек обладает также навыками программирования), что, в свою очередь, говорит о значительном повышении инженерной культуры в компаниях-разработчиках программных продуктов.
Где найти хорошего специалиста?
Заметим, что вакансии найдутся и для тестировщиков, и для QA-инженеров. Востребованы специалисты, как умеющие найти всевозможные дефекты в продуктах, так и способные разработать стратегию и методику тестирования, выстроить процессы обеспечения качества и улучшить пользовательский опыт конечного продукта. Отдельно стоит рассматривать тестировщиков-автоматизаторов, к которым предъявляются дополнительные требования по знанию языков программирования и владению инструментами автоматизации.
Большинство резюме QA на открытом рынке труда — это специалисты, владеющие ручным функциональным тестированием.
При поиске кандидата нужно прежде всего ответить на три вопроса: кто? куда? какие?
- Кто нам нужен? Тестировщик или QA-инженер?
- Куда нужен, какой проект?
- Какие обязательные знания и качества должны быть у кандидата?
Одной из самых популярных площадок поиска и найма специалистов остается Linkedin. Однако стоит рассматривать и другие площадки. Например, в последнее время все большие обороты набирают специализированные чаты в Telegram (к примеру, @qaclub_minsk), группы в социальных сетях и даже реклама в Instagram.
Кроме того, все большее распространение получают реферальные программы внутри компаний, когда сотрудникам выплачивается бонус за успешную рекомендацию соискателя на вакансию. Как следствие, популярным становится наем по рекомендации.
Можно обратить внимание на докладчиков на специализированных конференциях, например: SQA Days, TestCon, COMAQA, QAASP и др., а также людей, ведущих профессиональный блог и активных участников сообществ.
Сколько зарабатывает хороший специалист?
Необходимо отметить, что рынок труда все еще переживает последствия COVID-19 и практически повсеместного перехода на удаленную работу. Как следствие, география присутствия расширилась, и у многих компаний поменялись установки.
По данным справочника «ИТ-абитуриент 2020», который был составлен представителями ПВТ, при трудоустройстве специалисты могут рассчитывать на зарплату от 400 долларов США. Разумеется, есть несколько вариантов увеличить свой заработок.
Конкурентным преимуществом станет владение английским языком, начиная от среднего уровня. Если вы знаете другой иностранный язык, не волнуйтесь, это тоже может пригодиться. Учитывая количество международных проектов в IТ-компаниях, и немецкий, и китайский не будут лишними.
Что еще поможет увеличить заработную плату? Например, минимальные знания языков программирования (чаще Python, Java или Swift, Kotlin для мобильных приложений) или владение определенными программами, которые необходимы для работы тестировщика. Разумеется, зарплата также зависит от опыта и экспертизы в тестировании.
По данным портала dev.by, QA-инженер уровня senior может рассчитывать на зарплату ~$2000–2500, зарплата тестировщика уровня senior колеблется в районе $1500–1700.
Краткие итоги
Получается, что сегодня, говоря слово «качество», многие слышат «тестирование», и очень часто это функциональное тестирование, хотя понятие качества гораздо шире. Нанимая специалиста на соответствующую должность, необходимо четко осознавать, что является для вас приоритетом: функциональное тестирование или обеспечение качества.
Итак, если компания готова тратить время и деньги на внесение улучшений, лучше искать тестировщика — человека, который проверит конечный продукт, найдет дефекты и предоставит информацию о качестве продукта заказчику.
Если компания заинтересована в выстраивании грамотных процессов, поиске багов на самых ранних этапах жизненного цикла продукта, обеспечении масштабируемости и роста качественного продукта, лучше искать QA-инженера — человека, который возьмет на себя управление стратегией, построением процессов обеспечения качества и лучших инженерных практик, а также будет вовлечен в продукт на самых ранних этапах.
При этом следует понимать, что и уровень зарплаты будет разный. Таким образом, компания должна решить, во что инвестировать.
На занятиях в школе HRPR вы не только узнаете все о «непонятном языке айтишников», но и поймете его.
За 10 лет мы научились объяснять даже самые «тяжелые понятия» простым языком.