Journal
Новичкам

Кто такой тестировщик и чем он занимается: всё, что нужно знать о профессии

Тестировщик проверяет, соответствует ли продукт техническим требованиям, отвечает ли он запросам бизнеса и насколько он удобен в использовании.
Работа не требует навыков программирования, поэтому профессию тестировщика считают одной из самых доступных среди IT-специальностей. На русскоязычном рынке тестировщиков еще называют QA-специалистами. Это не совсем одно и то же, но для упрощения в этой статье мы будем использовать эти названия как синонимы.
QA-инженеры проверяют, чтобы программы работали предсказуемо и без сбоев. Они находят на сайтах или в приложениях ошибки и сообщают о них разработчикам. Такие ошибки в работе сервисов еще называют багами.
Также тестировщики смотрят на удобство использования цифрового продукта и проверяют любые сценарии, по которым человек может работать с программой. Благодаря таким специалистам продукты получаются удобными и продуманными — ими легко пользоваться.
Но как понять, что работа, связанная с тестированием программного обеспечения, вам подходит? Давайте разбираться.

Какие умения и навыки нужны тестировщику

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

Софт-скилы

Софт-скилы, или мягкие навыки, не связаны со спецификой работы напрямую, но важны для карьеры. Они помогают эффективнее справляться с рабочими задачами, договариваться с коллегами, учиться новому и адаптироваться к изменениям. В приоритете для профессии тестировщика следующие софт-скилы:
  • Внимательность. Если совсем кратко, то работа тестировщиков заключается в сравнении требований к продукту с его реальным поведением. Поэтому без внимательности и дотошности в этой профессии будет трудно.
  • Ответственность. От работы специалиста по тестированию зависит качество продукта. Хороший тестировщик понимает это, поэтому относится к задачам ответственно: соблюдает сроки, сразу уточняет детали, собирает полную информацию о пользовательском опыте.
  • Структурное мышление. QA-специалист должен понимать и находить взаимосвязи между разными частями продукта, чтобы быстрее определять причину багов. Например, что именно сломалось, если на сайте не отображается название кнопки? Ошибка может быть допущена на бэкенде или в базе данных – возможно, названия для кнопки там просто нет или оно не распознается. А может случиться, что это фронтенд не отображает название. Чтобы найти ответ, нужно понимать архитектуру продукта и мыслить структурно.
  • Креативность. Для QA-инженера важно уметь посмотреть на продукт с разных сторон. Так он сможет не только протестировать основные сценарии, но и предугадать нестандартное поведение пользователя. Например, что будет, если выйти из личного кабинета в момент оплаты?
  • Умение работать в команде. Тестировщики работают вместе с аналитиками, разработчиками, дизайнерами, менеджерами и другими специалистами. Постоянная коммуникация — важная часть работы в QA. Нужно знать, к кому обратиться с вопросом или задачей, не стесняться уточнять детали и адекватно реагировать на обратную связь.
  • Склонность к самообучению. Это требование актуально для всех IT-профессий, поскольку цифровой мир быстро меняется. Сегодня тестировщику предстоит разобраться с новой программой, завтра – искать объяснение нестандартного поведения кода на StackOverflow, послезавтра – осваивать автотесты. Без стремления к самообучению в тестировании придется непросто.

Хард-скилы

Так называют профессиональные навыки, которые необходимы для выполнения рабочих обязанностей. В профессии тестировщика они сильно варьируются, но есть и те, которые встречаются почти в каждой вакансии.
  • Теория тестирования. Здесь речь идет о жизненном цикле разработки ПО, видах и методологиях тестирования, принципах тестирования. Отдельно можно выделить техники тест-дизайна – классы эквивалентности, граничные значения, попарное тестирование (его еще называют pairwise), таблица принятия решений и даже матрица трассабилити :)
  • Основы клиент-серверной архитектуры. По схеме «клиент — сервер» работает большая часть программного обеспечения. Если тестировщик знает, как она устроена, ему будет легче понимать специфику тестируемого сайта или приложения и определять источник багов.
  • Тестовая документация. В процессе работы тестировщик составляет чек-листы и тест-кейсы, заводит баг-репорты, пишет отчеты по тестированию. Иногда — еще и тестовые сценарии, тест-планы и стратегии, но это скорее обязанности тимлида. Для заведения баг-репортов используются баг-трекеры. И тестировщику нужно уверенно себя чувствовать в работе с ними. Самые популярные – Jira, Confluence, Yandex Tracker, ClickUp, Asana.
  • Инструменты для работы с фронтендом и бэкендом. Практически в любой компании придется работать либо с бэкендом через API, либо непосредственно с фронтендом. Для этого нужно освоить Postman/Swagger и DevTools – это база. А полный набор инструментов для тестирования будет зависеть от сферы компании и ее технологического стека. Например, если ты занимаешься тестированием мобильных приложений, то наверняка умеешь работать с Charles и знаешь, чем эмулятор отличается от симулятора.
