От филолога до тестировщика: как войти в ІТ с нуля
Ко дню тестировщика «Рубрика» раскрывает секреты профессии и рассказывает, как ею овладеть с нуля.
Одна из легенд гласит, что 9 сентября 1947 ученые Гарвардского университета тестировали вычислительную машину Mark II Aiken Relay Calculator. И оказалось, что между контактами электромеханического реле застряла бабочка. Увидев это, одна из ученых — Грейс Хоппер — произнесла слово «bug» (с английского — «жук»), которое позже стало официальным термином, означающим компьютерную ошибку.
Бабочку извлекли и вклеили в технический дневник, сопроводя подписью «First actual case of bug being found» («Первый случай в практике, когда был обнаружен жук» — ред.). Этот факт положил начало использованию слова «баг» в значении «ошибка».
Впоследствии процесс обнаружения и устранения причин сбоя в работе компьютеров получил название debugging (дебаггинг, «наладка», дословно: избавление от жуков — ред.). А еще возникла профессия — тестировщик, от английского «test», то есть испытание.
Ко дню тестировщика «Рубрика» рассказывает истории двух тестировщиков: опытного профессионала, раскрывающего секреты профессии, и новичка, еще несколько месяцев назад считавшей, что IT — это исключительно для «технарей».
История Кости. Адвокат пользователя
Костя — Software Test Automation Engineer (или тестировщик-автоматизатор) в одной из ведущих украинских IT-компаний. Это означает, что его основная задача — создание программ (скриптов/инструкций), которые затем тестируют другие программы — автотеста.
«Автотест выполняет рутинную работу тестировщика. Скажем, сайт предусматривает регистрацию пользователя. Она уже есть, она работает, однако заказчик решил туда что-то добавить. И чтобы проверить корректность работы всей системы после нововведения, создается программа-тестировщик. Можно, конечно, проверить все и вручную, однако это займет неоправданно много времени на дистанции — если работать над проектом предполагается не один месяц и тестировать нужно будет много раз», — объясняет он.
Специализаций среди тестировщиков множество: кто-то отвечает за безопасность данных; кто-то за нагрузку на продукт: выдержит ли, скажем, сайт, если туда одновременно зайдет несколько миллионов человек; кто-то за функционал, например, работает ли определенная кнопка в комбинации с другими, и работает ли она вообще.
И хотя каждая из специализаций преследует свою конкретную цель — убедиться, что отдельные детали сайта, приложения или софта работают и делают это слаженно и т. п., — каждая из них в конечном итоге «заточена» на одно: удобство для пользователей в работе с продуктом.
«Тестировщик — это некий адвокат конечного пользователя. Соответственно, он должен ставить себя на место человека, который будет пользоваться сайтом или программой, и находить способы облегчения работы с ними», — говорит Костя.
Как работают тестировщики?
Работа над проектом начинается с озвучки заказчиком пожеланий. Затем они оформляются в четкие технические требования и передаются на выполнение команде.
Костя объясняет процесс работы тестировщика на примере создания новостного сайта.
«Заказчик указывает, где должны быть размещены новостная лента, быстрые и главные новости, а еще ему нужна, например, админка отдельно для редактирования материалов и отдельно — для рекламы. Ты смотришь на них, анализируешь, насколько это все реально выполнить, и сможет ли оно потом заработать как следует», — разъясняет он.
Потом начинается, собственно, работа. Задания выполняются по приоритетности: сначала создается новостная лента, затем к ней крепятся главные новости — и так вплоть до завершения.
Тестировщики включаются в работу сразу же, на самом старте проекта. Во-первых, определяют, как именно будут проводить тестирование. А во-вторых, отмечает Костя, определенные неисправности легче и дешевле исправлять еще при озвучивании требований заказчиком: «Ведь если баг вылезет уже на этапе пользователя, исправить это будет гораздо дольше и, что главное, дороже».
«Тестировщики постоянно спрашивают, почему решено, что что-то будет работать именно так, а не иначе, дают советы по улучшению функционирования, убеждают, что пользователь не поймет логики какого-либо действия, указывают на противоречивость в пожеланиях заказчика и т.д. Если что-то не будет работать, или продуктом будет очень сложно пользоваться — зачем его вообще делать?», — убежден он.
Лучше всего — проходить учебные курсы, организованные крупными компаниями
Костя стал тестировщиком, пройдя курсы, организованные компанией, в которой он сейчас работает.
«По окончании университета — а я являюсь инженером по электронике — полтора года я проработал инженером на кафедре ведущего технического вуза Украины, а потом мне подруга предложила пойти на бесплатные курсы нашей компании — в то время университет сотрудничал с компанией, и курсы проходили в лабораториях нашего университета. Мне было просто интересно послушать и попробовать что-нибудь новое. Так я стал тестировщиком», — рассказывает он.
Костя объясняет: многие крупные компании организуют на своей базе бесплатные учебные курсы и именно это их преимущество – поскольку студентов отбирают с прицелом на будущее трудоустройство.
«Это удобно — сразу для себя готовить молодых специалистов: так ты четко знаешь, к чему готовить человека, изучаешь его сильные и слабые стороны. С другой стороны, сами студенты получают почти 100% возможность остаться в крупной компании. Все довольны», — убежден он.
История Юлии. От филологини до тестировщицы
Сегодня Юля — junior QA Engineer в той же крупной американской IT-компании. Это означает, что ее опыт составляет менее 6 месяцев, однако он уже имеет определенные навыки для дальнейшего роста.
А до того, как стать тестировщицей, Юля была филологиней-переводчицей с итальянского и английского языков. И все было хорошо, пока перед ней не встала перспектива много работать и получать мало.
«На последней работе я занималась организацией и проведением международных экзаменов по английскому языку Cambridge. Однако когда моя руководительница уволилась, я была готова выполнять ее обязанности. Однако с условием, что мне дадут помощника — справиться со всеми задачами одной чисто физически было нереально. Помощника мне найти пообещали — но только через полгода. Так я решила закончить с переводческой деятельностью», — рассказывает Юля.
Еще больше в этой мысли ее укоренила ситуация на рынке труда.
Вариантов, где можно было не только машинально выполнять задачи, но и развиваться и получать новый опыт, было мало. Еще меньше было предложений с адекватной финансовой составляющей.
Так Юля решила уйти в IT.
Обучение с нуля
«Естественно, что мне, филологине, всю жизнь работавшей по образованию, IT казалось сугубо технической профессией. Однако здесь сработала поддержка родных», — делится Юля о первых шагах в освоении нового направления.
Сестра Юли рассказала ей о курсах, которые прошел в свое время Костя — бесплатных учебных программах по самым трендовым технологиям и направлениям.
Для того чтобы начать обучение, потенциальный студент должен пройти собеседование, затем выполнить тестовое задание, тогда еще одно собеседование, потом принятие на сами курсы. И уже после этого студентов распределяют по направлениям обучения в зависимости от их желаний.
«Там очень сложный отбор. Из 400 подавших заявку человек на курсы попало меньше ста», — рассказывает Юля.
Обучение проходило в течение 4 месяцев в режиме онлайн, продолжает она, были вечерние лекции, «после которых задавали практические задания, которые подробно разбирались на следующих занятиях».
«Еженедельно у нас был видеоразговор с нашей координаторкой, во время которого она не только рассказывал о специфике работы, но и отвечала на наши вопросы. Кроме того, во время этих разговоров мы начинали тестировать какую-то программу, решали логические задачи и т.д.», — описывает специфику обучения Юля.
В то же время она объясняет: особенностью и плюсом обучения на организованных крупными IT-компаниями курсах есть то, «что студенты практически со 100% вероятностью остаются там работать».
Правда, прием на работу в большинстве случаев происходит не автоматически после окончания учебы.
Во-первых, объясняет Юля, «ты проходишь еще одно собеседование — на этот раз уже для участия в конкретном проекте», а во-вторых, стоит быть готовым к тому, что такого собеседования придется ждать: «Скажем, меня взяли в резерв компании в декабре, собеседование для участия в обновлении интерфейса одного из сайтов я прошла в апреле, а полноценно работать начала только с мая — с трехмесячным испытательным сроком».
Первые шаги в профессии
Сейчас Юля — мануальная тестировщица. Это означает, что ее работа заключается в личной, «ручной» слежке за соответствием программы заявленным заказчиком требованиям.
«Вместе с командой и заказчиком мы обсуждаем требования к проекту, после чего начинаем собственно тестировать программу: определяем ее баги и даем отчет о дефектах. После исправления делаем повторное тестирование — чтобы убедиться, что все работает как следует», — рассказывает Юля.
Кроме мануальных тестировщиков существуют т.н. «автоматизаторы» — тестировщики, как Костя: со знанием языка программирования, которые создают автотест: скрипт, имитирующий взаимодействия пользователя с приложением, имея целью локализовать ошибки в работе программного обеспечения.
Юля объясняет: то, какой тип тестировщиков будет вовлечен в проект, определяется объемом заложенной в него работы. «Автоматизаторы подходят для долгосрочных проектов. Для коротких более эффективным является мануальное тестирование».
Карьерный рост
Тестировщики, как, впрочем, и остальные IT-специалисты, самостоятельно оценивают, насколько растут в профессиональном плане.
«Это интересная работа, каждый проект уникален, и ты постоянно учишься чему-то новому. У разных проектов разные требования, и если ты считаешь, что ты выросла из одних задач, то всегда можно поговорить с куратором, чтобы перевестись на другой проект», — рассказывает Юля.
Подобный подход практикуется и в отношении карьерного роста.
«Самой молодой» категорией являются джуниоры. Дальше — мидл и синьор специалисты. Самые высокие — лед-тестировщики.
«Чтобы перейти на следующий уровень, нужно пройти экзамен. Если не сдашь — через определенное время можно повторить. Как быстро человек может вырасти, зависит исключительно от него. Но в среднем, говорят, необходимо около двух лет работы, чтобы перейти на новый уровень», — объясняет Юля.
Инструкция для будущих тестировщиков
Стать тестировщиком могут все независимо от образования и предыдущего опыта. Однако для того, чтобы стать успешным тестировщиком очень важно быть, естественно, внимательным, а еще уметь читать документацию и смотреть на программу «глазами пользователя»: чтобы пользователям было удобно ею пользоваться.
Кроме того, по словам Юли, для скорейшего овладения навыками тестирования, «желательно знать английский язык на уровне В1, В2».
«Кому-то легче работать с финансовыми программами, кому-то — с юридическими или безопасностными. Все же индивидуально», — объясняет она.
Но главное, убеждает Юля, даже в процессе работы не бояться задавать вопросы и продолжать учиться: «Бывает, тебе кажется, что ты все правильно делаешь, а в итоге где-то выскакивает ошибка. Так что стоит постоянно спрашивать, даже если вопросы тебе кажутся бессмысленными. Ну и, конечно, нужно развиваться — проходить учебные курсы, смотреть профессиональные видео. Ведь IT-сфера развивается очень быстро. И чтобы всегда быть востребованным на рынке труда, нужно отслеживать все тренды».