Рассказываем, кто такой тестировщик и чем он занимается, сколько зарабатывает такой специалист, а также какие нужны знания и компетенции, чтобы им стать.
В написании статьи принял участие Ирек Насибуллин, Ростелеком ИТ Automation QA
Тестировщик — это специалист, который тестирует приложения, отлаживает код и помогает улучшать юзабилити программ. Иначе тестировщиков называют QA-инженерами. Аббревиатура произошла от английского quality assurance — обеспечение качества. Это часть разработки, которая управляет качеством продукта.
В понятие QA входит еще одно направление деятельности: QC, quality control или контроль качества. Инженеры QC контролируют продукт на этапе разработки и поддержки.
Тестирование программного обеспечения — один из инструментов контроля качества. То есть тестировщик проверяет приложение в рамках мероприятий по контролю качества (QC), которые входят в комплекс работ по обеспечению качества (QA).
В широком смысле тестировщики участвуют в создании полезного для пользователей программного обеспечения. Если конкретизировать, тестировщики контролируют качество приложений, над которыми работает организация.
Тестирование ПО делят на два основных направления: ручное и автоматизированное. Специалисты по ручному тестированию проверяют приложения вручную. Например, если нужно протестировать интернет-магазин, регистрируются на сайте, наполняют корзину товарами, делают заказ и оценивают, правильно ли сайт реагирует на их действия.
А специалисты по автоматизированному тестированию пишут программы-скрипты, имитирующие действия пользователей. Такое ПО называют автотестами. Скрипты могут проверить, как поведет себя сайт, если, например, 1000 человек одновременно добавят в корзину по 1000 товаров.
Ручное тестирование — самый простой способ оценки качества приложения. Однако тестировать приложение вручную — «дорогая» операция, так как скорость и точность проверок ограничена возможностями тестировщиков.
Автоматизированное тестирование подразумевает проверку приложений с помощью программного обеспечения. Это не значит, что для автоматических проверок не нужны тестировщики, ведь кто-то должен писать код самих автотестов. Но так как писать код долго и дорого, зачастую ими покрывают основную функциональность сайта, а новые фичи проверяют вручную.
Кроме автоматического и ручного тестирования можно выделить и много других видов.
Вот примерное описание работы QA-инженера на проекте.
Тестировщика подключают к работе еще на стадии планирования приложения. Он анализирует требования и следит за тем, чтобы документация была непротиворечивой, а пожелания заказчика корректно описаны.
QA-инженер выбирает подходящие методы: обычно часть функционала проверяют автотестами, а часть — в ручном режиме. На небольших проектах можно обойтись только мануальным тестированием. На крупных почти всегда используют оба эти направления. Также тестировщик должен оценить риски, предусмотреть все этапы сдачи работы и выделить на них ресурсы.
Специалист пишет автотесты или создает чек-листы и планы проверки. То есть описывает пошагово, что и как будет проверять. У документации есть стандартный вид и ее всегда сохраняют даже после сдачи проекта.
На основе документации QA-инженер проверяет приложение по шагам и создает отчеты о найденных ошибках. Их называют баг-репортами. Найденные дефекты передают разработчикам для исправления.
Найти все ошибки в ПО невозможно. Часть из них все равно доживет до стадии запуска продукта. А сообщать о дефектах будут уже пользователи. На стадии поддержки тестировщик должен своевременно реагировать на присланные ими баги: воспроизводить эти ошибки и передавать их на исправление коллегам.
Тестировщики трудятся в командах, которые занимаются разработкой программного обеспечения. Это скорее средние и крупные компании, которые делают собственный продукт или работают по модели аутсорсинга.
Тестирование — обязательный этап выхода на рынок любого ПО. Без проверки качества невозможно выпустить конкурентоспособный продукт. Сфера IT вряд ли сможет отказаться от тестировщиков в ближайшей перспективе, причем это касается и специалистов по ручному тестированию, так как некоторые ошибки можно найти только вручную.
У тестировщиков как профессионалов есть возможность развиваться вертикально и горизонтально. Горизонтальный рост подразумевает наращивание компетенций. Например, QA-инженер из мануальщика может вырасти в автоматизатора, а из джуна — в сеньора. Вертикальный рост приведет тестировщика к должности тимлида — руководителя команды по тестированию.
В декабре 2023 года на hh.ru опубликовано 4542 вакансии тестировщика и 3613 вакансии QA-инженера.
По данным «Хабр.Карьеры», в первом полугодии 2023 года медианная зарплата тестировщика в России — 125 000 рублей. За год она выросла на 17%.
По регионам:
А на этом графике зарплаты тестировщиков по специальностям: максимальные, минимальные и средние.
Исследование SENSE Group приводит такие данные по заплате тестировщиков в зависимости от их квалификации.
В этом разделе поговорим о необходимых знаниях по теории и практике тестирования. Можно воспринимать это как набросок программы обучения или минимум, необходимый для трудоустройства.
Основной результат работы QA-инженера — написание тестов. Первое, что должен узнать профессионал, — это правила, по которым нужно искать и анализировать требования к приложениям, а также ставить цели проверки. За это отвечает тест-анализ.
А тест-дизайн — конкретные методики, по которым пишут тесты. QA-инженер должен понимать, что такое классы эквивалентности, граничные значения и попарное тестирование.
Это теория, на основе которой профессионал выстраивает практику — продумывает стратегию проверки приложения. Как мы уже говорили выше, есть много видов тестирования.
QA-инженер должен знать обо всех существующих методах, уметь их применять и выбирать для решения конкретных задач на проекте.
В браузерах есть инструменты разработчика или DevTools. В Chrome их можно вызвать горячими клавишами — Ctrl+Shift+I или клавишей F12 в любом браузере. Их используют для отладки кода в режиме реального времени.
DevTools — незаменимые помощники тестировщика. С их помощью можно проверить корректную загрузку отдельных частей страницы, правильность написания пути до элементов в JavaScript и протестировать код в браузере.
QA-инженер должен уметь пользоваться DevTools и хорошо ориентироваться в панели.
Фронтенд — интерфейс приложения — можно проверить пошагово, имитируя действия обычных пользователей. Но с бэкендом — внутренней логикой сайта — дела обстоят сложнее.
Зачастую бэкенд не привязывают сразу к фронтенду, а своего графического интерфейса у него нет. Зато есть API — набор правил, по которым программы взаимодействуют друг с другом напрямую.
Тестировщики проверяют его работу используя специальный инструмент — Postman. Он позволяет писать запросы к бэкенду напрямую через браузер. QA-инженер должен научиться им пользоваться.
Сайты хранят информацию в базах данных. Они бывают реляционными и нереляционными. Первые — наиболее распространены. К ним относят, например, MySQL и PostgreSQL.
При разработке приложения тестировщики должны проверить, насколько корректно бэкенд сайта получает и отдает информацию из базы данных. Для этого используют специальный язык запросов — SQL.
QA-инженеру нужно выучить его основы, чтобы уметь проверять работу баз данных.
Тестировщик пишет сценарии проверки ПО — тесты и чек-листы. Их нужно оформлять по правилам, чтобы другие специалисты могли в любой момент обратиться к этим документам.
В конце работы QA-инженер создает баг-репорты — отчеты о найденных ошибках. Их хранят в специальном трекере, чтобы они были доступны для разработчиков.
В проверке такого ПО есть своя специфика, связанная с более жесткими требованиями к интерфейсу. Мобильное приложение должно одинаково выглядеть на разных устройствах.
Также есть специфика, связанная с платформами. Например, необходимо проверять, как приложение поведет себя, если смартфон теряет сеть или если пользователь примет входящий звонок во время активной работы.
QA-инженер должен уметь тестировать мобильные приложения на симуляторах, эмуляторах и с использованием реальных устройств.
Есть вакансии исключительно мануальных тестировщиков, которые не пишут автотесты. Но даже таким специалистам нужно понимать, по каким принципам создают автотесты и как их правильно запускать.
А автоматизаторам нужно научиться писать скрипты — специальные программы, имитирующие действия пользователей.
Тестирование считают одной из лучших точек входа в IT. Основные плюсы этой профессии:
Недостатки в работе QA-инженеров тоже есть. Низкий порог входа влияет как на конкуренцию при трудоустройстве, так и на уровень заработка. Джуну в тестировании сложнее найти первую работу, чем в программировании. А платят им в среднем меньше, чем разработчикам.
Объем навыков, необходимых современному претенденту на должность QA-инженера, серьезно вырос. Сейчас на первый план выходят практические знания.
Речь идет, прежде всего, об умении пользоваться инструментами для тестирования. А автоматизаторам необходимо научиться писать тесты.
Профильного высшего образования для тестировщиков пока нет. Желающие работать в этой профессии могут самостоятельно освоить навыки или пройти курсы.
Первый вариант подойдет тем, кто обладает высоким уровнем дисциплины. Но им желательно найти ментора, который будет направлять, проверять работы и указывать на ошибки.
В Хекслете есть профессия «Инженер по тестированию». Вы можете за четыре месяца с нуля освоить необходимые навыки. Студентам профессии «Инженер по тестированию» будет доступен Rарьерный трек — это наш сервис для тех, кто ищет первую работу в IT. Мы расскажем, как правильно составлять резюме и писать сопроводительные письма. А еще подберем вакансии и стажировки в партнерских компаниях и подготовим к собеседованиям.
Кроме учебных проектов, студенты профессии «Инженер по тестированию» смогут участвовать в opensource-проектах Хекслета. Это позволит не только закрепить на практике знания, полученные во время учебы, но и положить к себе в портфолио опыт реального тестирования и работы в настоящем продукте.