Получается, что насколько успешной будет твоя карьера в тестировании, зависит от многих факторов. Нужно быстро осваивать новые инструменты, находить общий язык с людьми, быть внимательным, чтобы выявлять различные нестыковки и уязвимости.

Виды тестирования

Источник: QA_Bible
Тестирование можно разделить на виды. Сразу скажем, что это одна из самых спорных тем в теории QA. Новичкам в IT бывает сложно понять, в чем специфика каждого вида. Поэтому здесь расскажем только о нескольких из них, не углубляясь в детали.
Базово тестирование можно разделить по способу – на ручное и автоматизированное.
  • В первом случае тестировщик сам имитирует действия пользователей и проверяет программы вручную.
  • Во втором – специалист пишет программы для тестов. Для этого понадобится изучить основы одного из языков программирования.
По целям выделяют функциональное и нефункциональное тестирование.
  • В ходе функциональных тестов проверяют, насколько функции продукта соответствуют исходным требованиям и документации. Например, работает ли механизм покупки и оплаты на сайте интернет-магазина.
  • Нефункциональные тесты включает в себя многочисленные аспекты продукта, не связанные напрямую с его функциями: например, удобство использования, безопасность и устойчивость.
Внутри нефункционального тестирования стоит выделить отдельно нагрузочное, стресс-тестирование и пентест.
  • С помощью нагрузочного тестирования проверяют, какую нагрузку может выдержать система: справится ли с потоком пользователей или обилием заявок. Например, смотрят, будет ли корректно работать сайт магазина, если на него одновременно зайдут 10 000 человек.
  • Стресс-тестирование – это один из видов негативного тестирования (то есть такого тестирования, которое призвано систему “сломать”, оценить ее работу при непредвиденном поведении пользователя). В случае со стресс-тестированием код проверяется при нагрузках, которые выходят за допустимые пределы. Так тестировщики определяют поведение системы при стрессовых обстоятельствах, находят точку ее отказа и следят за ее поведением. Например, проверяют, чтобы при экстремальной нагрузке появились корректные сообщения об ошибках и не терялись данные.
  • Пентестом называется тестирование безопасности — во время него проверяют, насколько хорошо система защищена от атак злоумышленников. Пентестеры имитируют действия хакеров и смотрят, как продукт справляется с защитой. Это сложная профессия, в которую обычно переходят уже опытные тестировщики.
По уровням продукта существует модульное, интеграционное и сквозное тестирование.
  • Модульное тестирование – правильнее было бы назвать его компонентным – это изучение разных модулей или компонентов программы по отдельности. Например, тестировщики проверяют, как работает скрипт, который отправляет данные из формы на сервер.
  • С помощью интеграционного тестирования изучают взаимосвязь между частями одного продукта или между несколькими разными программами. Например, проверяют, как работает интеграция между бэкендом сайта и серверами Google, или исследуют, как взаимодействуют друг с другом микросервисы.
  • Cквозное тестирование (end-to-end) подразумевает пошаговое прохождение всего пути пользователя. Тестировщик проходит все шаги поэтапно и проверяет, насколько они корректно работают в связке друг с другом. Если где-то споткнулся, не понял, что делать, не смог перейти с одного этапа на другой — лучше заранее исправить неточность в продукте, чтобы пользователям не пришлось так же ломать голову.
