Виммельбух, 3, перетяжка
Виммельбух, 3, перетяжка
Виммельбух, 3, перетяжка

Как стать тестировщиком с нуля

Аватарка пользователя Марат Талипов
Отредактировано

Разбираемся в профессии тестировщика программного обеспечения: чем он занимается, сколько зарабатывает и сложно ли им стать.

8К открытий9К показов

В статье мы расскажем о профессии тестировщика программного обеспечения. Часто ее рассматривают как нетребовательную специальность, которая может служить «трамплином» в IT-индустрию. Вы узнаете, чем на самом деле занимается тестировщик ПО, какие инструменты использует, сколько зарабатывает и куда может расти.

Кто такой тестировщик и чем занимается

Тестировщик ПО — это специалист, который проверяет, правильно ли работает программа, нет ли в ней ошибок.

Тестировать можно интерфейс, бэкенд-сервис, приложение целиком или всю IT-систему. В статье мы будем говорить «программа» или «приложение», но нужно понимать, что в зависимости от сферы работы тестировщика это могут быть разные части инфраструктуры.

Тестировщик должен знать, как работает тестируемое приложение. Он должен понимать, что происходит после выполнения тех или иных действий: как должен выглядеть интерфейс, что программа должна делать и на что стоит обратить особое внимание. Например, тестировщик нажимает кнопку «Показать список контактов». И он должен знать, как выглядит список, должен ли он быть отсортирован по умолчанию и как должны отображаться фотографии контактов (в круглом или квадратном контуре).

Профессия тестировщика предполагает отчасти творческий подход. Часто самые очевидные ошибки уже предвидели разработчики, и тестировщику нужно находить нестандартные способы работы с программой. Он должен подумать: «А что здесь может сделать пользователь? Куда может нажать, что может ввести?». Например, что будет, если вместо email-адреса ввести номер телефона, или закрыть программу до того, как она закончит выполнять предыдущее действие?

Тестировщикам часто нужно ставить себя на место пользователей и пытаться думать как они. Но чем лучше человек знает программу, тем сложнее это сделать. Потому что если долго работать с приложением, многое кажется очевидным. Тестировщику может казаться: «Как можно ввести в поле email-адреса номер телефона? В программе же явно указаны названия полей и есть иконки. Как их можно перепутать?». Но в реальности пользователь отвлекся, запутался или поторопился, и теперь он не может подтвердить регистрацию, потому что вместо почты указал телефон.

Для этого состояния даже есть термин — «Проклятие знания». Это когда более информированные люди не понимают, как рассматривать проблему с точки зрения менее информированных.

Другой важный навык — умение правильно создать баг-репорт, то есть описать ошибку. Правильно — значит так, чтобы любой разработчик мог воспроизвести ошибку по этому описанию, не тратя время на дополнительные уточнения.

Вот пример хорошего баг-репорта, который легко воспроизвести:

Тестировщик указал версию приложения, шаги для воспроизведения, ожидаемый результат и прикрепил скриншот.

А вот пример пример плохого баг-репорта:

Чтобы написать правильный баг-репорт, тестировщик должен понимать, какие именно действия приводят к ошибкам. А это не всегда очевидно.

Допустим, тестировщик проверяет мессенджер. Он тестирует разные функции, все работает правильно. Но затем он пробует сменить аватар и появляется ошибка. И вот тут тестировщику нужно понять, какие именно действия привели к ней. Причем действия вообще могут быть логически не связаны со сменой аватара. Ошибка может появиться после отправки сообщения со смайликом. Казалось бы, какая тут связь? Но в коде могут быть разные зависимости, и смайлики могут повлиять на аватар. Чтобы зафиксировать ошибку, тестировщику нужно вспомнить все, что он делал до ее появления, и попробовать воспроизвести сценарий, что порой бывает непросто.

Какими инструментами пользуется тестировщик

Может показаться, что тестировщики проверяют все вручную: нажимают на все кнопки и вводят значения во все поля ввода. Но чаще всего они пользуются специальными приложениями для автоматизации тестирования.

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

Инструменты для автотестирования. Они позволяют описать последовательность действий и ожидаемый результат, а затем запускать тесты и тестировать приложение автоматически. Для этого тестировщик пишет скрипт, который говорит системе автотестирования, что нужно сделать: нажать на кнопку, ввести в поле значение, и в итоге должен получиться вот такой результат. Если результат не совпадает — оповестить тестировщика, что тест провален. Примеры таких инструментов: Selenium WebDriver, Espresso.

  • Автотесты нужно периодически изменять или полностью переписывать. Очередное обновление приложения может сломать их. Например, если чек-бокс в окне настроек переместится на другую вкладку.
  • Автотесты не могут протестировать всё. Автотесты не смогут увидеть проблемы верстки сайта, когда элементы на экране «поедут» или перекроют друг друга.
  • Некоторые задачи придется тестировать руками. Второстепенной функциональности часто уделяется мало внимания. В этом случае может быть проще тратить 5 минут в месяц на проверку, чем один раз писать автотест 3 часа.

