— Ты наверняка слышал, что тестирование — это простой способ войти в IT. Что думаешь на этот счет? Как часто приходят ученики на курс, считая, что будет очень легко?
— Тут надо разделить на два направления. Автоматизация и мануальное тестирование. И если говорить про автоматизацию, то люди там видят слово тестирование — а остальное их не волнует. И когда ты начинаешь рассказывать про паттерны программирования, про технологии программирования, про все те инструменты, которые нужны, чтобы писать код и автотесты, — они впадают в ступор. Мы же думали, что будет просто. А тут слишком сложно, программирование. И да, они понимают, что автоматизация — это программирование в тестировании. Тебе мало того, что нужно знать программирование, помимо этого нужно понимать, что происходит в тестировании и как добиться качества.
Нет смысла учиться плавать, если ты хочешь покорять горы. Надо сразу идти в горы. Так и тут, нет смысла хотеть стать разработчиком и пытаться быть тестировщиком. Это конечно поможет в будущем, но это совсем другой вектор развития.
А вот что касается мануального тестирования, тут такая двоякая ситуация. С одной стороны никаких особо технических знаний тебе не нужно. Главное понимать, как устроен Интернет, как кнопочки нажимаются, как сервисы общаются — на уровне понимания. А дальше необходимо уметь четко выражать свои мысли. Тебе нужно обладать логическим мышлением. Потому что ты не можешь прийти и сказать, у нас там все плохо. У тебя спросят, что плохо? Ну все плохо.
То есть нужно четко и доходчиво объяснять, чтобы тебя мог понять любой член команды. И большая проблема здесь, что обучение длится не так долго. Предположим, от месяца до трех для мануального тестировщика вполне себе хорошая стажировка, после которой можно пробовать пытаться попасть на первое место работы.
Но за счет этого очень большое количество людей, кто претендует на позицию джуниор-специалиста. И много ребят, которые прочитали книжку Куликова или Савина, думают, все, я теперь познал дзен, знаю все тайны тестирования и мироздания, я сейчас приду и буду тестировщиком. И их там таких сто человек, а позиции всего две. Поэтому большая конкуренция, очень много ребят, которые не понимают, чего на самом деле хотят. Понятно, большинство движется к цели, что вот там много платят, мы будем туда двигаться. Но есть куча подводных камней, которые будут тебя тормозить, не давать достичь твоей цели. Плюс в это надо инвестировать время не только в начале карьеры, но и дальше, постоянно развиваться и учиться. Однако не все к этому готовы.
И большая проблема, что некоторые относятся к программированию как, я вот сегодня выучил и всю жизнь буду работать. Но тоже так не получается. Тебе приходится постоянно учиться, постоянно что-то изучать, куда-то смотреть вперед. И на данный момент уже от мануальных тестировщиков требуется уверенное понимание и технических вещей, чтобы они могли не только в Ecxel накидать кейс или в jira тикет создать, а чтобы понимали, что такое постман, могли сделать автоматизацию через ньюман, например. Чтобы они могли в уже существующем фреймворке что-то подправить, сами по примеру автотест накидать, четко понимать, почему бага, которую они нашли, появляется, — это бэк или фронт проблема? А это требует понимания архитектуры приложения.
Чем дальше мы будем идти, тем, мне кажется, сложнее и более комплексными будут становиться требования к этой позиции. Поэтому если сравнивать с другими направлениями, да. Тут меньше технических знаний, которые необходимы. Но в целом, я скажу, что это тоже нелегкое направление, в котором нужно развиваться, учиться. И этот процесс никогда не останавливается. Тестировщиков, как и программистов, много, а вот толковых в разы меньше.
— А нужны ли какие-то знания, прежде чем идти на курс? Что бы ты посоветовал ребятам посмотреть/почитать, может? Для того чтобы понять, будет ли им интересно это.
— Есть замечательная книга Куликова по основам тестирования, там очень доходчиво и просто рассказано про историю развития разработки, какие есть подходы к разработке и где место тестированию во всем этом процессе. И это базовая книжка, которую ты читаешь и основные термины для себя подчеркнешь.
Конечно, понять, нравится тебе это или нет, — нужно только брать и делать. Тогда ты сможешь это понять.
Что бы я посоветовал ребятам, которые хотят быть именно мануальными тестировщиками, — это конечно же знание английского языка. Потому что будет необходимо много общаться. И тут B1+, B2 — это мастхэв, самой первой строчкой будет идти в резюме. Если мы говорим про какие-то более технические навыки, то это инструментарий, но ты его и так берешь и учишь.
И второе, это логическое мышление. Скрупулезность. Потому что разработчик что-то написал, отправил. А ты говоришь, смотри, тут запятая пропущена, тут шрифт уехал, тут кнопка полетела. И он такой, блин, точно. И если ты за собой замечаешь, что ты где-то что-то подмечаешь, что у тебя душа к этому лежит — хочешь сидеть, разбираться и выяснять, а почему так, а как должно быть, — то это будет явно твое направление.
Есть забавная история из моей жизни, когда я приехал во время отпуска в отель. Там была небольшая комната, но очень много подсветки, и некоторые выключатели были проходные. Я не знаю, это природный навык или уже приобретенный с работы, — я пришел, понатыкал каждый выключатель, посмотрел, что он включает, в какой комбинации они работают. И потом, когда я это уже все сделал, сижу — и мне в голову стрельнуло, что походу это неспроста. Жена пришла, свет включила и пошла. А мне было интересно понять, а почему именно этот, а что, а какой выключатель за что отвечает.
— А с нуля можно прийти ребятам на курс?
— Курс под собой и подразумевает, что ребята приходят без особых знаний программирования, но с большим желанием. И главная идея, которую я хотел бы, чтобы ребята понимали, прежде чем идти на курс, — что нужно будет много работать.
То, что дается в материалах, презентациях и в том, что я расскажу, — это минимальные знания, дальше начинается самостоятельная работа, выполнение домашних заданий, чтение дополнительных материалов. Только совмещая практику и теорию и постоянно тренируясь вы сможете достигнуть результата. Мы стараемся дать все необходимое за короткий промежуток времени, чтобы это обучение не растягивалось на пять лет. Как мы считаем, этого времени достаточно, при упорном труде. И мы даем ту базу, когда человек уже может работать и продолжать развиваться на основе полученных знаний. То есть постоянно улучшать свои знания, углубляться в них. Но это все будет только в том случае, если человек сам готов работать и в это вкладываться, а мы с этим ему поможем и направим в нужную сторону.
— Почему ты выбрал C#? В чем его преимущества и насколько он легок для изучения?
— Сейчас я наверное скажу, что вообще особо нет разницы, какой язык использовать. Это всего лишь инструмент — где-то чуть сложнее, где-то чуть проще. Если сравнивать с Java, JS, Python — они все по сложности будут примерно на одном уровне. Где-то больше библиотек, где-то их меньше. Но смысл будет один и тот же.
В моем случае история развивалась так, что я начинал на C, потом на C++, потом на C# — и проходил уже стажировку по C#, и влюбился в этот энтерпрайз на C#. Когда у тебя есть команда разработчиков на .NET, логично делать автоматизацию на .NET. Особенно когда у тебя живой язык, с большим количеством синтаксического сахара, который позволяет удобно и просто писать код.
Один язык на проекте — это всегда удобно. Либо разработчики могут тебя подсаппортить, когда ты в отпуск пошел, а нужно тесты смотреть. Фронтендеры не будут смотреть, они не поймут, что там написано. А ребята с бэка тебя спокойно подхватят, подменят. Потому что они понимают код, и вы пишите на общем языке.
Я бы сказал, что автоматизация идет не как главный сервис, который ты продаешь заказчику, а дополнительный. И ты уже как автоматизатор подстраиваешься под проект, под те ограничения, которые есть.
Если у тебя фронт на JS, а бэк на .NET, то у тебя либо .NET, либо JS. Ты не будешь брать третий язык, чтобы создавать зоопарк технологий.
И я вот как окунулся в этот мир, в моей картине мира очень много проектов на .NET, я бы сказал, что конкурируют они с Java и JS наравне. Исторически сложилось. Можно так сказать.
— Куда бы ты рекомендовал идти ребятам после окончания курсов? Понятно, что куда возьмут. Но вот если есть выбор, где лучше начинать свою карьеру?
— Конечно сейчас ситуация не самая легкая на нашем рынке, но все же позиции есть. Последнюю группу, которую я вел, это был курс на Java, — я точно знаю, что три человека нашли работу. И это был сентябрь/октябрь прошлого года. То есть позиции есть. Понятно, что их стало меньше, конкуренция будет больше, но кто ищет, тот всегда найдет.
И если говорить про компании, то мне кажется для джуниор-специалиста самое главное получить заветную строчку в резюме, что у тебя есть рабочее место и коммерческий опыт. Потому что даже со стороны рекрутеров, если ты работал полгода в какой-нибудь неизвестной компании, но она в ПВТ числится, 50 человек штата, — это уже лучше, потому что у тебя есть коммерческий опыт, ты работал в команде, ты понимаешь, как протекают процессы и что от тебя требуется.
Очень здорово, когда при компаниях есть стажировки. Либо курсы, на которые ты можешь пойти и там поучиться, и потом претендовать на должность в рамках этой компании.
Для старта конечно большие компании будут лучше, потому что там большое количество людей, такой сгусток знаний и опытных ребят, общение. Но в то же время возможно было бы и здорово попасть в маленькую компанию, когда ты там занимаешься не только тестированием. И тут надо помочь девопсам, и тут разработчиком — да, это более стрессово, ты будешь тратить много своего времени. Но это колоссальный рост, ты быстрее вырастешь как специалист.
Основная идея, куда берут, где будут предложения — не отказываться и идти. Потом у тебя будет возможность поменять место работы.