«Грамотный тестировщик может дать фору любому разработчику в написании кода»
Сегодня 9 сентября, День тестировщика. По этому случаю публикуем интервью с руководителем направления нагрузочного тестирования в IBS Тимуром. Тимур рассказал о специфике работы в этой перспективной области и о том, как стать успешным специалистом. С Тимуром беседовала Ольга Панькова, наш специалист по рекрутингу.
Тестировщик — это специалист, который занимается проверкой результатов работы на соответствие установленным требованиям. Тестировщик тестирует компоненты продукта или весь продукт целиком на предмет ошибок или неточностей разработки.
Чем занимается тестировщик
— Расскажи, что входит в обязанности тестировщика?
— Основная задача — поиск проблем и проверка работоспособности продукта. В ряде случаев еще и рекомендации по его улучшению.
Существуют разные направления тестирования. Есть низкоуровневый вариант — юнит-тестирование (работа с отдельными модулями исходного кода. — Прим. авт.). Дальше идет функциональное тестирование — работа с интерфейсами систем. На него похоже и автоматизированное тестирование. Ручное тестирование отрабатывает и проверяет автоматизированные программы. Юзабилити-тестирование направлено на проверку максимального удобства клиента при использовании продукта.
Я отвечаю за нагрузочное тестирование. Наша основная задача — это проверка соответствия системы определенным требованиям, в основном производительности.
— Насколько принципиальна разница между направлениями? Можно ли преуспеть, переходя с одного на другое?
— Я считаю, что все зависит от интереса человека. Насколько он готов развиваться в разных областях тестирования. Специфика самой области здесь не очень важна. Хотя в случае с нагрузочным тестированием необходимо серьезное погружение.
— Назови три качества, которыми должен обладать хороший тестировщик.
— Во-первых, готовность работать с продуктом, который создали другие люди. Причем даже с первичной версией, вне зависимости от того, насколько она плохая. Бывает, что достается ужаснейший код и каждый день ты вынужден работать с ним. Это не доставляет удовольствия.
Во-вторых, готовность к рутине. Тестировщику часто приходится проходить по 50 раз одно и то же. Нужно быть готовым на протяжении длительного времени целенаправленно и сосредоточенно работать с одним и тем же, причем в рамках узкого направления.
Поэтому то, чем занимаешься, нужно или любить, или полюбить. Даже если это рутина.
В-третьих, нужно принять, что часто переключаться не получится. Очень многие воспринимают тестирование как первый этап: сначала ручное, функциональное тестирование, потом автоматизация, а после — разработка. Но этот переход не всегда срабатывает. И у меня был такой опыт. В определенный момент мне казалось, что в нагрузке достиг всего и надо двигаться в разработку. Но через три дня работы понял, что это точно не мое.
— И все же мнение, что тестирование — это промежуточная локация перед разработкой (из-за низкого порогового уровня на входе в ИТ), очень популярное. С другой стороны, тестирование становится самостоятельным ИТ-направлением, активно развивается, и люди стремятся реализовать свою карьеру именно тут. Как происходит на самом деле?
— Я бы сказал, что оба мнения имеют право на существование. Может быть, звучит немного амбициозно, но не исключаю того, что когда-то снова окажусь в разработке. Сейчас мы пишем собственный продукт, предназначенный для тестирования. Я управляю разработкой инструмента для нагрузочного тестирования — «Циклон», а мой коллега Николай Стрельцов — для автоматизированного пишет с командой инструмент «Хамелеон». Мы занимаемся этим если не каждый день, то точно каждые три дня. Тоже прикасаемся к коду.
С другой стороны, как и пару лет назад, сейчас я уверен, что моя область интересная и нужная. Тестировщики тоже создают код. Да, это не продуктовый код, который в итоге продается, а код для тестирования. Но, по сравнению с разработкой, в тестировании мало специалистов, которые могут написать его грамотно, а потом еще и правильно использовать его в работе. Однако обладающий этим навыком профессионал-тестировщик может дать фору любому разработчику.
— В чем преимущества твоей профессии?
— Я скажу только о своей области. Специфика проектов по нагрузочному тестированию в том, что ты сам волен выбирать, как долго ты хочешь их тестировать. Как мы работаем на новом проекте: прибежал, разработал, протестировал, убежал, залил в gitHub исходники. Это здорово, потому что нет рутины на уровне кода, каждый раз новые задачи.
Знаю человека, который шесть лет тестировал одну и ту же систему в нагрузочном тестировании. Я бы, наверное, так не смог. Когда я достигаю какой-то планки, задача перестает быть интересной, хочется чего-то нового.
— Расскажи, как ты пришел в тестирование?
— Я закончил физический факультет МГУ и после выпуска по просьбе друга пытался делать сайт. Со временем в нем пропала надобность, да и мне это стало не очень интересно из-за фронт-разработки. Какое-то время даже работал курьером: развозил левую китайскую косметику MAC и Bobbi Brown.
В течение этого времени получил несколько предложений с HeadHunter, но самые лучшие варианты пришли от моих сестер. Одна предложила пойти стажером в компанию, внедряющую SAP, другая — устроиться тестировщиком в компанию «Аплана Софтвер» («Аплана Софтвер» в 2019-м году стала частью IBS и теперь называется IBS Appline).
Работа в «Аплане» меня привлекла краткосрочностью проектов. На собеседовании обозначили два направления: поработать две недели на проекте по ручному функциональному тестированию или месяц — по автоматизированному. Второй вариант мне показался интереснее. Подумал, что, во-первых, получу больше денег, во-вторых, скорее всего, поработаю с кодом. Мне там понравилось, и я втянулся.
Образование тестировщика
— Без каких знаний тестировщику не обойтись?
— Расскажу о нагрузочном тестировании. Это звучит как штамп, но необходимо аналитическое мышление, способность погружаться, усидчивость. Пригодятся понимание в алгоритмах или технологиях, умение применять их на практике. Задатки программирования должны быть освоены обязательно. Я начинал с C++, а Java была у меня еще в школе, но я ее тогда практически не знал.
— Есть ли у тестировщиков свои профессиональные мероприятия, конференции, форумы?
— Сейчас, наверное, таких почти не бывает. Я участвую только во внутренних. Например, мы у себя регулярно проводим круглые столы, хакатоны. Дважды выступал с докладами на международной конференции SQA Days, которая проходит раз в полгода.
— Тогда как ты поддерживаешь свой уровень? Может, что-то посоветуешь?
— Я рекомендую никогда не забывать про программирование. Раньше я считал, что нужно писать код максимально просто и быстро. Пусть технологии будут 2002 года, но код должен быть всем понятен.
Но однажды я увидел, что не понимаю код, который пишет моя команда по разработке инструментов. Я понял, что устарел, и после этого мое мнение сильно изменилось. Пришлось восполнять пробелы и учиться, потому что нагрузка тесно связана с программированием. Да и автоматизация тоже. При этом в программировании нужно быть постоянно в тренде, поскольку технологии быстро развиваются и устаревают.
— Как ты считаешь, есть ли необходимость в профессиональных сертификатах?
— Я бы выделил здесь два момента. Во-первых, такие документы являются бонусом для компании, в которой работает сотрудник, — это большой плюс для продаж. Иногда, чтобы выиграть конкурс на определенные проекты, просто необходим набор сертификатов. Выигрывает та компания, у которой больше всего инженеров с подтвержденной квалификацией.
Во-вторых, сам по себе экзамен это, с одной стороны, формальность, с другой — такая проверка может стать для тебя индикатором собственных пробелов в знаниях. Еще сертификат можно у себя дома повесить, прибить гвоздиком к стенке — для кого-то это значимо.
Советы будущим тестировщикам
— Что ты можешь посоветовать тем, кто хочет стать тестировщиком?
— Нужно любить свою работу и свое направление. Специалистов в нагрузочном тестировании очень ценят на проектах, потому что в нашей области никто не разбирается. Большой процент разработчиков в принципе не умеют пользоваться этим направлением и часто даже не касаются его.
Советы касаются практики, поэтому разделю их по областям, для автоматизации и нагрузки. Я могу ошибаться, но, по сути, сейчас мы переживаем эру автоматизации. Чтобы понять, что это такое, нужно прикоснуться не к автоматизированному тестированию, а к ней самой в целом.
Например, мой друг хотел пойти на музыкальный фестиваль. При этом билеты моментально разлетались, поймать их было практически невозможно. И он написал скрипт, который помог ему это сделать — по сути дела, кликал за него кнопку «купить» с момента открытия продаж.
Проще всего, да и нагляднее, можно войти в тестирование через автоматизацию. Например, погуглить, что такое Selenium WebDriver, и изучить стандартные действия. Вы открываете сайт, заполняете несколько поисковых запросов. Но вместо того, чтобы делать это все вручную, можно нажать «выполнить» и за счет программы дойти до этого места.
— А что посоветуешь тем, кто хочет в нагрузочное тестирование?
— Для знакомства с нагрузочным тестированием достаточно браузера, ничего дополнительного устанавливать не требуется. Любой человек может сделать это у себя дома. Конечно, чтобы развиваться в нагрузке, нужно приложить много усилий, но для старта достаточно обычного браузера.
Я бы порекомендовал посмотреть, какие запросы он отправляет, — это связано с протоколом http. Можно посмотреть инструмент разработчика в браузере, либо почитать про него. Во время интернет-серфинга люди приходят на сайт и кликают по вкладкам. Все эти запросы отображаются в браузере, их все можно отследить. Инструменты нагрузочного тестирования позволяют это отобразить так же, как в браузере, но, кроме того, сохранить и тут же сделать мини-программку. Она будет эмулировать ситуацию, как будто пользователь зашел в браузер и выполнил какие-то действия. Дальше просто остается выбрать количество пользователей, действующих одновременно: один, два, можем и тысячу сразу.
— Что скажешь о выпуске Дудя про Кремниевую долину? Можно ли такое сделать в России?
— Меня порадовало, что для большинства людей в долине деньги — это инструмент. Они дают возможность что-то реализовать: привлечь дополнительную команду людей, закупить оборудование, не экономить на маркетинге. Там четко прозвучало, что Кремниевая долина — это маленький мир для людей, которые хотят изменить нашу жизнь, привнести что-то новое, в том числе технологии. Это здорово, это очень круто. С точки зрения изменений это в принципе самое интересное, чем вообще можно заниматься.
Реально ли это в России? Мне кажется, что в настоящий момент нет. У нас любят зарабатывать деньги, а там — внедрять и придумывать что-то новое. Деньги для них скорее вторичны.
Было бы здорово, если бы у нас был развит подобный институт, занимающийся инновацией ради инновации, а не ради чего-то еще.