Генераторы данных. Эти инструменты помогают генерировать данные для тестов. Например, чтобы каждый раз не придумывать логин, номер телефона и email-адрес. Также генераторы могут создать нестандартные данные, которые помогут обнаружить ошибки: двойная фамилия или иностранный номер телефона. Примеры таких инструментов: Databene Benerator, DTM Data Generator.

Системы управления проектами. Помогают управлять жизненным циклом проекта: от появления задачи до выкатки обновления. Они позволяют отслеживать сроки, ответственных, статусы и так далее. Инструменты для создания и отслеживания баг-репортов могут быть встроены в общую систему управления проектами, а могут быть отдельным инструментом. В любом случае нужно уметь ими пользоваться. Примеры таких инструментов: Jira, TestRail, Test It.

Где работает и сколько зарабатывает тестировщик

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

Тестировщик может устроиться в компанию, которая разрабатывает продукт. Или может работать в компании, которая занимается аутсорс-разработкой и тестированием продуктов для других компаний. А может быть фрилансером, который сам ищет себе заказчиков. Каждый решает сам для себя, где ему будет лучше.

Теперь поговорим о заработке тестировщиков. Сразу оговоримся, что это примерные значения: все зависит от вашего опыта и навыков, размера компании и региона работы, вашего умения вести переговоры и показать свою пользу. Вот примерные зарплаты по данным Хабр.Карьеры.

Если тестировать только вручную — можно получать 56 тысяч рублей:

Как стать тестировщиком с нуля 1

Если уметь писать автотесты — в два раза больше, 113 тысяч рублей:

Как стать тестировщиком с нуля 2

Карьерное развитие тестировщиков возможно в нескольких направления. Во-первых, можно расти в направлении тестирования:

  • Начальная стадия — тестировщик. Это конечный исполнитель, обычно он работает по заданию. Ему говорят какой функционал нужно протестировать; что нужно автоматизировать, а что тестировать руками.
  • Следующий уровень — quality control (QC). Это человек, который решает, что именно нужно тестировать; что из этого лучше делать руками, а для чего писать автотесты. Также он распределяет задачи между тестировщиками.
  • Quality assurance (QA). Думает в целом о качестве продукта: оценивает приоритет исправления ошибок, изучает и внедряют новые практики тестирования, стремится усовершенствовать весь процесс тестирования.

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

Где обучают профессии тестировщика ПО

Порог входа в профессию довольно низкий. В тестировщики приходят люди из разных сфер: лингвисты, экономисты, менеджеры и IT-специалисты других направлений. Можно не знать основ IT, но нужно быть как минимум уровня «уверенный пользователь ПК».

Начать работать инженером-тестировщиком по ручному тестированию можно без опыта. Но нужно понимать, что тогда у вас будет меньше шансов устроиться в крупную компанию или получать высокую зарплату. Скорее всего, вам придется выбирать между несколькими не особо выгодными предложениями.

Обучиться основам тестирования можно самостоятельно: по статьям, видеороликам и бесплатным курсам тестировщиков программного обеспечения. Но чтобы получить реальное представление о специальности, нужно обучаться на реальных программах и ошибках.

Если вы хотите стать востребованным специалистом, то освоению профессии тестировщика нужно подойти организованно и настроиться на серьезное обучение. Например на платформе GeekBrains есть факультет тестирования. Это курсы для тестировщиков с нуля, где за 12 месяцев вы освоите основы, научитесь находить ошибки в реальных программах, писать автотесты, оформлять баг-репорты, а также подготовитесь к собеседованию и поиску первой работы.

Подведем итоги

  • Тестировщик — человек, который тестирует программы, сервисы или целые системы. Он находит ошибки и сообщает о них разработчикам.
  • Тестировщик должен понимать, как работает тестируемая программа, какие ошибки может допустить пользователь и продумывать все заранее.
  • Тестировщик может расти в своем направлении и стать QC, а затем QA. Или он может уйти в разработчики, если знает основы программирования.
  • Стать тестировщиком можно и без специального образования, но тогда не стоит рассчитывать на высокую должность и хорошую зарплату.
  • Чтобы уже на старте иметь преимущества перед другими кандидатами, стоит обучиться на курсах и познакомиться с тестированием на примере реальных кейсов.
Следите за новыми постами
Следите за новыми постами по любимым темам
8К открытий9К показов