В нашей рубрике "Войти в IT" мы уже писали про таких специалистов этой сферы, как тестировщики. Мы упомянули о ручных и автоматизированных тестировщиках, разобрались в вилке зарплат. И даже побеседовали с молодым специалистом, который из тестировщиков перешёл в разработчики.
Сегодня вместе с нашим экспертом, сооснователем и генеральным директором IT-компании Effective Сериком Бейсеновым мы разбирались, можно ли зайти в тестирование с нуля и как внутри него можно развиваться.
Многие уверены, что в IT-сферу легко можно войти, имея мало опыта, именно с позиции ручного тестировщика. Но здесь всё не так просто, как может показаться на первый взгляд.
- Разработка программного обеспечения - сложный инженерный процесс. Давайте вместе подумаем, какой ещё сложный инженерный процесс может быть вообще. Например, построение самолета. Может ли специалист, который будет тестировать этот самолёт, быть с нулевыми знаниями в этом вопросе? Я бы в таком самолёте не хотел лететь. Я бы тестировщика называл инженером по качеству. Для инженерных сложных систем человек, который их проверяет, должен, безусловно, обладать чуть ли не бо́льшим объёмом знаний, чем тот, кто разработал этот продукт. Так и в IT-тестировании. С другой стороны, обеспечение качества - это не один человек, а, как правило, отдел. И если система выстроена чётко, и на одном из этапов проверку может делать человек с меньшей подготовкой, то порог входа в тестирование гораздо ниже. Он становится частью механизма, где все шестерёнки крутятся и каждый выполняет свою работу, - считает Серик Бейсенов.
Выходит, что зайти с нуля, действительно, можно, но при условии, что в компании работает целый отдел тестировщиков разного уровня и с разным набором компетенций, чтобы новичок мог выполнять самую простую работу. Должен быть отдел, где ты - кирпичик, выполняющий элементарные задачи. При этом наш эксперт признаёт, что порог входа в тестировании однозначно ниже, чем в программировании.
- Для того чтобы делать даже простую полезную работу, будучи программистом, объём знаний надо иметь больший, даже в выстроенной системе. Но в конечном счёте надо быть человеком, который понимает, как этот "самолёт" построен, чтобы проверить, насколько он хорошо построен, насколько качественно он работает. И быть человеком, который создаст систему, придя в которую даже человек с нуля обеспечит качество проверки.
Серик, который почти 20 лет своей жизни посвятил миру IT, начав свой путь с ручного тестирования, убеждён, что без фундаментальной базы знаний работать будет тяжело. Бывают исключения, когда "звёзды сошлись", и тогда сарафанное радио начинает распространять, что в айтишку можно легко и просто "залететь" с тестирования, но на то такие ситуации и исключения, что встречаются редко. Минимальный набор профильных компетенций необходим, равно как и логика, математическое и аналитическое мышление.
Хорошо, так или иначе ты вошёл в IT через тестирование, и что же дальше? Стремиться попасть в разработчики, прокачивать себя в ручном или автоматизированном тестировании? На самом деле профессия тестировщика не ограничивается только этими тремя составляющими. Для того чтобы понять, как и куда развиваться дальше, надо понять, какие вообще бывают роли и подроли в команде тестирования.
- Начинается всё с мануального тестировщика - это человек, который ручками проверяет систему по заготовленным сценариям. Он нажимает кнопку, она выглядит (или нет) должным образом и так далее - проверил. Кто-то за тебя это написал, а ты просто выполняешь действие и фиксируешь. Это самый, наверное, первый этап, на который заходит тестировщик, - поясняет Серик. - Второй этап - это придумывать эти самые тесты. Как правило, сценарий пишет тест-дизайнер. Он пишет проверки, которые нужны, чтобы показать, корректно или нет реализована система. Тут важно иметь аналитический склад ум. Чтобы не проверять бесконечно одно и то же, есть инженерный подход, именуемый системой крайних точек. Это когда система проверяется не на всём многообразии данных, а только на самом маленьком, среднем и каком-то большом. Предполагая, что всё, что находится между этими граничными значениями, работает примерно так же, как и они. Тест-дизайнер, зная эти правила и имея в запасе ещё целый ряд подходов, проектирует проверки.
В идеале количество проверок, которые докажут качество системы, должно быть минимальным, чтобы сократить время, а значит сэкономить деньги. Итак: у нас есть ручной тестировщик, тест-дизайнер. Так в каком направлении двигаемся дальше по дороге тестирования?
- Ещё есть тест-аналитик - проектирует, анализирует требования ещё чуть детальнее, чем тестировщик, а также проверяет, какие требования важны, какие менее важны для бизнеса. Он эти данные передаёт тест-дизайнеру или сам работает дальше с ними. И есть человек, который управляет всем этим процессом - тест-менеджер. Он говорит: ты сегодня протестируй это, ты протестируй то. И ведёт большой влог, в котором фиксируется, что проверено, а что ещё нет, чтобы в любой момент сказать руководству: "Система проверена на 60 %. Ещё нужно столько-то дней". Это же бизнес, а бизнесу важны сроки. Он ведёт процесс в соответствии со сроками, бюджетами, объёмами работ. Управляя этими тремя составными, менеджер делает так, чтобы максимальное качество было выполнено за минимальное время и минимальный бюджет.
Как мы помним из прошлых наших материалов, ещё есть автоматизированные тестировщики - программисты в тестировании. В этой специализации в свою очередь можно выделить функциональное автоматизированное тестирование. Эти специалисты заменяют самого первого во всей цепочке - кодом выполняют работу, которую тот делает вручную. Второе направление - это нагрузочное тестирование или тестирование производительности. Задача этих специалистов - проверить, чтобы система работала под определёнными нагрузками. Важно, чтобы система, в которую могут войти сразу все пользователи интернета, выдержала нагрузки и по количеству людей, и по объёму данных, которые в ней хранятся.
- В некоторых командах могут быть люди, которые занимаются непосредственно подготовкой тестовых данных. То есть не просто проверять, а заблаговременно подготовить специальные данные, на которых система себя так же предсказуемо будет вести. Например, система, которая убирает эффект красных глаз. Вот этому человеку надо подготовить большое количество фотографий с разными оттенками красных глаз, чтобы система справилась со своей задачей, - добавил Серик Бейсенов. - Исходя из того многообразия, которое есть в мире тестирования, рост возможен совершенно в разных направлениях.
Есть ещё отдельный вид - тестирование безопасности. По сути, этим занимается человек с хакерским складом ума. Он по определённым алгоритмам, понятным правилам проверяет систему на безопасность и защищённость от известных внешних типов угроз, работает таким внутренним хакером, который пытается взломать систему. Это особенно актуально для банковских и других защищённых систем.
- Получается целый мир разных ролей. Даже в тестировании можно выбрать то, что тебе интересно и стать экспертом мирового уровня в любой из тех ролей, о которых я рассказал.
Помимо этого можно перейти в соседний блок - из тестирования переключиться в менеджмент, аналитику, разработку. Менеджмент тоже бывает разным: людей, денег, проектов. Можно расти в каком угодно направлении, надо только желание постоянно учиться, узнавать новое и прокачивать имеющиеся навыки.
- По моему опыту, тестировщики - это люди, делающие самые выдающиеся карьеры. Разительные отличия от того, где он был 20 лет назад и где он сейчас оказался. Потому что вход в сферу достаточно широкий. Ты находишь то, что тебе интересно, и чётко понимаешь, что именно тебе подходит, но при этом имея правильный хороший фундамент. Разработка в этом плане более узкая, скупая. Люди приходят, пишут код, и для них кажется, что код - основа всего. Они не видят этот мир. А тестировщики всегда приходят со стороны. По сути, они первые пользователи той системы, которую разрабатывают программисты. Они лучше всех понимают систему, процесс. Знают, что качество продукта и продукт - это не только программист, который его написал, а целый комплекс мероприятий, которые надо делать. И соответственно, они лучше всех понимают, как этим большим процессом управлять, как его видоизменять, - уверен наш эксперт.
Важно понимать, что порог входа может быть низким, но при этом здесь огромная конкуренция, высокий уровень "шума", и ещё надо попробовать выделиться из этой массы людей. Для того чтобы сделать качественный шаг вперёд, надо достигнуть того же уровня по фундаментальным знаниям, как у программиста. Так что рано или поздно для развития любому тестировщику придётся подключить фундамент.
- По моей оценке, фундамент - это год адской работы и два года средней работы над собой. Первые два года учёбы ещё надо пройти, пропустить через себя. Хочется быстрее, но это невозможно, - резюмировал Серик Бейсенов.
Больше материалов о том, чем живут и дышат айтишники и с чем они ежедневно сталкиваются, читайте в нашей рубрике "Войти в IT". Там же вы найдёте историю одного автотестировщика, который даже не помышлял работать в сфере информационных технологий, когда учился на радиотехника.
Изображения созданы с помощью Midjourney