На информационном ресурсе применяются рекомендательные технологии (информационные технологии предоставления информации на основе сбора, систематизации и анализа сведений, относящихся к предпочтениям пользователей сети "Интернет", находящихся на территории Российской Федерации)

GeekBrains

4 подписчика

Как получить работу в тестировании и вырасти в специалиста

Александр Юдаев давно знаком с миром IT и работает старшим тестировщиком. Учёба в GeekBrains на факультете Fullstack JavaScript помогла ему быстро изучить язык программирования и расширить профессиональные горизонты.

Привет! Меня зовут Александр, я ведущий тестировщик веб-приложений в «Ай-теко». За семь лет в тестировании я смог оценить разные стороны этой работы: решал задачи вручную и с использованием автоматизации, руководил командами, постоянно учился. В этой статье расскажу о личном опыте развития с нуля: о необходимых тестировщику знаниях и навыках, о самообучении и онлайн-курсах, о том, чего ждать на собеседованиях. Отдельно остановлюсь на изучении JavaScript, на том, как этот язык может пригодиться в автоматизации тестирования и при решении ещё множества задач.

Старт в тестировании без опыта

Во время учёбы в институте я устроился работать в техническую поддержку, и после вуза некоторое время оставался там, потому что не знал, куда двигаться дальше и как развиваться. В поисках перспектив я перешёл в «Онланту» — компанию группы «ЛАНИТ», где первые три месяца тоже работал в техподдержке. У нас на контроле было несколько сервисов, и если что-то выходило из строя, нам начинали звонить, мы обрабатывали обращения клиентов, составляли заявки и передавали их техническим специалистам.

Вскоре директор пензенского филиала «Онланты» рассказал, что у них открылась вакансия тестировщика, и предложил мне пройти собеседование. Я ухватился за эту возможность – для меня это была новая интересная активность. И хотя у меня не было необходимых опыта и знаний, люди, которые проводили собеседование, увидели во мне желание развиваться, «горящие глаза», и приняли в команду. А ведь незадолго до этого я даже не знал, что существует такое направление, как тестирование.

Полтора года работы в «Ланите» дали мне теоретический фундамент для развития в профессии. Я был постоянно голоден до информации — изучал всё, до чего мог дотянуться, и ежедневно практиковался. Одним из первых источников знаний для меня была книга Романа Савина «Тестирование Дот Ком, или пособие по жестокому обращению с багами». Конечно, я читал статьи на Хабре и других IT-ресурсах, изучал материалы небезызвестной Натальи Руколь — она занимается подготовкой тестировщиков и тест-менеджеров. В «Ланите» задач по тестированию было не слишком много — я не был загружен на 100%, и у меня оставалось достаточно времени на самостоятельное обучение.

Дальше я устроился в компанию Bell Integrator. Сделать это удалось со второй попытки: первое собеседование было неудачным. Я тогда ещё плохо знал SQL — надо было разобраться, как писать запросы, делать выборки и «общаться» с базами данных на практике. Две недели я интенсивно занимался, штудировал материалы по теме. Кстати, в этом мне помог сайт sql-tutorial.ru: там можно последовательно выполнять задания и делать запросы к базам в интерактивном режиме. Таким образом я, помимо чтения теории, смог выработать необходимые практические навыки. Перед вторым собеседованием я даже повысил уровень ожидаемой зарплаты. И в итоге усилия были вознаграждены — я получил работу с желаемым уровнем з/п. Для меня это был некий прорыв и стимул двигаться вперёд ещё интенсивнее.

Параллельно с работой в Bell Integrator я начал удалённо подрабатывать по вечерам и в выходные – тестировал рекламные продукты одного ИП для разных заказчиков. В основном это были промостраницы, лендинги и онлайн-игры рекламного характера. Например, я тестировал онлайн-викторину «Спортмастера» к Чемпионату мира по футболу 2018, страницы продуктов Hotpoint Ariston и Facebook-приложение для ещё одного заказчика.

Как я познакомился с кодом

В Bell Integrator я проработал около четырёх лет. Это был путь изменений и постоянного развития: год я провёл в «рядовой» должности, затем стал старшим специалистом — теперь мне поручали более ответственные задачи и контроль над тестированием и управление людьми. Дальше я захотел «потрогать руками» код и ближе к концу работы в компании получил первый опыт автоматизации тестирования.

