«Грамотный тестировщик может дать фору любому разработчику в написании кода»

Сегодня 9 сентября, День тестировщика. По этому случаю публикуем интервью с руководителем направления нагрузочного тестирования в IBS Тимуром. Тимур рассказал о специфике работы в этой перспективной области и о том, как стать успешным специалистом. С Тимуром беседовала Ольга Панькова, наш специалист по рекрутингу.

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

Чем занимается тестировщик

— Расскажи, что входит в обязанности тестировщика?

— Основная задача — поиск проблем и проверка работоспособности продукта. В ряде случаев еще и рекомендации по его улучшению.

Существуют разные направления тестирования. Есть низкоуровневый вариант — юнит-тестирование (работа с отдельными модулями исходного кода. — Прим. авт.). Дальше идет функциональное тестирование — работа с интерфейсами систем. На него похоже и автоматизированное тестирование. Ручное тестирование отрабатывает и проверяет автоматизированные программы. Юзабилити-тестирование направлено на проверку максимального удобства клиента при использовании продукта.

Я отвечаю за нагрузочное тестирование. Наша основная задача — это проверка соответствия системы определенным требованиям, в основном производительности.

— Насколько принципиальна разница между направлениями? Можно ли преуспеть, переходя с одного на другое?

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

— Назови три качества, которыми должен обладать хороший тестировщик.

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

Во-вторых, готовность к рутине. Тестировщику часто приходится проходить по 50 раз одно и то же. Нужно быть готовым на протяжении длительного времени целенаправленно и сосредоточенно работать с одним и тем же, причем в рамках узкого направления.

Поэтому то, чем занимаешься, нужно или любить, или полюбить. Даже если это рутина.

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

— И все же мнение, что тестирование — это промежуточная локация перед разработкой (из-за низкого порогового уровня на входе в ИТ), очень популярное. С другой стороны, тестирование становится самостоятельным ИТ-направлением, активно развивается, и люди стремятся реализовать свою карьеру именно тут. Как происходит на самом деле?

— Я бы сказал, что оба мнения имеют право на существование. Может быть, звучит немного амбициозно, но не исключаю того, что когда-то снова окажусь в разработке. Сейчас мы пишем собственный продукт, предназначенный для тестирования. Я управляю разработкой инструмента для нагрузочного тестирования — «Циклон», а мой коллега Николай Стрельцов — для автоматизированного пишет с командой инструмент «Хамелеон». Мы занимаемся этим если не каждый день, то точно каждые три дня. Тоже прикасаемся к коду.

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

— В чем преимущества твоей профессии?

— Я скажу только о своей области. Специфика проектов по нагрузочному тестированию в том, что ты сам волен выбирать, как долго ты хочешь их тестировать. Как мы работаем на новом проекте: прибежал, разработал, протестировал, убежал, залил в gitHub исходники. Это здорово, потому что нет рутины на уровне кода, каждый раз новые задачи.

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

— Расскажи, как ты пришел в тестирование?

— Я закончил физический факультет МГУ и после выпуска по просьбе друга пытался делать сайт. Со временем в нем пропала надобность, да и мне это стало не очень интересно из-за фронт-разработки. Какое-то время даже работал курьером: развозил левую китайскую косметику MAC и Bobbi Brown.

В течение этого времени получил несколько предложений с HeadHunter, но самые лучшие варианты пришли от моих сестер. Одна предложила пойти стажером в компанию, внедряющую SAP, другая — устроиться тестировщиком в компанию «Аплана Софтвер» («Аплана Софтвер» в 2019-м году стала частью IBS и теперь называется IBS Appline).

Работа в «Аплане» меня привлекла краткосрочностью проектов. На собеседовании обозначили два направления: поработать две недели на проекте по ручному функциональному тестированию или месяц — по автоматизированному. Второй вариант мне показался интереснее. Подумал, что, во-первых, получу больше денег, во-вторых, скорее всего, поработаю с кодом. Мне там понравилось, и я втянулся.

Образование тестировщика

— Без каких знаний тестировщику не обойтись?

— Расскажу о нагрузочном тестировании. Это звучит как штамп, но необходимо аналитическое мышление, способность погружаться, усидчивость. Пригодятся понимание в алгоритмах или технологиях, умение применять их на практике. Задатки программирования должны быть освоены обязательно. Я начинал с C++, а Java была у меня еще в школе, но я ее тогда практически не знал.

— Есть ли у тестировщиков свои профессиональные мероприятия, конференции, форумы?

— Сейчас, наверное, таких почти не бывает. Я участвую только во внутренних. Например, мы у себя регулярно проводим круглые столы, хакатоны. Дважды выступал с докладами на международной конференции SQA Days, которая проходит раз в полгода.

— Тогда как ты поддерживаешь свой уровень? Может, что-то посоветуешь?

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

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

— Как ты считаешь, есть ли необходимость в профессиональных сертификатах?

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

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

Советы будущим тестировщикам

— Что ты можешь посоветовать тем, кто хочет стать тестировщиком?

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

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

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

Проще всего, да и нагляднее, можно войти в тестирование через автоматизацию. Например, погуглить, что такое Selenium WebDriver, и изучить стандартные действия. Вы открываете сайт, заполняете несколько поисковых запросов. Но вместо того, чтобы делать это все вручную, можно нажать «выполнить» и за счет программы дойти до этого места.

— А что посоветуешь тем, кто хочет в нагрузочное тестирование?

— Для знакомства с нагрузочным тестированием достаточно браузера, ничего дополнительного устанавливать не требуется. Любой человек может сделать это у себя дома. Конечно, чтобы развиваться в нагрузке, нужно приложить много усилий, но для старта достаточно обычного браузера.

Я бы порекомендовал посмотреть, какие запросы он отправляет, — это связано с протоколом http. Можно посмотреть инструмент разработчика в браузере, либо почитать про него. Во время интернет-серфинга люди приходят на сайт и кликают по вкладкам. Все эти запросы отображаются в браузере, их все можно отследить. Инструменты нагрузочного тестирования позволяют это отобразить так же, как в браузере, но, кроме того, сохранить и тут же сделать мини-программку. Она будет эмулировать ситуацию, как будто пользователь зашел в браузер и выполнил какие-то действия. Дальше просто остается выбрать количество пользователей, действующих одновременно: один, два, можем и тысячу сразу.

— Что скажешь о выпуске Дудя про Кремниевую долину? Можно ли такое сделать в России?

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

Реально ли это в России? Мне кажется, что в настоящий момент нет. У нас любят зарабатывать деньги, а там — внедрять и придумывать что-то новое. Деньги для них скорее вторичны.

Было бы здорово, если бы у нас был развит подобный институт, занимающийся инновацией ради инновации, а не ради чего-то еще.

0
Комментарии
-3 комментариев
Раскрывать всегда