Профессия тестировщик: кто это и чем занимается
Каждый день мы пользуемся приложениями и сайтами, ожидая от них безошибочную работу. Сегодня расскажем о тех, кто за этим следит — о тестировщиках.
Кто такой тестировщик и что делает
Тестировщик, или общепринятое название QA-engineer (Quality Assurance Engineer, инженер по обеспечению качества), — это человек, который проверяет сайты или приложения перед тем, как они дойдут до конечного пользователя. Также он постоянно проверяет работоспособность продукта или отдельной функции.
Специалист обнаруживает баги, то есть технические ошибки. Результат работы QA-инженеров важен и для бизнеса и для его клиентов. Тестирование мобильных и веб-приложений позволяет обнаружить уязвимости, которые нередко приводят к сливу базы данных или хакерским атакам. Но чаще всего они влияют на продажи товаров и услуг.
Например, вы хотите заказать пиццу и заходите в фирменное приложение. Собираете корзину, нажимаете кнопку «Заказать», но вместо формы с контактными данными вы видите главную страницу, а заказ в корзине не сохранился. В итоге вы остались без еды, а местная пиццерия — без значительной части выручки, ведь та же проблема возникла и у других пользователей. За этот сбой будет отвечать инженер по тестированию.
Кроме корректной работы продукта тестировщик следит за правильным отображением web-страницы на разных платформах, браузерах и устройствах. А ещё такие специалисты смотрят за тем, чтобы новые доработки не конфликтовали с основными рабочими элементами приложения — такое случается после обновлений.
Как работает тестировщик
Чтобы найти и устранить ошибки, профессионалы в области тестирования ежедневно повторяют тысячи комбинаций действий, которые совершают пользователи. Из-за этого профессия тестировщика кажется сложной.
QA-инженер упрощает задачу тем, что составляет специальные инструкции — тест-кейсы. Это пошаговые алгоритмы работы, в которых описано, какие части сервиса нужно проверить и при каких условиях, что нужно сделать для проверки и какой результат должен получиться на выходе. Тестировщик идёт чётко по этому плану, и если находятся ошибки, то специалист оформляет их в баг-репорты (отчёты о багах). Такие инструкции есть для каждой функции продукта.
QA должен самостоятельно составлять тест-кейсы. Для этого тестировщик общается с разработчиками, аналитиками и продакт-менеджерами. Именно они знают, зачем в ПО отдельные элементы и как эти элементы работают.
Когда кейсы описаны, в ход идет ручное и автоматизированное тестирование. В первом случае QA-инженер проверяет всё самостоятельно, полагаясь на собственную логику и внимательность. Во втором тестировщик использует специальные скрипты — автотесты, которые имитируют поведение пользователя в программе. Они, в свою очередь, делятся по масштабам на юнит-тесты (для отдельного модуля), сервисные тесты (для нескольких модулей) и интеграционные тесты (для всех частей программы сразу).
Для хранения и управления изменениями исходного кода приложений используется система контроля версий. Эта система фиксирует все изменения, чтобы разработчик мог вернуться к нужной версии, а тестировщик проверить её на ошибки.
Это лишь малая часть рабочих методик тестирования. Ценный сотрудник должен обладать ещё и другими навыками, о которых мы поговорим далее.
Востребована ли профессия тестировщика
С ноября 2022 года количество вакансий в IT-компаниях по стране возросло на 63%. В июне 2023 года на hh.ru открыто 4079 позиций по запросу «тестировщик» в России. Подавляющее большинство работодателей ищут сотрудников в офис: всего 951 объявление предполагает удалёнку.
Рост связан с тем, что иностранные провайдеры и разработчики ПО ушли с IT-рынка РФ. Как следствие, появилось больше отечественных компаний. Они создают аналоги популярных иностранных сервисов, в том числе с применением нейросетей. В блоге есть отдельная статья о том, что уже умеет искусственный интеллект. Разрабатываемое ПО полезно как для B2B-, так и для B2C-сегментов бизнеса.
Тестирование программного обеспечения необходимо в любых командах разработки, так как оно помогает создать качественный и функциональный продукт для бизнеса, поэтому даже тестировщик с минимальным опытом может найти себе проект по душе и вырасти в нём.
Сколько зарабатывают тестировщики
Как и в любой диджитал-профессии, зарплата тестировщика зависит от грейда, опыта работы и стека (набора) применяемых технологий.
По данным сайта Городработ.ру, средняя зарплата в сфере тестирования составляет 65 тыс. рублей. Также встречаются вакансии для кандидатов уровней мидл+ и сеньор — от 80 до 120 тыс. рублей. Начинающий тестировщик, скорее всего, будет получать не очень большой гонорар, но рискнуть всё равно стоит: команды берут перспективных сотрудников «на вырост» и обучают на своих реальных задачах. А дальнейшее развитие в профессии зависит от самих кандидатов.
Плюсы и минусы профессии
Главный плюс тестирования программного обеспечения — это относительно невысокий порог вхождения. Курсы по удалённым профессиям предлагают студентам параллельно стажироваться в компаниях и набирать опыт в теории и на практике. Но есть также другие нюансы, о которых новичкам стоит знать.
Возможности
- Свобода выбора. Существуют стартапы разных направлений, и везде нужен свой тестировщик. Можно выбрать ту сферу, которая больше всего интересует именно вас, будь это финансы, доставка продуктов или соцсети.
- Можно работать и обучаться одновременно, постепенно повышая грейд. Под грейдом мы понимаем условный уровень опыта в профессии. В зависимости от него сотруднику поручают более/менее важные и сложные задачи.
- Разные виды занятости — тестировщик может работать в команде из офиса или из дома. Есть вариант уйти во фриланс и работать сдельно по задачам без привязки к графику.
Особенности
1. Рутинность. Тестировщик подтверждает, что продукт соответствует всем ожиданиям клиента, постоянно проверяет, не конфликтуют ли обновления между собой, ищет источник ошибки в функционировании. Это достаточно однообразные действия, которые требуют концентрации внимания. Такая рутина подходит только усидчивым людям.
2. Понимание продукта на разных уровнях. Для этого тестировщик много общается с коллегами, изучает работу сервиса и всегда держит руку на пульсе. В среде, где бизнес постоянно растёт и следует технологическим трендам, нельзя находиться на одном и том же уровне — можно устареть в видении рабочих задач.
3. Ответственность. Инженер по тестированию говорит своё финальное слово перед релизом — стоит ли представлять клиенту новые функции, удобен ли интерфейс с точки зрения пользовательского опыта. Это свежий взгляд, который помогает оперативно скорректировать недочёты или убрать ошибку в коде. Кроме того, тестировщик должен уметь отстаивать собственную точку зрения. Мало сказать, что баннеру не место на странице, — надо объяснить, что, например, он загораживает важные элементы интерфейса или не даёт прочитать текст.
В целом для тестирования важна не только системность, но и творческий подход к задачам, поскольку пользователи могут мыслить нестандартно. Например, если человек запутается в сложном интерфейсе, он будет действовать непредсказуемо и найдёт уязвимость там, где её никто не искал. Тестировщик должен опираться на этот нюанс в собственных исследованиях, чтобы оставлять полезный фидбек.
Как стать тестировщиком
Резкая смена профессии требует тщательного планирования и подготовки.
- В первую очередь, необходимо самостоятельно или в онлайн-школе изучить теорию тестирования.
- Во-вторых, получить максимально возможное количество практического опыта, проводя тестирование различных мобильных или веб-приложений.
- В-третьих, необходимо изучить инструменты тестирования на уровне пошаговых руководств.
- В-четвертых — подготовиться к собеседованию и быть готовым ответить на теоретические вопросы; рассказать полученный практический опыт и стек используемых инструментов.
Дело в том, что в ближайшее время вам придётся посвятить себя учёбе и поиску работы — самостоятельно или в онлайн-школах. Если вы как тестировщик будете развиваться без чьей-либо помощи, то в начале нужно будет соглашаться на проекты ради опыта, а не ради денег. Некоторые школы, напротив, помогают быстро трудоустроиться в перспективных проектах. Ещё один плюс менторских продуктов — сплочённое коммьюнити ― например, группы в Телеграме, где профессионалы отвечают на вопросы новичков и делятся своим опытом.
Какие навыки нужны QA-инженерам
Навыки принято делить на мягкие и профессиональные. К категории мягких относят черты характера или личные характеристики, а к профессиональным — знания, которые приобретаются в процессе работы. Ниже поговорим о том, что пригодится инженеру по тестированию.
Мягкие навыки (soft skills)
- Коммуникабельность. Тестировщик должен уметь находить общий язык с коллегами и руководством, однозначно и аргументированно формулировать свою точку зрения, но при этом слышать и чужую. В этой сфере ценится умение идти навстречу — признавать свои ошибки и быстро их исправлять.
- Оценка сроков. Обычно тестировщик может обозначить, сколько времени уйдёт на задачу (хотя от сотрудников уровня джуниор не требуют точности).
- Инициативность. Для многих команд это признак погружённости в бизнес и в проект в частности. Активный тестировщик помогает развиваться продукту быстрее.
- Стрессоустойчивость. Перед выпуском программы или сайта необходимо проводить ряд функциональных тестов, что предполагает большое количество ответственной работы. Это напряжённый период, на время которого надо уметь абстрагироваться от внешних обстоятельств и концентрироваться на процессе тестирования. А несколько советов для этого можно найти в нашей статье.
Профессиональные навыки (hard skills)
- Знание языков программирования. Навык пригодится, если вы хотите потом заняться автоматизированным тестированием, но для джуниоров это не так важно.
- Знание английского языка на уровне B1 и выше. Язык нужен для понимания некоторых элементов интерфейса и кода, просмотра обучающих материалов по теме. Также тестировщик может устроиться в международную компанию — в этом случае знание иностранного будет большим плюсом. Кандидаты с уровнем B2+ чаще получают приглашения в иностранные проекты, потому что могут сами писать баг-репорты, ориентироваться в англоязычных источниках и общаться на созвонах. Существуют даже специальные курсы английского, на которых обучают терминологии из сферы тестирования.
- Навыки, связанные с выполнением должностных обязанностей. Сюда входит тестирование веб-приложений и страниц, анализ требований, разработка тест-кейсов, работа с системой контроля версий, поиск багов или дефектов, построение отчётов, работа с API и прочее. А ещё пригодится умение работать с базами данных, чтобы сравнивать реальные данные с теми, которые получаются во время тестов.
- Знание основ тестирования мобильных приложений, если это требуется для вакансии. В идеале тестировщик должен уметь работать с инструментами вроде TestFlight (для iOS), Google Play internal test (Android).
Набор умений и личные характеристики — это только часть успеха в карьере инженера по тестированию. Ещё одна важная деталь — самопрезентация на собеседовании.
Вопросы работодателей на собеседовании
Конкуренция в области тестирования очень высока, и к кандидатам всегда есть ряд специфических требований. Если у вас нет опыта работы в тестировании, HR не будет спрашивать про прошлые проекты. Но вам наверняка зададут ряд базовых вопросов:
- «Расскажите о себе» — немного о том, чем вы занимались ранее: образование, навыки, интересы, пройденные курсы, профессиональные достижения на прошлых местах работы и другое.
- «Почему вы хотите начать карьеру в тестировании?» — если нет чёткого ответа на этот вопрос, HR-менеджер может подумать, что претендент не сильно мотивирован. То есть человек может уйти через месяц-два, если поймёт, что тестирование ему не интересно.
- «Что вас не устраивало на прошлом месте работы в прошлой сфере деятельности?» — из этого пункта HR выяснит некоторые ваши личные черты, например быструю переключаемость или конфликтность. А может, наоборот, амбициозность и широкий кругозор.
Звучит банально, но если встать на место нанимателя, можно понять, почему это важно. Команды разработчиков вкладывают свои ресурсы в новичков, их обучают более опытные специалисты или предоставляют доступ к дополнительным курсам. К таким кадрам относятся как к инвестиции в будущие проекты. Если мотивы соискателя неясны, есть опасность зря потратить время — как работодателя, так и ваше личное. В блоге есть полезная статья о необычных вопросах на собеседовании и как на них правильно реагировать.
Совет: попробуйте поискать баги на сайте или в приложении компании-работодателя, в идеале — оформите их в подобие баг-репорта. Уже как тестировщик. В общем, постарайтесь сделать на этом этапе больше, чем от вас потребуют на собеседовании.
Куда развиваться тестировщику
Профессия «инженер по тестированию» считается щадящим способом вхождения в IT благодаря невысоким требованиям к соискателям. Вот какой карьерный путь можно пройти от джуниора QA-инженера:
- Продолжать углубляться в ручное тестирование. Спустя полгода, если не изучать новое, а развивать уже имеющиеся навыки, тестировщик продвигается по градации джуниор — мидл — сеньор с соответствующим ростом зарплаты. В дальнейшем вы можете вырасти в менеджера по тестированию (QA Lead) — если вам близок менеджмент и управление людьми, то это направление для вас. Вы будете управлять группой, а может, и всеми тестерами в компании.
- Уйти в автоматизированное тестирование и стать QAA-инженером, писать код и изучать тестовые фреймворки — это уже близко к разработке. Здесь тестировщик тоже может вырасти в лида, как и в прошлом варианте.
- Стать проджект-менеджером. Это человек, который управляет командой разработки и общается с заказчиком. Он следит за бесперебойной работой команды и сроками проекта. Такие перемены возможны, потому что во многих задачах вы будете пересекаться с проджект-менеджером и понемногу у него учиться. Из этой позиции легко вырасти в Delivery-менеджера или Operational-менеджера. Первый отвечает за путь продукта от беседы с заказчиком до завершения работы над проектом. Второй не работает с клиентами, а оптимизирует внутренние процессы самой компании — считает бюджет, устанавливает метрики и следит за ними, делает взаимодействие отделов более эффективным.
- Уйти в разработку. В процессе работы тестировщик может понять, что ему стало интересно разбирать код или участвовать в непосредственном создании продуктов.
- Перейти в нагрузочное тестирование — здесь вам придется создавать условия, похожие на нагрузку, которую ежедневно будет испытывать сайт или приложение. Так определяются метрики вроде пропускной способности или времени отклика — сколько человек может одновременно зайти на сервер и сколько времени проходит от клика на элемент интерфейса до желаемого результата.
- Заняться тестированием безопасности или пентестингом — это диагностика ПО и имитация действий хакеров для того, чтобы увидеть уязвимости. Пентестеры, например, следят за тем, чтобы обычный пользователь при авторизации не мог видеть данные, доступные только администраторам.
Учтите, что если вы хотите уйти из тестирования на стадии мидла или сеньора, например стать разработчиком или менеджером, — то вы падаете в грейде и опять становитесь джуниором. Если вас это не пугает или вы проходите свой путь в пределах одной компании, то дерзайте.
Где учиться тестированию
Для того чтобы освоить ручное и автоматизированное тестирование, есть два пути — самостоятельное обучение и курсы. Самообразование — для дисциплинированных людей с крепкой силой воли, которые понимают, с чего начать и куда нужно двигаться. Разобраться в темах помогут статьи, обучающие видео и форумы профессионалов.
Плюс в том, что в этом случае вы сами выбираете, сколько времени уделить учёбе, какую тему изучить, а какую оставить на потом. Минус — если появились вопросы о каких-либо нюансах тестирования, то задать их некому. Пользователи могут дать информацию, но нет гарантий, что она будет полностью соответствовать текущим ожиданиям рынка.
Второй путь обучения гораздо проще, так как российский рынок изобилует предложениями — очными курсами в университетах, короткими и длительными онлайн-интенсивами с поддержкой менторов. Такой вариант удобен для начинающих тестировщиков и тех, кто желает сменить специальность. Даже если у вас нет примерных ориентиров, преподаватели курсов по тестированию программного обеспечения объяснят азы, структурируют уроки в презентациях и ответят на все интересующие вопросы.
Естественно, о профессии QA-инженера невозможно рассказать подробно в одной статье. Но если у вас есть желание менять вашу жизнь и искать новые карьерные возможности, оставайтесь с нами. Мы познакомим с IT-специальностями со всех сторон и поможем подобрать подходящее обучение.