Карьерный путь тестировщика: от студента до руководителя отдела
Рассказ о пути развития специалиста, а также полезные ссылки на информацию, которая помогла в этом развитии.
3К открытий4К показов
Александр Буйко
руководитель отдела обеспечения качества компании «Синимекс»
Меня зовут Александр Буйко и в этой статье хочу рассказать, как я прошёл свой путь от студента-тестировщика до руководителя отдела обеспечения качества в компании «Синимекс». Также в статье вы найдёте полезные ссылки на информацию, которая мне помогла на пути моего развития.
С чего всё началось
Ещё с самого детства я увлёкся компьютерами и всем, что связано с IT. Когда мне было 5 лет, родители приобрели первый компьютер на Win98. И конечно же, первое знакомство началось с различных игр. Сначала родители приносили игры с работы на старых добрых дискетах (кто ещё помнит такие), а потом я стал частым посетителем магазинов, где продавались CD-диски.
На играх я не остановился. Было интересно, на что ещё способен компьютер, ведь на рабочем столе было много красивых и непонятных картинок. В один прекрасный момент на каждый мой вопрос по компьютеру начали отвечать «Разбирайся сам». Именно эта фраза стала толчком в сторону исследователя IT систем. Главным порывом стал поиск ответов на вопросы «А что, если…?».
Вторым толчком к профессии тестировщика стали фильмы про программистов, в т.ч. потрясающие «Джонни Мнемоник», «Хакеры», «Взлом», «Кто Я» и другие фильмы для хакеров.
Третьим толчком к профессии стали уже онлайн игры. В условиях конкуренции с другими я всегда оказывался средненьким игроком. Будучи уже школьником, я очень остро реагировал на проигрыши и в какой-то момент открыл для себя чит-форумы на которых публиковались различные уязвимости. С этого момента я начал учится искать ошибки в играх. Если в какой-нибудь игре удавалось найти ошибку, я смело делился ей со службой поддержки, периодически получая за это бонусы.
Университет
К 11 классу стало понятно, что хакером становиться опасно, однако продолжать жить в IT всё ещё хочется. Так я поступил в РУДН на специальность «Фундаментальная информатика и информационные технологии».
Есть мнение, что учёба в университете – это бесполезная трата времени, а полученные знания очень сложно применить на практике. Могу сейчас смело заявить, что в информационных технологиях всё не так. На первых курсах студентам преподаются математические предметы, которые становятся фундаментом будущих знаний. Например, «Комбинаторика» становится базой для построения тест-кейсов и формирования тестовых данных (подробнее тут). «Теория графов» поможет составить тест-кейсы в системах со множеством переходов, а также отследить покрытие различных случаев (пример с хабра). «Логика» поможет составлять корректные условия. Tproger подготовил хорошую статью на этот счёт.
Безусловно, «Основы программирования» помогают научиться писать код и понимать, как он исполняется, а «Основы администрирования» научили работать с командной консолью и не бояться её.
В университете сделал для себя важные выводы:
- Понимание основ алгоритмов важнее, чем знание любого языка программирования.
- Полученные знания нужно применять на практике, даже если этого не требуют.
- Любопытство иногда неожиданно выручает. Например, даже прокрастинируя на хабре, можно получить знания, которые через какое-то время пригодятся на практике (или помогут сдать зачёт).
- Знание иностранных языков открывает широкие возможности для развития. Лучшие курсы сейчас можно найти в основном на английском языке.
Первая работа
На 3 курсе остро возникла мысль, что пора бы искать работу. Студенту порой сложно найти работу, особенно такую, чтобы и платили много и работать нужно было мало. В моём случае, выбор пал на различные онлайн биржи фрилансеров, на которых за скромные суммы нужно было выполнять примитивную работу, например, набор текста (что помогло мне освоить слепую печать) или UI-тестирование сайтов.
Считается, что тестирование – это самый простой путь в IT, и в этом нет ничего сложного. Отчасти, это утверждение верно, ведь это направление затрагивает и аналитику (то же написание тест-кейсов), и разработку (автоматизированное тестирование), и системное администрирование (тестирование разворачивания поставки). Однако, из-за того, что в тестировании пересекается множество областей, хороший специалист по тестированию и, тем более QA (в чём разница между тестировщиком, QC и QA) должен обладать очень широким кругозором знаний.
Первая настоящая работа и карьерная лестница
До поры до времени формат фрилансера меня устраивал, но было ясно, что это нестабильный и порой неблагодарный труд. Поэтому, получив диплом бакалавра и поступив в магистратуру, я задумался о поиске работы на полный рабочий день. В один прекрасный день, не успев даже подготовить резюме, зазвонил телефон и голос с того конца осторожно спросил, что я знаю о тестировании. Этот звонок стал полнейшим шоком для меня, даже начал грешить на слежку за мной (откуда они узнали?!). Оказалось, одногруппник устраивался в компанию «Синимекс» и на собеседовании он порекомендовал меня в качестве кандидата.
Мне назначили собеседование, которое я с горем пополам прошёл. Основные сложности возникали с формальными терминами и теорией тестирования, в голове была большая неструктурированная каша, которую я смог подучить за пару дней до собеседования. Начинающим рекомендую изучить материалы по теории тестирования. Так я получил свою первую официальную работу в должности «Младший специалист по обеспечению качества» и оказался в настоящем IT. Наша компания занимается заказной разработкой интеграционных решений и работает над десятками проектов. До того момента я очень отдалённо понимал, что такое эти «интеграционные решения» и как интегрируется ПО.
Первые две недели я занимался изучением всего, что только возможно и до куда я только мог дотянуться, благо материалов было предостаточно. Так получилось, что всё это время я был предоставлен только себе. С одной стороны, это сыграло на руку в смысле получения знаний. Первые пару дней голова буквально распухала от объёма полученной информации. С другой стороны, возникало много вопросов, на которые не кому было ответить. Благо, такая ситуация продолжалась не долго и меня назначили на первый проект, с которым мне очень крупно повезло. Это был проект разработки интеграционной платформы для крупного банка из ТОП-5 по России. На проекте было задействовано более 20 человек. Только команда тестировщиков состояла из 8 человек, которых возглавлял тест-лид, у которого я смог научиться многому. Тестировать приходилось как фронт веб-приложения, так и десятки сложных сервисов на бэкэнде. Также на проекте активно применялись авто-тесты, разработку которых доверяли даже новичкам под чётким присмотром тест-лида.
В сжатые сроки пришлось многое вспоминать, узнавать и изучать:
- как работать в системе Jira;
- как вести документацию и кооперироваться в Confluence;
- как валидировать XML по XSD и WSDL, находить данные по XPath;
- как отправлять HTTP запросы в формате JSON с помощью SoapUI и Postman;
- как находить данные с помощью SQL в PostgreSQL;
- как работать со внутренним инструментом тестирования Cinimex Test Tool;
- что такое менеджер очередей;
- что такое CI/CD и как настроить pipeline в Jenkins;
- что такое Git и зачем нужен git-flow;
- как с помощью регулярных выражений экономить целые дни своей жизни (например, в задачах поиска информации или замены данных в большом объёме данных);
- и многое другое.
В общем, получилась сборная солянка из всего, что только можно и всего, что должен знать и уметь хороший специалист. На жадном потреблении всего того массива информации я не останавливался и сразу же начинал применять всё на практике. Например, тестирование одного модуля (сервиса) занимало от 5 до 10 дней. После того, как я протестировал 2 сервиса, заметил, что приходится выполнять много монотонной и скучной работы (создавать файлы с похожими названиями, проверять маппинги, писать тест-кейсы с меняющимися словами). С помощью знаний Python, который удалось освоить в университете, за 2 дня написал скрипт, который помог сократить тестирование сервиса до 2-3 дней. Тестировщику достаточно было подготовить список сценариев в Excel, подготовить тестовые данные и запустить скрипт, который генерировал авто-тесты. Дальше достаточно было запустить сгенерированные тесты и бежать заводить дефекты в баг-трекинговой системе.
В какой-то момент меня заметил руководитель отдела и предложил провести внутренний семинар по моему «изобретению». Было очень приятно, когда ко мне начинали подходить старшие коллеги из отдела (с других проектов) за консультациями по внедрению подобных решений.
Первые полгода на первом проекте пролетели очень быстро, несмотря на серьёзные переработки, на которых я получал бесценный опыт (да ещё и сверхурочные за это получал). Только чудом это не повлияло на успеваемость в университете. После выхода проекта на продуктовую среду, команду начали частично сокращать и меня оставили в качестве тест-лида на проекте для поддержки работающего решения.
Дальнейший рост
В нашей компании два раза в год проводится процедура аттестации, на которой оценивают сотрудников. По итогам очередной аттестации меня повышают до «Специалиста по обеспечению качества» (уровень мидла). После повышения меня начинают загружать новыми проектами, и в какой-то момент приходилось параллельно работать на 4 совершенно разных проектах, на каждом из которых приходилось проводить различающиеся области тестирования: UI-тестирование, API-тестирование, тестирование запросов в БД и нагрузочное тестирование.
Параллельно, готовился к сертификации ISTQB базового уровня (рекомендую каждому начинающему специалисту изучить материалы сертификации).
Спустя ещё какое-то время мне начинали давать оценки сроков по тестированию на новых проектах. Дальше больше, начали доверять запуск тестирования с нуля. Я готов был участвовать в любой активности в отделе и за его пределами, т.к. видел, что проактивная позиция всегда даёт свои плоды. К примеру, в отделе проводился конкурс, на котором необходимо было написать такие авто-тесты, которые с одного клика разворачиваются на любой машине без настройки окружения. Решение напросилось само собой, конечно же нужно использовать docker (о котором я был наслышан). Долгие ночи работы с энтузиазмом и победа, в итоге, была у меня в кармане. К победе прилагалась бутылка шотландского виски от руководителя отдела (это, к слову, о мотивации персонала) и повышение до «Специалиста по автоматизированному тестированию» или «QA Automation Engineer».
Спустя очередной год я успел принять участие ещё в 6 проектах, на которых приходилось уже отрабатывать навыки важные для уровня Старшего/Senior специалиста, например:
- методики и процессы тестирования;
- архитектура построения авто-тестов;
- формирование и снятие метрик качества;
- тайм-менеджмент;
- управление командой;
- обучение новых сотрудников.
Дописав магистерскую работу, у меня высвободилось много времени, которое я начал посвящать работе. Руководитель отдела заметил мою активность, повысил меня до уровня старшего специалиста по обеспечению качества и начал привлекать к задачам по отделу, в т.ч. доверял поиск и техническое собеседование новых специалистов. Со временем я начинал выполнять всё больше и больше обязанностей, став фактически заместителем руководителя. Спустя ещё полгода мне уже доверяют проведение аттестаций сотрудников, и я еду в свою первую командировку… накануне объявления всеобщего «локдауна». Во время командировки узнаю, что руководителя отдела переманивают в очень крупную компанию, и он вскоре должен будет покинуть родную компанию «Синимекс» (для которого история в IT пошла по лестнице «тестировщик → аналитик → руководитель проекта → руководитель отдела», но это уже совсем другая история).
Меня рекомендовали на должность руководителя отдела, и передача дел отдела выпала на месяц «удалёнки». За этот непростой месяц мне удалось вникнуть в большинство нюансов работы руководителя, наладить необходимые контакты и даже поучаствовать в согласовании повышений сотрудников отдела. Спустя 3 месяца испытательного срока меня официально назначают на должность руководителя отдела обеспечения качества, на которой я остаюсь и по сей день.
Вместо заключения
По теме развития в области тестирования рекомендую ознакомиться со статьями:
3К открытий4К показов