У нас был свой внутренний фреймворк на PHP, и нужно было автоматизировать тестирование API (REST и SOAP). Если говорить в общих чертах, мы создавали запросы к API, вытаскивали данные через cURL и сравнивали ожидаемую работу интерфейса с фактическим результатом. Так я впервые приобщился к своеобразной, но всё-таки автоматизации тестирования. У меня появилось желание дальше развиваться в этом направлении, и я сказал об этом коллегам.  А поскольку с PHP я раньше не сталкивался,то договорился с начальством, что мне выделят время на обучение. За две недели я погрузился в язык, после чего выполнил по нему тестовое задание и дальше около года занимался именно автоматизацией API-методов.

Мост к разработке

Чем больше я знакомился с кодом, тем реальнее становилась моя мечта создать свой программный продукт. Всё началось с того, что мне нужно было приложение для учёта личных доходов и расходов. Я перепробовал множество инструментов, но ни один из них не был для меня достаточно удобным и прозрачным в работе. Я хотел просто вводить данные и отправлять их на сервер — чтобы программа сама учитывала поступление и списание средств, формировала отчёты по запросу. Временным решением для меня стал учёт в Google-таблицах, но и он доставлял неудобства, так что я задался целью написать что-то своё.

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

Я представлял, чего хочу и как это должно выглядеть, так что смог довольно быстро выбрать для своего проекта технологический стек. Из популярных языков самый универсальный, на мой взгляд, — JavaScript. С его помощью можно делать приложения и для веба, и для мобильных устройств, а если вдруг понадобится, то и для десктопа. При этом JS позволяет реализовать и фронтенд, и бэкенд. Да, такой подход не даёт космической производительности, но в моём случае она и не требовалась.

Итак, я взялся за изучение JS, но в какой-то момент понял, что при самостоятельных занятиях продвигаюсь слишком медленно. Тем более, помимо самого языка мне предстояло освоить фреймворки React и Node.js. Я решил, что занятия с преподавателем помогут быстрее достичь цели, и записался в GeekUniversity на факультет Fullstack JavaScript.

Хотя изначально решение записаться на курсы не было связано с моей основной работой, позже полученные знания помогли мне в тестировании. Когда я изучил, как в целом работает JavaScript, я смог писать на нём код для автоматизации тестирования веб-приложений. Причём оказалось, что для этих задач в экосистеме JS есть много полезных инструментов.

Fullstack JavaScript на онлайн-курсах: плюсы и минусы 

Во время обучения у меня почти не было свободного времени. Вечерами, ночами и в выходные я сидел и учился, вникал, что-то разрабатывал и пробовал. Кто захочет пройти курсы, должен понимать, что это потребует больших усилий. На самом старте легко расслабиться – в первые два месяца всё кажется лёгким, но рано или поздно вы начнёте буксовать, и это будет «момент истины», который покажет, насколько вы готовы преодолевать трудности ради своей цели. Например, были два курса, которые мне пришлось перепроходить повторно, и даже во второй раз это было нелегко. Особенно это касалось курса по React и Redux.

В целом набор знаний, который дают в GeekBrains, неплох для погружения в JavaScript-разработку. До курсов я никак не мог понять, что такое синхронность и зачем она нужна. Во время занятий я наконец разобрался с этим. Однако надо понимать, что обычный учебный блок состоит всего из восьми занятий и даёт базовое понимание предмета, а не исчерпывающие знания. Поэтому нельзя уповать на одни только курсы и ждать, что они сделают из вас крутого профессионала. Невозможно ограничиться материалами лекций и методичек — вам придётся много читать, смотреть и осмысливать самому.

Конечно, очень важна практика. За время учёбы мы научились верстать сайты, сделали витрину магазина на Vue и написали свой небольшой чат, но самое интересное ждало нас на стажировке. Именно тогда у меня появилась возможность собрать команду для работы над приложением по учёту доходов и расходов. Получился очень полезный опыт.

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

Как извлечь максимум из стажировки в GeekBrains

Если вы будете проходить стажировку на курсах GeekBrains, главное — подойти к делу серьёзно. Преподаватели дадут вам карт-бланш на проект, который вы будете делать. Никто не будет жёстко контролировать и планировать работу за вас. Будет пара «контрольных точек», но рабочий процесс вы будете выстраивать сами. Чтобы всё получилось, надо взять себя в руки и осмотреться.

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

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

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

