Чем занимается техлид-тестировщик в InDriver?

Роман Орлов рассказывает о своей профессии

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

Роман Орлов, 32 года

Образование: МИЭТ
Профессия: тестировщик
Должность: техлид
Компания: InDriver
Отдел: автоматизация тестирования
В SkillFactory: готовил модули для курса «Автоматизация и тестирование на Python»
Стек: C#, Vue, Nuxt, Java, Kotlin, Spring, Javascript, Python, Git, CI/CD

Чем занимается техлид-тестировщик

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

Техлид — это уровень в карьере тестировщика, на котором нужно понимать процессы разработки сайтов и приложений в компании, знать, как их тестировать, и создавать собственные сервисы для работы команды. Я работаю на языке Kotlin — он очень похож на Java, но имеет свои плюсы в синтаксисе. Например, в нем есть null-безопасность — нет ошибок, вызванных пустыми значениями переменных.

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

Вообще, техлид продумывает архитектуру проекта тестирования: как лучше организовать тесты, как писать код, какие сервисы использовать, как оценивать качество кода и сделать тестирование удобным. Я поддерживаю API-тесты (поиск ошибок в связях разных систем), UI-тесты (проверка графического интерфейса).

Рабочее место тестировщика
Мое рабочее место: после работы иногда веду стримы и играю в файтинги

Как я попал в профессию

По образованию я физик, изучал нанотехнологии в МИЭТ. Программированием я увлекался с 7 класса, много читал и решал задачи на Pascal. Перед выпускными экзаменами увлечение пришлось отложить: я решил получать высшее образование по физике. У моей школы был договор с МИЭТ — можно было просто поступить по олимпиадам. В институте я продолжил программировать, но физиков учат базовым вещам: С++ и основам Linux. Первая серьезная задача по программированию была у меня на практике в научной организации. Там нужно было перевести вычисления для научных разработок с процессора на видеокарту: для этого я написал модуль на С++.

Хотя я закончил бакалавриат и магистратуру и поездил по научным конференциям с презентацией своих разработок, к науке меня не тянуло. Тогда я решил вернуться к увлечению программированием и в 2012 году начал искать работу в IT. Мой друг предложил мне пойти тестировщиком в компанию Greensight. В то время она занималась созданием сайтов и корпоративных порталов.

В начале я даже примерно не представлял, чем занимаются тестировщики. Перед собеседованием я попытался подготовиться: погуглил, что такое тест-кейсы (наборы ситуаций использования приложения) и техники тест-дизайна (создания сценариев теста). Требования к специалистам в то время были не очень высокими: знания С++ и основ тестирования оказалось достаточно, чтобы меня взяли на работу джуном.

Как устроена работа тестировщиков

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

Есть два вида тестирования: ручное и автоматизированное. В первом случае тестировщик вручную запускает приложение и сайт и анализирует: правильно ли работают их функции и отображается внешний вид. Автоматизаторы пишут код — скрипты на Java, Python, JavaScript, Kotlin, которые сами проверяют исходную программу по тест-кейсам и выдают ошибки.

От ручного тестирования постепенно отказываются: в 2013 году в книге «Как тестируют в Google» IT-гигант призвал всех тестировщиков заниматься только автоматизацией. Сейчас автоматизацию используют во всех крупных российских компаниях.

Курс-симулятор

Тестировщик ПО 

Получите профессию QA-инженера с навыками автоматизации на Python. На курсе вы полностью смоделируете путь тестировщика ПО на практике.

Узнать больше

Как я стал автоматизатором

Первое время я занимался ручным тестированием и познавал профессию на практике. Например, я узнал:

  • как устроена архитектура приложений;
  • какие есть тестовые артефакты (планы, кейсы, чек-листы, диаграммы и т. д.);
  • как писать стратегию тестирования;
  • как вести документацию;
  • как вести тест-кейсы.

Хороших онлайн-курсов в то время еще не было, и основам тестирования я учился на портале Software-Testing.ru. Этот сайт до сих пор входит в список обязательных источников знаний для тестировщиков.

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

Тогда тестирование было новым для компании направлением. Вместе с разработчиками и техническими руководителями тестировщики продумывали, как встраивать тестирование в процессы компании. Greensight разрабатывает веб-приложения, и тестировать приходилось все: от верстки в разных браузерах до бэкенда (внутренней части работы приложения). Например, мы работали над платформой для финансовых аналитиков: приложение помогало им прогнозировать цены на рынке. Там я проработал почти четыре года, а в конце начал интересоваться автоматизацией тестирования: писал скрипты на Java и использовал плагин для браузера Selenium.

С тех пор я занимаюсь автоматизацией. Сначала я поработал в компании Wild Apricot, которая разрабатывает SaaS-платформы (программные услуги через интернет). Это была редкая в то время компания, где большая часть тестирования уже была автоматизированной. Там я научился работать с большими системами и вести всю документацию по тестированию. Также я работал в одном из банков, где мы тестировали микросервисы — небольшие программные модули, решающие отдельные задачи бизнеса. И в конце концов я пришел в InDriver, где мне предложили быть техлидом и разрабатывать архитектуру тестирования.

Как происходит процесс тестирования
Так выглядит процесс тестирования

Как устроен мой рабочий день

Четкой привязки ко времени работы у нас в компании нет: можно договориться на свое время прихода и ухода, главное — посещать командные митинги. С таких митингов или стендапов и начинается рабочий день: мы обсуждаем решенные вчера задачи, проблемы и планы на сегодня. Если проблемы есть, мы обсуждаем их, чтобы найти решение.

Задачи в течение дня поступают от внутренних и внешних заказчиков. Внутренние задачи — это наши сервисы, которые поддерживают автоматизацию и облегчают тестирование, например организация очередей на тестирование. Внешние — задачи на тестирование от разработчиков. Мы принимаем от них код, запускаем приложение и пишем для него тесты. Затем ручные тестировщики обрабатывают результаты тестов с ошибками. Поэтому нужно постоянно общаться с разработчиками и DevOps-инженерами (специалистами по синхронизации всех этапов создания приложения). Сама работа — это написание кода на Kotlin, анализ результатов тестов и обработка запросов от пользователей, которые находят ошибки.

мем о тестировщике
Любимый мем о моей профессии

Советы новичкам

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

В функциональное тестирование проще прийти с нулевыми знаниями. Но такие тестировщики сейчас ценятся на рынке меньше — на автоматизированное тестирование переходит все больше компаний.

Автоматизаторам нужно знать языки программирования — обычно это Java, Python, JavaScript или Kotlin. Но писать скрипты для автоматизации обычно проще, чем разрабатывать приложения и сайты. Иногда автоматизаторы уходят в разработку, и тогда им нужно учиться более сложному программированию. Вообще, учиться придется в течение всей карьеры — это непрерывный процесс.

Также можно пойти в соседние области, напрямую не связанные с программированием: например стать экспертом по продукту в техподдержке или продуктовым аналитиком. Те, кто продолжает развиваться в тестировании, становятся техлидами и тимлидами (менеджерами команды).

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

Профессия

Тестировщик ПО

Освойте профессия QA-инженера с навыками автоматизации на Python с нуля. 

  • Необходимая теория + много практики
  • Игровой формат симулятора
  • Настоящие заказы и проекты

Узнать больше

Промокод “BLOG10” +5% скидки

Блог SkillFactory
Добавить комментарий