Например, в мобильном приложении «Яндекс Такси» последовательность действий может быть такой:
  1. Открыть приложение
  2. Авторизоваться
  3. Привязать банковскую карту
  4. Совершить поездку в такси
  5. Оставить чаевые
  6. Оставить отзыв
  7. Проверить снятие оплаты с карты
Отдельно стоит выделить smoke-тестирование, регресс-тестирование и приемочное тестирование.
  • Smoke-тестами называют быстрые проверки, с помощью которых оценивают готовность основных функций приложения к работе. Smoke-тестирование позволяет определить, нет ли в системе грубых ошибок и готова ли она к более глубокому и детальному тестированию.
  • Регресс-тестирование – это вид тестирования, во время которого QA-инженеры ищут ошибки, вызванные изменениями в программе. Например, регресс может проводиться после того, как разработчики добавили новую функциональность – в данном случае проверяют, не вызвала ли она непредвиденные дефекты в исходном коде.
  • Приемочное тестирование позволяет определить, соответствует ли приложение требованиям и бизнес-процессам. После приемочного тестирования продукт принимают в качестве выполненной задачи или отправляют на доработку. В приемочном тестировании участвует не только QA-инженер, но и другие специалисты.
Этот список далеко не исчерпывающий – виды тестирования можно делить по доступу к коду, позитивности сценариев и иным многочисленным параметрам.

А что насчет востребованности и перспектив профессии?

Профессия растет вместе с рынком. Появляются новые сайты, все больше компаний создают свои мобильные приложения, да и сами технологии усложняются с каждым днем. Поэтому на рынке постоянно есть потребность в тестировщиках.
По состоянию на 1 марта 2024 года в QA-сфере открыто 3501 вакансии — это на 59,7% больше, чем год назад. На самом деле цифры даже выше: в эту статистику не попали зарубежные работодатели и те, кто ищет сотрудников через соцсети, собственные площадки или сарафанное радио.
За то, что искусственный интеллект заменит тестировщиков тоже можно не переживать, и вот почему:
  • Нейросети могут решать только узкие задачи (вроде проверки конкретных модулей), а для того, чтобы посмотреть на продукт глазами пользователя, нужен человек. Например, только человек может оценить, насколько понятен флоу покупки на сайте интернет-магазина, или удобен ли для чтения шрифт инструкций и подсказок.
  • Нейросети обучаются на основании данных, созданных людьми. Поэтому даже в их алгоритмы рано или поздно закрадываются ошибки, когда-то допущенные человеком – в итоге результат работы нейросетей бывает неточен и требует перепроверки и доработки. Получается, что даже роботами должны управлять люди: следить и оценивать результаты работы, а при необходимости вмешиваться в процесс.

Сколько получает тестировщик

QA Studio регулярно собирает статистику по вакансиям. Мы видим, что более половины работодателей обещают зарплату по результатам собеседования и не указывают точные цифры. Это привычная ситуация для IT-сферы. На основе данных Хабр Карьеры можно определить размер медианных зарплат:
  • 47 тысячи рублей в месяц в среднем получают новички в IT – стажеры, которые только-только пришли в профессию, но уже освоили ее азы.
  • 66 тысяч рублей в месяц получают специалисты уровня junior. Они недавно в профессии, но у них уже есть опыт работы в тестировании.
  • 137 тысяч рублей в месяц — зарплата QA-инженеров уровня middle. Это специалисты среднего уровня, обычно с опытом от двух-трех лет. Таких сотрудников работодатели ищут чаще всего.
  • 232 тысячи рублей в месяц — зарплата опытного специалиста уровня senior. Таких сотрудников ищут чуть реже, чем middle, но и на рынке их меньше, поэтому сеньоры всегда востребованы.
  • 265 тысяч рублей в месяц в среднем получают топовые специалисты уровня Lead и руководители QA-отделов.
Начинающий QA-специалист может претендовать на вакансию junior-тестировщика или стажера. На таких должностях зарплаты обычно составляют от 40 до 70 тысяч в месяц, и кажется, что для IT это немного. Но перспективы в тестировании очень хорошие — есть шанс за год-два увеличить свою зарплату до 100+ тысяч рублей в месяц. И это, как видно, не предел.

Плюсы и минусы профессии: чего больше?

