🗣 «Свою первую работу по тестированию я нашел случайно»

Порог входа в сфере тестирования ПО довольно низок, но стать высококлассным инженером по Quality Assurance непросто: Вячеслав Зимин рассказал нашему корреспонденту о своем пути в профессию.

Где вы учились и как решились пойти в тестирование?

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

Я начал все чаще смотреть в сторону IT и в свободное время занимался программированием, одновременно изучая вакансии, и однажды наткнулся на вакансию тестировщика. 11 лет назад еще не было такого количества курсов, поэтому тестирование я тоже изучал самостоятельно. Курсы проходил уже после трудоустройства.

Как вы нашли первую работу?

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

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

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

Какие знания умения и навыки вам потребовались на позиции джуниора?

В первую компанию (как оказалось, это был стартап) только с общим представлением о профессии и с невероятным желанием работать в этой сфере. Может быть именно этот факт зацепил моего работодателя. В команде я был единственным тестировщиком, и все знания пришлось добывать самому. Отчасти мне помогла книга “tестирование dot com”. Еще я много общался с программистами, получал от них фидбек и смотрел, как сделать свою работу и процесс лучше и эффективнее. Каждый день читал форумы и статьи, чтобы понять все нюансы работы и выстроить правильный процесс тестирования.

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

Легко ли вам было с начальной позиции перейти к уровню middle?

В этом стартапе я проработал примерно год. Потом у компании дела пошли хуже. Новых продуктов не было, а старые не приносили должного дохода, поэтому сократили почти всю команду и оставили только несколько сильных программистов. В это время открылась вакансия тестировщика в крупной компании Social Quantum, и я решил попробовать свои силы там. В этот раз предварительного тестового задания не было, и меня пригласили сразу на собеседование. Вернее, их было два. Сначала собеседование с hr, где спрашивали теорию, а потом пригласили в офис на второе собеседование. Тут уже были практические вопросы и задания, т.е. меня попросили оформить баг-репорт и написать тест-кейс.

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

Когда мы только развивали тестирование, то не пользовались какими-то сложными техническими инструментами. По мере развития самой команды и тестирования в компании мы постепенно расширяли и техническую экспертизу. Мы тестировали игры, и по сути не было какого-то адекватного API – пришлось выкручиваться и пробовать реализовать end-to-end-тесты. Было перепробовано много инструментов и один из них мне запомнился: я его долго пытался приноровить к специфике тестирования игр – это TestComplete. К сожалению, он нам не подошел, и мы решили остановиться на скрипте по распознаванию изображений Sikuli. Именно тогда мы и стали развивать автоматизацию в компании.

Что касается инструментов ручного тестирования, то в ходу у нас были вполне стандартные Charles и Android SDK. В ручном тестировании каких-то специальных инструментов мы не использовали. Была админка игры и прямые руки тестировщика.

В этой компании я проработал лет 5 или 6. Хотя у нас и не было четкой градации по должностям, но точно могу сказать, что вырос за тот год из джуна в миддл-позицию. Еще через год я прошел курс тест-аналитика и стал уже лидом небольшой команды. Еще через год мы с руководителем отдела решили сделать внутренние курсы по тестированию. У меня было достаточно опыта и педагогическое образование, к тому же я постоянно обучался, так что особых проблем с созданием первого собственного курса не было. Плюс за все эти годы работы тестировщиком мое желание преподавать никуда не делось. И это как раз была отличная возможность соединить два любимых занятия: преподавание и тестирование.

Легко ли со средних позиций перейти к уровню senior QA и что для этого нужно?

Все зависит от самого человека, от его желания, мотивации и стремления. У меня был случай, когда сотрудник за год упорной работы перешел из джуна на позицию синьора, но он выкладывался по полной. И конечно же дело тут не ограничивается только хард-скиллами. Для меня senior QA – это не только сильный технический специалист, но и самостоятельный сотрудник, который может сам решать проблемы, организовывать свое время, расставлять приоритеты в работе и так далее. Тот человек, которому дал сложную задачу, и он ее выполнит в оговоренное время. При этом ты не переживаешь, что что-то может пойти не так.

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

Если инженер по QA уровня middle считает себя готовым к переходу в высшую лигу, как проверить, что он не ошибается?

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

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

Как самому сотруднику проверить, что он не ошибается и готов к переходу?

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

Что потребуется изучить и какие навыки наработать, чтобы выйти на уровень senior?

Для позиции senior QA надо разделять направления и специализации. Если мы говорим про мобильное тестирование, опытный специалист должен знать основную базу того, с чем он работает. Как минимум это особенности тестирования мобильных устройств и операционных систем. У него должен быть уверенный опыт с инструментами тестирования мобильных приложений. Он должен знать и разбираться в таких вещах как Android SDK и XCode. Кроме того, будет плюсом если он знает про работу с эмуляторами и имеет опыт в автоматизации. Хорошо знает тестирование API, его особенности, умеет работать с инструментами тестирования API и разбирается в клиент-серверной архитектуре. Для веб-тестирования сюда же можно включить API и клиент серверную архитектуру, хорошее знание протоколов и запросов, знание HTML, CSS, DevTools.

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

Такой специалист должен идеально знать как составлять тест-кейсы, чек-листы, баг-репорты. Разбираться в терминологии тестирования, знать процессы тестирования и в целом процессы разработки ПО. Знать и уметь работать с основными инструментами (Bug Tracking System, Test Management System) и конечно иметь опыт в тестировании – обычно от 3 лет и выше. Также в некоторых компаниях синьор может выдавать фидбек младшим специалистам и быть для них наставником. В этом случае ему потребуется развивать и софт-скиллы.

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

Как у вас родилась идея создать собственное сообщество?

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

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

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

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

Что в тестировании самое важное?

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

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

***

Хочу освоить алгоритмы и структуры данных, но сложно разобраться самостоятельно. Что делать?

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

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

Курс подходит как junior, так и middle-разработчикам.

ЛУЧШИЕ СТАТЬИ ПО ТЕМЕ