Интервью с младшим тестировщиком Kaspersky Lab
Бывший — весьма грустное слово. Но только не том случае, когда ты бывший стажер, которого взяли в штат. Сегодня именно такой бывший стажер Kaspersky Lab Ян Шеин рассказал о том, как начать строить карьеру не покидая школьной скамьи, почему не надо бояться ошибок и чем на самом деле занимаются тестировщики.
Ян Шеин, младший тестировщик в Kaspersky Lab
Кем ты работаешь?
Я — младший тестировщик в отделе контроля качества Kaspersky Security Network и Kaspersky Private Security Network.
А где учился?
Я учился и учусь в Московском авиационном институте по направлению «Программная инженерия». Сейчас я на 2 курсе. Поэтому я до сих пор в процессе обучения и познаю все и в теории, и на практике.
Сложно ли совмещать учебу и работу?
Мне очень повезло, я пришел сюда, когда было дистанционное обучение. Поэтому можно было легко все совмещать. Сейчас, когда вышел на очное, возникают определенные трудности, но, в целом, всегда есть вариант найти компромисс, и тупиковых ситуаций пока не случалось.
В Касперском ты работаешь удаленно?
Нет, я в Касперском работаю из офиса, полностью каждый день.
Помнишь ли ты, как узнал о стажировке в Касперском? И почему ты решил пойти именно туда?
Помню. В 9 классе у меня был товарищ, его сестра работала в Лаборатории Касперского. Она нам посоветовала, чтобы мы перешли в школу под номером 1409, где был небольшой проект, который назывался «Математическая вертикаль».
Летом после 10 класса я, как один из отличившихся на этом проекте, был приглашен в Лабораторию Касперского на 21-дневную практику. Тогда я и узнал, что такое Лаборатория Касперского изнутри. Что замечательно, я попал в ту же команду, в которой нахожусь до сих пор. Потом, когда я закончил школу, подумал, что можно попытаться пойти на стажировку. Но решил повременить с этим на первом курсе, чтобы спокойно влиться в учебу.
А потом начался коронавирус, и всех отправили на удаленку. А я решил, что зря терять время как-то глупо, поэтому надо попробовать. И вот, я здесь.
Как проходил отбор на стажировку?
Отбор по проекту SafeBoard происходил в несколько этапов. Сначала было тестирование по разным направлениям. Необходимо было самому выбрать определенное их количество. Например, знание Linux, знание Python, теория тестирования и теория разработки. Это те направления, которые выбрал я. Потом было практическое тестирование, то есть давали задачки. Еще был третий этап, где было уже непосредственно живое общение с руководителями направления, которое я выбрал. Сначала просто разговаривали, а потом мне дали ссылку, где попросили написать код. И все это было полностью в интерактивном режиме. Но было достаточно приятно, потому что на всех этапах говорили: «Ребята, вы можете гуглить, однако, у вас мало времени, поэтому сильно не углубляйтесь». Не было никакого страха: «Господи, я сейчас все забуду!»
Давай поговорим о твоем рабочем дне. Расскажи, с чего он начинается. Какие задачи ты решаешь?
Первая задача — глаза открыть 🙂 С дисциплиной у меня все нормально, обычно в 9.00 я уже здесь. Начинается, наверное, рабочий день с того, что бы заварить чайку, зарядиться немножко. Дальше я смотрю, не обвалилось ли что-нибудь за ночь. Из-за того, что мы постоянно тестируем продукты, необходимо смотреть, не было ли чего-то, что помешало продукту пройти все тесты. Поэтому, с утра я первым делом сажусь разбираться, что упало, и упало ли, и как это можно починить. Еще есть ежедневные встречи, которые мы проводим для того, чтобы понять текущий статус по прогрессу. А дальше уже идут задания — каждый раз это очень разносторонние задачи, которые нельзя объединить во что-то одно, все они касаются разных сфер.
Сможешь ли ты назвать какую-то одну самую сложную задачу из всей твоей практики?
Это было относительно недавно. У нас был один продукт которого тестировщики не касались около 2−3 лет, потому что он не обновлялся. Необходимо было его заново протестировать. Но он использовал старые технологии и старую версию языка, поэтому надо было начинать все с нуля. Да, были какие-то наброски, но это действительно оказались только наброски. Поверх пришлось уже масляными красками рисовать что-то совершенно новое.
Из-за того, что я младший разработчик, чаще всего мне дают что-то дописать или подправить. А в тот раз дали задачу, где надо было выстроить с самого первого кирпичика до момента, когда мы разрежем ленточку и скажем: «Пожалуйста, дом построен».
Сколько времени заняла эта задача?
У меня заняло полную неделю. Но я очень доволен результатом, потому что на данный момент это один из самых стабильных наборов тестов в нашей команде.
Давай поговорим про навыки, которые нужны, чтобы попасть в Касперский. Как ты думаешь, без чего человека туда точно не взяли бы?
Упорство и трудолюбие. Это очень заезжено звучит, я знаю. Однако, это, наверное, две характеристики, которые меня описывают полностью. Я перед тем, как попасть сюда, я работал над своими личными маленькими проектами, и у меня было постоянное желание довести их до идеала. Каждый день это было как новое испытание: «Ага, я сегодня сделал это. Мне надо на следующий день сделать еще больше».
Когда я пошел в Лабораторию Касперского, я несколько дней до тестирования сидел и судорожно думал: «Господи, они же могут спросить этот вопрос, этот момент…» Потом в какой-то момент я расслабился, нашел несколько подопытных программ, которым было необходимо тестирование, и представил, что бы было, если бы я уже работал. Я просто сидел и долбил это дело, как молотком, пытаясь добраться до сути.
А упорство, потому что я до последнего, наверное, заваливал сообщениями своего куратора: «А что там с результатами?» Когда я уже попал на стажировку, это качество очень помогло перейти в штат, потому что я человек, который не бросает задачу не доведенной до какой-то приемлемой стадии. В этом плане упорство очень помогает.
Есть ли у тебя какая-нибудь история о факапе?
Есть, причем, относительно свежая. Однажды утром у меня была задача — немного подправить один автоматизированный процесс, сделать его более приятным для использования коллегами. 9 утра, до встречи 3 часа, я думаю: «Загружу еще один плагин на нашу платформу для автоматизации. Что там может пойти не так?» Я загружаю этот плагин, а он сообщает: «Слушай, а мне нужно обновить один из базовых плагинов-зависимостей». И я думаю: «Конечно, в чем проблема? Давай обновим». Обновляю этот плагин и понимаю, что вся система перестала работать. Я судорожно поворачиваюсь к своему коллеге-разработчику и говорю: «Валера, что делать?!» Он и говорит: «Я в свое время это месяц чинил». И я понимаю: все, можно собирать свои вещи. Однако я решил все-таки что-то с этим сделать. В итоге я смог кое-как поднять систему, но в какой-то момент, видимо, опять нажал куда-то не туда…
Начинается ежедневная встреча, и первая фраза: «Ребята, а кто знает, что с нашей системой?» Я думаю: «Ну все, признаваться придется, Штирлица спалили». Я понимал, что здесь придется обратиться к более знающим людям. Поэтому обратился к разработчику, который настраивал эту систему со словами: «Слушай, не спрашивай, как, не спрашивай, почему. Просто скажи, что мне делать?»
В итоге в какой-то момент я довел систему до состояния, когда все вроде работоспособно, и решил запустить тестик, чтобы проверить, что оно действительно работает. Все обвалилось на первом же шаге этого теста. А я уже не понимал, что происходит. Оказалось, что один из плагинов, который уже был установлен в системе, при обновлении просто перестал работать. И это был один из основополагающих плагинов. В этот момент началась игра в «угадайку», потому что плагинов было около 160, а упал один. И после отключения-включения плагина необходим рестарт, который занимает минуты три. 160 умножить на 3 — получается, что я должен был сидеть недельку где-то. В какой-то момент меня спасло знание бинарного поиска — оно немного ускорило этот процесс. И в итоге к вечеру я смог все починить.
Я думаю, что это действительно мой самый большой факап, потому что весь день я потратил на проблему, которую сам же и создал. Но из этого были вынесены определенные уроки и для меня, и для команды: надо перепроверять еще семь раз, помимо тех семи, которые и так есть.
Но я считаю, это даже хорошо, что я тогда все уронил. Иначе мы бы никогда все это не обновили и не обнаружили бы те проблемы, которые возникли у нас после этого обновления. А они потом оказались достаточно серьезными и влияющими на нашу ежедневную работу.
Здорово, что ты так оптимистично к этому подходишь! Научишь многих ребят, что не надо бояться своих ошибок.
Конечно! Ошибки — на то и ошибки, чтобы на них учиться. Хотя в тот момент ты сидишь, конечно, весь на нервах, думая: «Господи, пожалуйста, пусть что-то будет лучше в этой жизни». А потом вспоминаешь со смехом — чем это не урок для тебя и для других?
Какие книги, каналы на ютубе, подкасты или другие ресурсы можешь посоветовать?
В свое время я прочитал книгу «Тестирование DOT COM». Она уже немного устаревшая в некоторых моментах, но хорошо помогает разобраться в том, как происходит процессы тестирования и багрепорта.
Что касается ежедневного — не скажу, что у меня есть что-то, что я ежедневно читаю, но каких-то современных авторов я люблю почитать. Все-таки мы, ITшники, люди, которые идут в ногу со временем. И наверное, идти надо по всем направлениям, а не только в плане технологий.
Пожалуй, нет какого-то одного подкаста, который я бы посоветовал. Здесь уже на вкус и цвет, как говорится, каждому может что-то свое понравиться. Но когда едешь в метро, подкасты спасают — понимаешь, что ты эти 15 минут провел не совсем без пользы.
Какой совет ты дашь начинающим ITшникам, тем, кто только начинает строить свою карьеру?
Не бояться делать ошибки, экспериментировать и иногда ставить себе задачи «выше головы». Если ставишь себе такие задачи, то прикладываешь больше усилий и ищешь разные способы для достижения своей цели. С моей точки зрения, пытаться решить их всеми возможными путями — это самая лучшая практика.