Нагрузочное тестирование — плюсы и минусы профессии
Осень в работе инженера тестирования – это то самое время года, на которое чаще всего приходится пик работ (High Season), когда все наши клиенты резко вспоминают про нагрузочное тестирование и хотят срочно быстро до нового года все успеть.
Соответственно возникает резонный вопрос: «А кто же все это будет делать?». Рабочих рук не хватает, и надо их как-то где-то добыть. Кто такой нагрузочный тестировщик, что означает работа в Перфоманс Лаб, почему стоит идти именно в нагрузочное тестирование?
Вопрос: «Почему люди не стремятся в НТ, а хотят непременно в разработку?»
При том, что задачи, которые мы решаем, бывают часто и сложнее, и динамичнее.
Рассмотрим все плюсы и минусы профессии нагрузочного тестировщика.
Начнем с минусов
Недооцененность
Простой вопрос: почему одна работа приносит удовольствие, а другая кажется каким-то невнятным убийством времени? Человеку всегда приятно чтобы работа, которую он делает, была оценена по достоинству, т.е. если то, что ты делаешь, не ценится другими людьми, то и удовольствия это не приносит. Зачастую работа нагрузочного тестировщика недооценена, т.к. не может быть представлена наглядно.
Понимание, что без проведения нагрузочных тестов любая критичная ИТ система подвергается серьезному риску, и какая сложная стоит работа за, казалось бы, простыми тестами, бывает далеко не у всех заказчиков. Частенько о НТ вспоминают в самый последний момент, или просят провести «для галочки». Конечно, в таком случае слабая вовлеченность Заказчика или общая ситуация на проекте не позволяет раскрыть потенциал нагрузочного тестирования.
Борьба
Имеются и другие минусы: часто приходится сталкиваться с ограничениями, т.е. когда проект по НТ превращается в борьбу с внутренней бюрократией, включая выпрашивание доступов, вымаливание стендов, постоянные задержки при предоставлении логов или применении настроек. Да, в больших проектах НТ иногда не столько времени тратится на само тестирование, сколько на организационную работу. И если ты не являешься гуру деловой переписки и не знаешь кунг-фу эскалации проблем, может показаться, что никто тебя не понимает.
Сроки
Проблема номер три по частоте появления – нереальные сроки. В этой ситуации перфекционист внутри тебя говорит: «Нет, это надо сделать или хорошо или никак!», а сроки настолько сжаты, что можно сделать только как-нибудь. Тут приходится впрягаться по полной, иногда работать по вечерам и ночам.
Технологический взрыв
Иногда мы встречаемся с ИТ-системами, написанными на таких технологиях, что можно ужаснуться, как же это может работать в продуктивной среде? Как это поддерживалось и развивалось? И самая актуальная проблема: как это тюнить и исправлять? Собственные СУБД, самодельные протоколы, мертвые языки, отсутствие хоть какого-то понимания работы интеграции, отсутствие документации это – реальность.
Регресс
Но вот мы победили систему, дракон повержен, модель готова, НТ работает как часы. И начинаются серые будни, нужно катать одни и те же тесты, релиз за релизом, месяц за месяцем. Мы уже все знаем про систему, все ее слабые стороны и типичные глюки, все бизнес-процессы и вообще все. И хочется чего-то нового, но релизы идут и идут. Тут впору и заскучать.
Теперь про плюсы
НЕХ
Как это нагрузить? Как сделать этот эмулятор? Как подменить сертификат и обмануть сервер? Как деперсонализовать базу? В чем тут может быть проблема? Как это профилировать? Поначалу эти вопросы ставят в тупик даже ведущих инженеров, но к любой системе можно найти подход. Да, приходится погружаться, приходится импровизировать, постоянно пробовать новые инструменты. Это и хорошо, так как расширяет кругозор и позволяет двигаться вперед.
Разные заказчики — разные правила
Внутри нашей компании всегда можно сменить проект. Когда ты понимаешь, что эта система тебе «надоела» или этот заказчик тебя «достал» ты можешь сказать им: «Пока-пока!», и взять другой проект. Часто проекты по НТ достаточно короткие, но позволяют заглянуть за кулисы крупных корпораций и понять, что там за банка с пауками вместо рабочей обстановки.
Я поработал примерно в 50-ти наших банках и крупных компаниях, и теперь к сказкам из HR отдела отношусь весьма скептически. Реально нормальных компаний, где были бы профессионалы и фанаты своего дела, а не менеджеры по объявлению, играющие в богов, исключительно мало.
Технологии
В нашей компании, к технологическим наработкам относятся очень трепетно. Мы их храним, систематизируем, причесываем и пытаемся повторно использовать. Конечно в нагрузочном тестировании не так много чистой разработки, и мы не увлечены погоней за «чистотой кода» и правильными моделями разработки, но собственные плагины, эмуляторы, связки инструментов и всякие «маленькие» хитрости, конечно, имеются. Практически постоянно идут разные исследовательские работы, некоторые интересные идеи удается реализовать в реальных проектах, некоторые умирают, но мы всегда на острие и стараемся на несколько шагов обгонять наших конкурентов.
Инструменты
Все мы знаем, что для разработки есть огромное количество всяких IDE, бессчётное количество фреймворков и библиотек, а что же у нагрузочного тестировщика? Неужели это тот парень, который освоил LoadRunner и больше ничего ему знать не надо? На самом деле инструментов много, даже очень много, т.е. гораздо больше чем один человек способен освоить и испробовать. Каждый ведущий инженер в нашей компании знает и профессионально владеет не менее чем 2-мя инструментами НТ. А обычно 3-4 инструмента.
На самом деле это интересно, через некоторое время работы в НТ, у каждого формируются предпочтения. Но наша отрасль не стоит на месте, появляются новые версии и инструменты совершенствуются, появляются облачные сервисы и новые методологии. Постоянно приходится изучать и использовать новые «фишки», например, нагрузочное тестирование IVR, тестирование мобильных приложений или разбор терминальных протоколов.
Методология
Что касается теоретической части, она, как обычно, в процессе разработки. Вообще, на русском языке мало информации по нашей теме, но мы стараемся заполнять информационный вакуум: переводим интересные статьи и книги.
Недавно пробовали участвовать в разработке международной системы сертификации нагрузочных тестировщиков, но пока в отрасли нагрузочного тестирования много «тумана». Регулярно организуем курсы, участвуем в тематических конференциях, проводим «круглые столы» по нашей тематике. Также занимаемся развитием QA в России: проводим аудит процессов тестирования и разработки, консультируем клиентов. Таким образом, если вы занимаетесь нагрузкой, привыкайте к тому, что вам придется проповедовать, объяснять и продвигать вашу профессию.
Творческий Рост
Вообще в НТ попадают разные люди, но склад ума должен быть особенный. Совсем не обязательно быть true-программистом, иногда это даже будет мешать, но скилл копания в коде и любви к программированию необходим. Чаще всего мы берем человека после института и учим-учим-учим-учим. Это обучение проходит в боевой обстановке на реальных проектах. В среднем, от стажера до позиции ведущего инженера проходит 4-5 лет, за это время человек успевает поучаствовать в десятках различных проектов. По итогам такого обучения наш специалист знает о тестировании, ИТ-архитектуре, разработке и техническом пресейле, т.е. он в разы круче аналогичного специалиста заказчика, который просидел все это время на одном-двух проектах.
Комфорт работы
Для чего мы работаем? Чтобы добыть денег? Это, скажу по правде, плохой стимул. Хороший стимул – это когда ты занимаешься чертовски интересным делом, тебя окружают друзья, и за это ещё и платят. Многие называют это корпоративной культурой, наверное это так. Мы выросли из стартапа который занимался НТ, и по сути направление нагрузки у нас осталось первостепенным. Конечно, в компании из 300+ человек уже нельзя обойтись без бюрократии, но если вы работали когда-нибудь в крупной компании, то знаете, что большая часть усилий тратится не на работу, а на проворачивание шестеренок внутренней бюрократической машины. В этом плане наше производство – это услуги, и если появляется какая-то инновация, мы всегда идем навстречу сотрудникам и всячески их поддерживаем.
Американская тема
Не секрет, что последние пару лет наша ИТ отрасль плавно загибается, денег нет, но мы держимся. Наша компания держится не только на крупных российских заказчиках, но и пытается работать на международном рынке. Это довольно тяжело: сказывается разница во времени, отсутствие хорошего разговорного английского у технарей, другие методологии и стандарты работы, удаленка и проблемы с оценкой трудозатрат. Но мы потихоньку осваиваемся, уже есть команды работающие с американскими заказчиками на постоянной основе. Вообще наша цель «Захватить мир» становится на полшага ближе. Так что, если хотите подтянуть язык, попробовать геораспределенные проекты – это к нам.
R&D
Каждый айтишник в глубине души мечтает сделать свою соцсеть, и потом стать Цукербергом ну или Дуровым, на худой конец. Мы тоже всегда мечтаем, и хотим сделать, сделать свой, идеальный инструмент нагрузочного тестирования. Что-то свое собственное, то, что удобнее и подходит для нас и наших проектов лучше всего. В разные годы эта мечта облекалась в разную оболочку, и получались разные инструменты. Некоторые из них выдержали проверку временем и используются как ноу-хау у наших клиентов. Если посмотреть на https://www.performance-lab.ru/testing-utilities, то там десятки разных полезных утилит. У нас постоянно идет внутренняя разработка, поэтому страничка регулярно обновляется.
Сезонность
Да, у нас в IT есть сезонность, как бы странно это не звучало. Зима — спим, весна — просыпаемся, лето — разминаемся, осень — работаем как черти. Обычно это зависит от наших заказчиков, т.к. чтобы внедрить что-то к новому году, надо очень активно тестировать, и пик приходится на октябрь-ноябрь. Но случалось, что и 31-го декабря, когда обычные люди уже собираются накрывать на стол, я проверял отчеты по нагрузочному тестированию перед отправкой клиенту. Осень — горячая пора в госсекторе (и не только), когда надо успеть обосновать бюджет на следующий год (эффективно распределив выделенные средства по текущим проектам), а для банков и ритейла важно успеть в пик продаж, возникающий перед новогодними праздниками. За полторы-две недели до нового года обычно наступает фриз, но QA все равно не дают отдохнуть, ведь длинные новогодние праздники – это отличный повод, чтобы отключить систему и внедрить какое-нибудь адское обновление.
Технический пресейл
Это тоже к нам. Да, каждый из ребят нашего направления понимает из чего состоят проекты, как их оценивать, и как их продавать, а также как проводить интервью с клиентом, как сформулировать цель тестирования, как определить трудоемкость и стоимость. То есть у нас нет такого, что мы не понимаем, что же мы продали и как теперь делать проект. Поэтому каждый инженер по производительности участвует в подготовке коммерческих предложений. А иногда он же и является потом исполнителем, и отвечает за качество перед заказчиком.
Итог
Итак, подводя итог, хочется сказать, как напутствие тем, кто только выбирает свое призвание в мире IТ. Любая работа интересна и важна, и по большей части ценны не какие-то конкретные навыки и конкретные технологии, а умение быстро в эти технологии погружаться и кругозор. Если вы хотите преуспеть – вам надо быть чертовски работоспособным, не бояться потратить часть энергии впустую, не боятся браться за сложную работу, не боятся браться за то, что не умеешь, и то, что поначалу кажется каким-то адом, через полгода будет восприниматься сущей ерундой. Ведь за что, по большому счету, человеку платятся деньги – за опыт, ответственность и работоспособность. И все эти три пункта не прокачиваются в тепличных условиях.
И да, у нас тяжело и весело, приходите к нам!