Карьера в тестировании. С чего начать?

  • 3 марта 2021, 10:22
  • 1 393
  • 2

С ростом популярности IT-направления (количества вакансий, обучающих курсов, интервью и прочего), у многих людей закрепилось мнение, что тестирование – это отличный старт карьеры в IT. Так ли это на самом деле, и как можно начать свой путь в тестировании.

Что такое тестирование

Тестирование – это процесс проверки соответствия тестируемого объекта заявленным требованиям\спецификациям с целью выявления дефектов и получения информации о текущем состоянии тестируемого объекта. Иными словами, в ходе этого процесса мы проверяем, соответствует ли реальное поведение тестируемого объекта его ожидаемому поведению.

Соответственно, тестировщик – это человек, который осуществляет процесс тестирования.

На самом деле, трактовать термин тестирования ПО можно по-разному, но суть остается одной и той же. Однако же, авторитетными источниками теории тестирования в мировом масштабе являются ISO-стандарты и, конечно же, ассоциация ISTQB. А всё это означает, что существуют различные онлайн-школы, курсы и менторы, которые подают материал исходя из собственного опыта и размышлений. Для того, чтобы понять, хорошо это или плохо, и кому такой подход подойдёт – необходимо представить картину идеального кандидата в тестировщики и дать оценку – какими ресурсами такого уровня можно достичь.

Какие бывают тестировщики

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

  • веб-приложения (сайты, по типу того, на котором вы читаете сейчас статью);
  • мобильные приложения (WhatsApp, Telegram и прочие-прочие, так как смартфоны есть у многих – примеры излишни);
  • настольные приложения (desktop – настольные версии Microsoft Word и т.п.);
  • API (серверная часть, к которой обращаются веб, мобильные и настольные приложения);
  • базы данных (да, есть даже тестировщики, которые тестируют БД, но это экзотика);
  • безопасность.

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

  1. Веб-приложения (+ API в совокупности).
  2. Мобильные приложения (+ API в совокупности).
  3. Веб + мобильные приложения + API.

Идеальный кандидат и важные навыки

Исходя из трендов текущих направлений, идеальный кандидат должен обладать как минимум умением тестировать веб- или мобильные приложения, чтобы устроиться на работу (ну и плюс API, если хочется кратно увеличить свои шансы).

Однако на собеседованиях с тестировщиками интервьюеры любят спрашивать об опыте работы с SQL-базами данных и по синтаксису составления запросов (в том числе замудренных вариантов с LEFT/RIGHT/INNER JOIN-ами и пр.), в то время как на проекте вообще не предполагается работы с БД для тестировщиков. Но так или иначе – это частая практика, что кандидатов спрашивают по этой теме, поэтому подготовиться по ней тоже необходимо.

Ещё один важный критерий – на многих проектах от тестировщиков потребуется смотреть логи различных сервисов\скриптов на удалённом сервере. Для того, чтобы уметь подключиться к такому серверу и понимать как работать с CLI, необходимо также изучить базовые команды Linux CLI, а в частности – подключение к серверу по SSH, переход по директориям, взаимодействие с файлами и папками (создание, копирование, изменение, удаление) и умение из огромного массива информации выделить важную часть (при помощи grep). Интервью по этой части производится редко, но в работе эти навыки применяются часто.

Так, мы видим, что кандидат должен уметь:

  1. Знать и применять теорию тестирования.
  2. Тестировать приложение на конкретной платформе (веб\мобильное). В вебе необходимо обязательно научиться пользоваться Chrome DevTools, в мобильных приложениях – уметь развернуть мобильное устройство в эмуляторе (например, Android Virtual Device) и подключить устройство (реальное\виртуальное) к трафик-снифферу (Fiddler или Charles Proxy).
  3. Тестировать API (инструменты – Postman, SOAP UI).
  4. Составлять простые SQL запросы (включая простые JOIN-ы).
  5. Работать с Linux CLI (переход по директориям, взаимодействия с файлами\директориями, grep).

Онлайн-курсы

Основу, а именно – теорию тестирования, практику тестирования веб или мобильных приложений и API, как правило, можно получить во многих онлайн-курсах, чего в принципе достаточно для трудоустройства. SQL и Linux CLI тоже местами мелькают, но присутствуют далеко не в каждом курсе. Поэтому рекомендую обращать внимание на состав учебной программы.

Так или иначе, по окончании онлайн-курсов, многие студенты сталкиваются с проблемой – их не хотят брать на работу ввиду извечной проблемы – нужны люди с опытом работы (даже на не сильно требовательные вакансии). Тут на помощь приходят стажировки – возможность поучиться на реальном проекте, а также быть трудоустроенным в случае, если по окончании стажировки будет свободная позиция и вы устроите работодателя.

Иные способы научиться тестировать

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

Для того, чтобы стать тестировщиком, не обязательно проходить онлайн-курсы. Исходя из того, в какое направление вы хотите пойти (веб или мобильное тестирование и пр.) – возможно найти обучающие материалы самостоятельно. Однако большая проблема заключается в том, что далеко не все люди умеют находить ту информацию, которая им нужна (то есть правильно задавать вопросы). Интернет полон бесплатных источников по теории тестирования и статьям\видеороликам по тренингу практических навыков, но нужно уметь эти материалы находить и черпать из них важное. На курсах не всегда преподносят информацию, которая является фокусом на то, чем предстоит заниматься на работе, в связи с чем некоторый материал является лишним. Либо же происходит так, что на курсе долго идет рассмотрение того, что не требует столь пристального внимания, в связи с чем тратится время, которое могло быть использовано на рассмотрение и других полезных вещей.

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

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

Исходя из того, что мы видим, – навязывается также вывод о том, что в тестирование попасть не так-то просто – нужно много всего знать и уметь делать. По личному опыту могу сказать, что войти в IT легче как специалисту технической поддержки – в этом направлении гораздо менее строгие требования к кандидатам, а также есть возможность «повариться» в IT-кухне и выбрать интересное для себя направление впоследствии, общаясь с коллегами.

Если вы, ознакомившись с материалом выше, всё-таки решились начать карьеру в IT именно с направления тестирования, то вам понадобится следующее:

  1. Базовые представления о том, как работает компьютер – что такое операционная система (семейства ОС – Windows, Linux, MacOS, в т.ч. мобильные Android, iOS) и зачем они нужны.
  2. Базовые представления о работе телекоммуникационных сетей (интернет\локальные сети).
  3. Простейшие операции в командной строке (Linux CLI).
  4. Базовые знания SQL, включая простые JOIN-ы.
  5. В зависимости от направления – уметь работать с Chrome DevTools (если это веб-приложения), либо же с трафик-снифферами типа Charles Proxy или Fiddler и эмуляторами мобильных устройств (если это мобильные приложения).
  6. Знать, что такое CRUD, уметь отправлять запросы при помощи Postman или подобных приложений.
  7. Теория тестирования: что такое тестирование, цели и задачи тестирования, виды тестирования, методологии тестирования, техники тест-дизайна, документация по тестированию (тест-планы, тест-кейсы, чек-листы, баг репорты).