Давайте подведем итоги. Почему стоит идти в QA?
  1. Работа интересная и креативная. В профессии тестировщика есть место и рутине, и творческим задачам — она хорошо подходит людям, которые умеют мыслить нестандартно и в тоже время по-доброму дотошны.
  2. Тестировщиком легко стать. Тестирование не требует долгих лет обучения и глубоких познаний, например в математике или иностранных языках.
  3. Много направлений для роста. Одни тестировщики развиваются в ручном QA, другие становятся автоматизаторами, третьи переходят на позицию проджект-менеджера или продакт-оунера и начинают управлять развитием продукта в целом. А кто-то и вовсе открывает свои стартапы или уходит в разработку.
  4. Можно работать удаленно. Мечта для многих людей: минус время на дорогу до офиса и обратно, плюс свобода перемещений и путешествий. Достаточно иметь выход в интернет — и можно работать из любой точки мира.
  5. Зарплата быстро растет. Уже через год-полтора можно получать больше 100 тысяч рублей в месяц, а топовые специалисты зарабатывают от 200 тысяч рублей.
  6. Время работы на ваше усмотрение. IT — гибкая сфера: эффективность в ней чаще всего измеряют результатами, а не количеством отработанных часов. Зачастую неважно, днем или ночью человек взялся за задачу: главное, чтобы она была выполнена.
Но есть и сложности. Во-первых, у тестировщика высокий уровень ответственности. Здесь не получится работать по принципу “сойдет и так”. Ведь тестировщики фактически отвечают за качество продукта.
Во-вторых, высокая конкуренция среди новичков – на одну вакансию без опыта приходится семь резюме тестировщиков-джунов. Сейчас знания теории недостаточно, чтобы выделиться на фоне других кандидатов. Поэтому в QA Studio обучение тестированию включает в себя не только теоретическую базу, но и практику на тренажерах, стажировки в Джунах, помощь с резюме и мок-собеседования с ментором. Благодаря этому легче конкурировать с другими в поиске работы и получить заветный оффер.

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

В тестировании главное — изучить базовые принципы и инструменты, а затем как можно скорее переходить к практике, будь то тренажеры или реальные проекты. Чуть позже можно углубленно знакомиться с конкретными инструментами, если есть желание или потребность. Поэтому программа обучения в QA Studio строится по такой схеме:
  1. Осваиваем основы — как устроена клиент-серверная архитектура и протокол HTTP. Разбираемся в тестировании веб-приложений, изучаем REST, JSON и Devtools. Осваиваем тестирование бэкенда — практикуемся с Postman и API, запускаем автотесты на JavaScript.
  2. Углубляемся в теорию — говорим о видах тестирования и техниках тест-дизайна, чтобы лучше понимать, как устроена работа в QA. Учимся работать с документацией — баг-репортами и тест-кейсами, создаем чек-листы в Miro. Практикуемся в программах для управления тестированием, например, в Qase.io и Yandex Tracker.
  3. Изучаем базы данных — реляционные, с которыми работают с помощью запросов на языке SQL, и NoSQL-базы. Погружаемся в веб-технологии — базово погружаемся в HTML, CSS и JavaScript, а еще учимся работать со снифферами – инструментами для анализа трафика.
  4. Продолжаем обучение по направлениям — на этом этапе уже можно стать ручным тестировщиком. Именно с девятой недели обучения нашим ребятам предоставляется возможность попасть на стажировку, чтобы получить первый реальный опыт в QA.
  5. Дальше предстоит разобраться в системе контроля версий Git, изучить жизненный цикл разработки и практику CI/CD, попробовать себя в мобильном тестировании. Отдельные блоки выделены под изучение автотестов на популярных инструментах – Selenium, Cypress, Pytest.
  6. Затем готовимся к выходу на рынок труда – разбираем бест-практики интервью и помогаем составить крутое резюме.
Обучение в QA Studio делится на спринты, совсем как в реальных компаниях с agile-моделью разработки — от 8 до 16 спринтов в зависимости от того, какой тариф выбрать. За несколько месяцев можно освоить профессию, поучаствовать в нескольких стажировках на реальных проектах и получить диплом о профессиональной переподготовке.
Хотите пообщаться и узнать больше о профессии? Напишите нам и мы ответим на все вопросы.