Сначала мы сформулировали идеи для продукта — определились с возможностями, которые нужно было реализовать. На следующем шаге мы занялись проектированием: ребята рисовали в app diagrams макеты, на основе которых мы строили дальнейшую работу. Потом мы выбрали подходящие фреймворки, подготовили фундамент нашего кода и только после этого взялись за реализацию необходимых функций. Команда работала слаженно — мы не распылялись. Из четырёх человек, которые дошли до финала, двое, включая меня, уже имели опыт работы в IT, а двое пришли из смежных областей.

О работе в «Ай-теко»

Немного о том, чем я занимаюсь сейчас. Даже когда я где-то работаю, я стараюсь поддерживать своё резюме в актуальном состоянии. Так было и в период моей работы в Bell Integrator. Однажды со мной связался HR из компании «Ай-теко» и предложил пройти собеседование на позицию старшего тестировщика. С финансовой точки зрения, предложение было довольно заманчивым, поэтому я согласился и в итоге был принят.

Сейчас я веду четыре проекта, связанных с тестированием веб-приложений. Работаю дистанционно: с марта наша компания перевела всех сотрудников на удалёнку. Для меня этот переход оказался очень простым — я не привязан к месту, и, чтобы решать свои задачи, мне достаточно ноутбука под рукой.

Я живу в напряжённом режиме как минимум последние семь лет, а может и со студенческих времён, когда параллельно учился в двух институтах. Но, к счастью, «выгорания» не происходит. Я привык к нагрузкам и высокому темпу жизни. А главное — то, чем я занимаюсь, мне нравится и не надоедает. Конечно, время от времени надо брать отпуск, чтобы очистить голову, сменить обстановку и восполнить силы. В этом плане очень помогают путешествия.

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

Параллельно с работой в «Ай-теко» я участвую в развитии одного стартапа. Чтобы попасть туда, надо было в качестве тестового задания написать автотест на JavaScript. При этом обязательно было использовать фреймворки Puppeteer и Jest, которыми я никогда раньше не пользовался. На момент собеседования я всего месяц как закончил обучение на курсах и, благодаря полученным знаниям, смог быстро разобраться в документации и успешно решить задачу с помощью абсолютно новых для меня  инструментов.

Что надо знать тестировщику для трудоустройства

Сейчас, когда я участвую в подборе сотрудников, я могу посмотреть на собеседования с точки зрения работодателя. И вот, на мой взгляд, главное, что сегодня необходимо знать джуну:

  • Что такое тестирование, каких оно бывает видов и зачем нужно.
  • Что такое тест-план и тест-кейсы, какие есть подходы к их разработке.
  • Как разрабатывается стратегия тестирования.
  • Какие есть гибкие и жёсткие методики разработки. Некоторые крупные компании до сих пор пользуются разновидностями жёсткой методики waterfall.

Всё это — ваш теоретический фундамент для освоения профессии. Фундамент — главное, остальному вас могут научить. Правда, с одной теорией вы не сможете на старте рассчитывать на хорошие деньги. В нынешних условиях большинству компаний невыгодно обучать людей с нуля — они стремятся сразу брать сильного джуна, готового к практическим задачам. Поэтому дальше, если вам интересно веб-тестирование, надо будет изучить HTML/CSS, SQL, разобраться, как тестировать REST API. В качестве бонуса неплохо бы изучить ещё и SOAP — есть проекты, где его ещё используют, хотя таких всё меньше.

Я видел ситуации, когда людей в тестирование брали без профильного опыта и знаний. Но при этом работодатели смотрят на опыт кандидата в смежных областях, а главное — на то, как человек рассуждает. Ему предлагают ситуацию и смотрят, какие варианты тестирования он предложит, какие встречные вопросы задаст. Например, раньше на собеседованиях новичкам любили предлагать протестировать форму авторизации. В такой ситуации хороший кандидат обязательно начнёт выяснять, как эта форма должна работать: сколько символов могут содержать логин и пароль, допустимы ли спецсимволы и цифры, учитывается ли регистр. Все эти вопросы показывают, что человек способен развиваться в тестировании.

 

Ссылка на первоисточник

Картина дня

наверх