С ростом популярности IT-направления (количества вакансий, обучающих курсов, интервью и прочего), у многих людей закрепилось мнение, что тестирование – это отличный старт карьеры в IT. Так ли это на самом деле, и как можно начать свой путь в тестировании.
Что такое тестирование
Тестирование – это процесс проверки соответствия тестируемого объекта заявленным требованиям\спецификациям с целью выявления дефектов и получения информации о текущем состоянии тестируемого объекта. Иными словами, в ходе этого процесса мы проверяем, соответствует ли реальное поведение тестируемого объекта его ожидаемому поведению.
Соответственно, тестировщик – это человек, который осуществляет процесс тестирования.
На самом деле, трактовать термин тестирования ПО можно по-разному, но суть остается одной и той же. Однако же, авторитетными источниками теории тестирования в мировом масштабе являются ISO-стандарты и, конечно же, ассоциация ISTQB. А всё это означает, что существуют различные онлайн-школы, курсы и менторы, которые подают материал исходя из собственного опыта и размышлений. Для того, чтобы понять, хорошо это или плохо, и кому такой подход подойдёт – необходимо представить картину идеального кандидата в тестировщики и дать оценку – какими ресурсами такого уровня можно достичь.
Какие бывают тестировщики
Дело в том, что тестировщики делятся на разные специализации. Не говоря даже про такие направления как автоматизация тестирования и нагрузочное тестирование, такое направление как ручное тестирование делится на:
- веб-приложения (сайты, по типу того, на котором вы читаете сейчас статью);
- мобильные приложения (WhatsApp, Telegram и прочие-прочие, так как смартфоны есть у многих – примеры излишни);
- настольные приложения (desktop – настольные версии Microsoft Word и т.п.);
- API (серверная часть, к которой обращаются веб, мобильные и настольные приложения);
- базы данных (да, есть даже тестировщики, которые тестируют БД, но это экзотика);
- безопасность.
Если говорить о популярности направлений, то судя по рынку труда можно ранжировать топ следующим образом:
- Веб-приложения (+ API в совокупности).
- Мобильные приложения (+ API в совокупности).
- Веб + мобильные приложения + API.
Идеальный кандидат и важные навыки
Исходя из трендов текущих направлений, идеальный кандидат должен обладать как минимум умением тестировать веб- или мобильные приложения, чтобы устроиться на работу (ну и плюс API, если хочется кратно увеличить свои шансы).
Однако на собеседованиях с тестировщиками интервьюеры любят спрашивать об опыте работы с SQL-базами данных и по синтаксису составления запросов (в том числе замудренных вариантов с LEFT/RIGHT/INNER JOIN-ами и пр.), в то время как на проекте вообще не предполагается работы с БД для тестировщиков. Но так или иначе – это частая практика, что кандидатов спрашивают по этой теме, поэтому подготовиться по ней тоже необходимо.
Ещё один важный критерий – на многих проектах от тестировщиков потребуется смотреть логи различных сервисов\скриптов на удалённом сервере. Для того, чтобы уметь подключиться к такому серверу и понимать как работать с CLI, необходимо также изучить базовые команды Linux CLI, а в частности – подключение к серверу по SSH, переход по директориям, взаимодействие с файлами и папками (создание, копирование, изменение, удаление) и умение из огромного массива информации выделить важную часть (при помощи grep). Интервью по этой части производится редко, но в работе эти навыки применяются часто.
Так, мы видим, что кандидат должен уметь:
- Знать и применять теорию тестирования.
- Тестировать приложение на конкретной платформе (веб\мобильное). В вебе необходимо обязательно научиться пользоваться Chrome DevTools, в мобильных приложениях – уметь развернуть мобильное устройство в эмуляторе (например, Android Virtual Device) и подключить устройство (реальное\виртуальное) к трафик-снифферу (Fiddler или Charles Proxy).
- Тестировать API (инструменты – Postman, SOAP UI).
- Составлять простые SQL запросы (включая простые JOIN-ы).
- Работать с Linux CLI (переход по директориям, взаимодействия с файлами\директориями, grep).
Онлайн-курсы
Основу, а именно – теорию тестирования, практику тестирования веб или мобильных приложений и API, как правило, можно получить во многих онлайн-курсах, чего в принципе достаточно для трудоустройства. SQL и Linux CLI тоже местами мелькают, но присутствуют далеко не в каждом курсе. Поэтому рекомендую обращать внимание на состав учебной программы.
Так или иначе, по окончании онлайн-курсов, многие студенты сталкиваются с проблемой – их не хотят брать на работу ввиду извечной проблемы – нужны люди с опытом работы (даже на не сильно требовательные вакансии). Тут на помощь приходят стажировки – возможность поучиться на реальном проекте, а также быть трудоустроенным в случае, если по окончании стажировки будет свободная позиция и вы устроите работодателя.
Иные способы научиться тестировать
Прежде чем начинать вникать в дебри разработки программного обеспечения, я настоятельно рекомендую изучить матчасть по тому, как работает компьютер, операционные системы и сети. Дело в том, что процесс разработки опирается на эти фундаментальные знания, и курсы по тестирования зачастую подаются исходя из того, что ученики уже знают эти основы.
Для того, чтобы стать тестировщиком, не обязательно проходить онлайн-курсы. Исходя из того, в какое направление вы хотите пойти (веб или мобильное тестирование и пр.) – возможно найти обучающие материалы самостоятельно. Однако большая проблема заключается в том, что далеко не все люди умеют находить ту информацию, которая им нужна (то есть правильно задавать вопросы). Интернет полон бесплатных источников по теории тестирования и статьям\видеороликам по тренингу практических навыков, но нужно уметь эти материалы находить и черпать из них важное. На курсах не всегда преподносят информацию, которая является фокусом на то, чем предстоит заниматься на работе, в связи с чем некоторый материал является лишним. Либо же происходит так, что на курсе долго идет рассмотрение того, что не требует столь пристального внимания, в связи с чем тратится время, которое могло быть использовано на рассмотрение и других полезных вещей.
Так, мы можем сделать вывод, что курсы – это хорошее решение для людей, которые испытывают проблемы с самостоятельным поиском информации, а также они помогут тем, кто уже самостоятельно накопал некую информацию и хотел бы систематизировать свои знания. Но в случае выбора курсов обязательно стоит обращать внимание на учебную программу – убедиться в том, что она затрагивает именно то направление, в которое вы хотели бы пойти, а также прокачивает важные навыки, о которых я написал выше.
И да, несомненно, очень важный момент – постарайтесь записывать или запоминать то, что вас спрашивают на собеседованиях, и по окончании оных, поработать над улучшением тех частей (теории, практических навыков или же софт-скиллов – умении говорить), где, на ваш взгляд, есть проблемы.
Исходя из того, что мы видим, – навязывается также вывод о том, что в тестирование попасть не так-то просто – нужно много всего знать и уметь делать. По личному опыту могу сказать, что войти в IT легче как специалисту технической поддержки – в этом направлении гораздо менее строгие требования к кандидатам, а также есть возможность «повариться» в IT-кухне и выбрать интересное для себя направление впоследствии, общаясь с коллегами.
Если вы, ознакомившись с материалом выше, всё-таки решились начать карьеру в IT именно с направления тестирования, то вам понадобится следующее:
- Базовые представления о том, как работает компьютер – что такое операционная система (семейства ОС – Windows, Linux, MacOS, в т.ч. мобильные – Android, iOS) и зачем они нужны.
- Базовые представления о работе телекоммуникационных сетей (интернет\локальные сети).
- Простейшие операции в командной строке (Linux CLI).
- Базовые знания SQL, включая простые JOIN-ы.
- В зависимости от направления – уметь работать с Chrome DevTools (если это веб-приложения), либо же с трафик-снифферами типа Charles Proxy или Fiddler и эмуляторами мобильных устройств (если это мобильные приложения).
- Знать, что такое CRUD, уметь отправлять запросы при помощи Postman или подобных приложений.
- Теория тестирования: что такое тестирование, цели и задачи тестирования, виды тестирования, методологии тестирования, техники тест-дизайна, документация по тестированию (тест-планы, тест-кейсы, чек-листы, баг репорты).
С ростом популярности IT-направления (количества вакансий, обучающих курсов, интервью и прочего), у многих людей закрепилось мнение, что тестирование – это отличный старт карьеры в IT. Так ли это на самом деле, и как можно начать свой путь в тестировании.
Что такое тестирование
Тестирование – это процесс проверки соответствия тестируемого объекта заявленным требованиям\спецификациям с целью выявления дефектов и получения информации о текущем состоянии тестируемого объекта. Иными словами, в ходе этого процесса мы проверяем, соответствует ли реальное поведение тестируемого объекта его ожидаемому поведению.
На самом деле, трактовать термин тестирования ПО можно по-разному, но суть остается одной и той же. Однако же, авторитетными источниками теории тестирования в мировом масштабе являются ISO-стандарты и, конечно же, ассоциация ISTQB. А всё это означает, что существуют различные онлайн-школы, курсы и менторы, которые подают материал исходя из собственного опыта и размышлений. Для того, чтобы понять, хорошо это или плохо, и кому такой подход подойдёт – необходимо представить картину идеального кандидата в тестировщики и дать оценку – какими ресурсами такого уровня можно достичь.
Какие бывают тестировщики
Дело в том, что тестировщики делятся на разные специализации. Не говоря даже про такие направления как автоматизация тестирования и нагрузочное тестирование, такое направление как ручное тестирование делится на:
Если говорить о популярности направлений, то судя по рынку труда можно ранжировать топ следующим образом:
Идеальный кандидат и важные навыки
Исходя из трендов текущих направлений, идеальный кандидат должен обладать как минимум умением тестировать веб- или мобильные приложения, чтобы устроиться на работу (ну и плюс API, если хочется кратно увеличить свои шансы).
Однако на собеседованиях с тестировщиками интервьюеры любят спрашивать об опыте работы с SQL-базами данных и по синтаксису составления запросов (в том числе замудренных вариантов с LEFT/RIGHT/INNER JOIN-ами и пр.), в то время как на проекте вообще не предполагается работы с БД для тестировщиков. Но так или иначе – это частая практика, что кандидатов спрашивают по этой теме, поэтому подготовиться по ней тоже необходимо.
Ещё один важный критерий – на многих проектах от тестировщиков потребуется смотреть логи различных сервисов\скриптов на удалённом сервере. Для того, чтобы уметь подключиться к такому серверу и понимать как работать с CLI, необходимо также изучить базовые команды Linux CLI, а в частности – подключение к серверу по SSH, переход по директориям, взаимодействие с файлами и папками (создание, копирование, изменение, удаление) и умение из огромного массива информации выделить важную часть (при помощи grep). Интервью по этой части производится редко, но в работе эти навыки применяются часто.
Так, мы видим, что кандидат должен уметь:
Онлайн-курсы
Основу, а именно – теорию тестирования, практику тестирования веб или мобильных приложений и API, как правило, можно получить во многих онлайн-курсах, чего в принципе достаточно для трудоустройства. SQL и Linux CLI тоже местами мелькают, но присутствуют далеко не в каждом курсе. Поэтому рекомендую обращать внимание на состав учебной программы.
Так или иначе, по окончании онлайн-курсов, многие студенты сталкиваются с проблемой – их не хотят брать на работу ввиду извечной проблемы – нужны люди с опытом работы (даже на не сильно требовательные вакансии). Тут на помощь приходят стажировки – возможность поучиться на реальном проекте, а также быть трудоустроенным в случае, если по окончании стажировки будет свободная позиция и вы устроите работодателя.
Иные способы научиться тестировать
Прежде чем начинать вникать в дебри разработки программного обеспечения, я настоятельно рекомендую изучить матчасть по тому, как работает компьютер, операционные системы и сети. Дело в том, что процесс разработки опирается на эти фундаментальные знания, и курсы по тестирования зачастую подаются исходя из того, что ученики уже знают эти основы.
Для того, чтобы стать тестировщиком, не обязательно проходить онлайн-курсы. Исходя из того, в какое направление вы хотите пойти (веб или мобильное тестирование и пр.) – возможно найти обучающие материалы самостоятельно. Однако большая проблема заключается в том, что далеко не все люди умеют находить ту информацию, которая им нужна (то есть правильно задавать вопросы). Интернет полон бесплатных источников по теории тестирования и статьям\видеороликам по тренингу практических навыков, но нужно уметь эти материалы находить и черпать из них важное. На курсах не всегда преподносят информацию, которая является фокусом на то, чем предстоит заниматься на работе, в связи с чем некоторый материал является лишним. Либо же происходит так, что на курсе долго идет рассмотрение того, что не требует столь пристального внимания, в связи с чем тратится время, которое могло быть использовано на рассмотрение и других полезных вещей.
Так, мы можем сделать вывод, что курсы – это хорошее решение для людей, которые испытывают проблемы с самостоятельным поиском информации, а также они помогут тем, кто уже самостоятельно накопал некую информацию и хотел бы систематизировать свои знания. Но в случае выбора курсов обязательно стоит обращать внимание на учебную программу – убедиться в том, что она затрагивает именно то направление, в которое вы хотели бы пойти, а также прокачивает важные навыки, о которых я написал выше.
И да, несомненно, очень важный момент – постарайтесь записывать или запоминать то, что вас спрашивают на собеседованиях, и по окончании оных, поработать над улучшением тех частей (теории, практических навыков или же софт-скиллов – умении говорить), где, на ваш взгляд, есть проблемы.
Исходя из того, что мы видим, – навязывается также вывод о том, что в тестирование попасть не так-то просто – нужно много всего знать и уметь делать. По личному опыту могу сказать, что войти в IT легче как специалисту технической поддержки – в этом направлении гораздо менее строгие требования к кандидатам, а также есть возможность «повариться» в IT-кухне и выбрать интересное для себя направление впоследствии, общаясь с коллегами.
Если вы, ознакомившись с материалом выше, всё-таки решились начать карьеру в IT именно с направления тестирования, то вам понадобится следующее: