Для специалиста в любой отрасли важно непрерывно развиваться и расти. Индустрии постоянно эволюционируют, требования к кандидатам ужесточаются, а конкуренция с каждым годом становится все острее. Особенно ярко это проявляется на перегретом рынке IT. Подробнее про это сегодня расскажет автор любимого курса по тестированию на Stepik — Тестирование REST API в Postman - легкий старт в автоматизацию, Давид Согоян.
Парадоксально, но чем более опытен специалист, тем больше времени он уделяет своему образованию и развитию. Это неудивительно, ведь чем выше его позиция в команде, тем больше ответственности и ожиданий ложится на его плечи.
Одной из распространенных ошибок в саморазвитии является акцент исключительно на технических навыках, оставляя без внимания важность soft skills. В этой статье мы рассмотрим ключевые направления роста для QA Engineer и объясним, почему важно развивать оба набора навыков.
Техническая экспертность
Одной из распространенных ошибок в саморазвитии является акцент исключительно на технических навыках, оставляя без внимания важность soft skills. В этой статье мы рассмотрим ключевые направления роста для QA Engineer и объясним, почему важно развив
Развитая техническая экспертность позволяет специалисту эффективно выбирать инструменты и подходы тестирования для оптимального решения задач команды.
Для QA Engineer можно выделить следующие векторы развития технической экспертности:
Общие компетенции и навыки:
- Теория тестирования: Понимание теоретических основ тестирования полезно для большинства IT профессий, а для QA — теоретические основы обязательны.
- Техники тест-дизайна: Владение различными техниками тест-дизайна позволяет проектировать качественные, оптимальные и эффективные тесты.
- Тестовые артефакты: Создание и управление тест-кейсами, чек-листами, баг-репортами, тест планами и матрицами покрытия.
- Знание основных протоколов: Понимание протоколов, таких как HTTP, является ключевым для тестирования веб-приложений и API.
Основные направления тестирования:
- Manual Testing: Ручное тестирование браузерных приложений и API.
- Web Testing: Специализация на тестировании браузерных приложений и API.
- Mobile Testing: Тестирование мобильных приложений, которое имеет свою специфику и требует отдельных навыков.
- GameDev Testing: Тестирование игр, часто разработанных на движках Unity или Unreal Engine. Базовое знание этих движков полезно для GameDev QA.
- Automation Testing: Автоматизация тестирования с использованием популярных языков программирования.
- Web Autotesting: Автоматизация тестирования веб-приложений и API.
- Mobile Autotesting: Автоматизация тестирования мобильных приложений.
- Performance Testing: Тестирование производительности, особенно актуальное в крупных компаниях с высоконагруженными сервисами.
- Security Testing: Тестирование на проникновение и белый хакинг для обеспечения безопасности приложений.
Изучение разработки:
- Языки и фреймворки: Изучение языка программирования и фреймворка, используемых в вашей команде, откроет доступ к написанию unit-тестов и участию в код-ревью. Это также поможет лучше понять процесс разработки и интеграции тестирования.
QA Engineer может развиваться как вертикально, так и горизонтально в зависимости от своих предпочтений и карьерных целей. Вертикальное развитие подразумевает специализацию в одном направлении, что позволяет стать экспертом в узкой области, например, в Performance Testing. Горизонтальное развитие предполагает расширение компетенций в нескольких направлениях, что позволяет быть универсальным специалистом и адаптироваться к различным задачам.
Инженерная Культура
Инженерная культура — это набор правил, ограничений и практик внутри команды или компании. QA Engineer вносит значительный вклад в развитие и поддержание инженерной культуры. Какие проблемы в инженерной культуре может заметить и решить QA Engineer?
Документация команды не ведется или не поддерживается:
Отсутствие актуальной документации усложняет понимание процессов и снижает эффективность работы команды. QA Engineer может драйвить создание и регулярное обновление документации, что поможет улучшить коммуникацию и обеспечить прозрачность процессов.
Продукт не покрыт автотестами или покрыт не оптимальным образом:
Недостаточное или неэффективное покрытие автотестами может приводить к увеличению количества багов и снижению качества продукта. QA Engineer может разработать стратегию автоматизации тестирования, выбрать подходящие инструменты и внедрить их в процесс разработки.
Тестирование начинается поздно:
Позднее начало тестирования может привести к выявлению критических багов на поздних стадиях разработки, что увеличивает затраты на их исправление. QA Engineer может предложить внедрение практики раннего тестирования, например, тестирования на этапах проектирования или декомпозиции.
Не определены и не формализованы критерии готовности задачи к работе и выполнения задачи:
Отсутствие четких критериев может приводить к недопониманию и снижению качества выполнения задач. QA Engineer может помочь в разработке и формализации этих критериев, что улучшит процесс управления задачами и повысит прозрачность работы команды.
Не определены или не формализованы метрики качества в команде:
Без четких метрик качества сложно оценить эффективность тестирования и качество продукта. QA Engineer может предложить набор метрик, таких как покрытие кода тестами, количество багов, время на исправление багов и другие, а также внедрить их сбор и анализ.
Большое количество багов доезжает до продакшена:
Большое количество багов на продакшене может свидетельствовать о наличии проблем в процессах разработки или тестирования. QA Engineer может выявить причины большого количества багов, проанализировать и предложить меры по улучшению процессов тестирования и контроля качества.
QA Engineer может заметить и решить проблемы в инженерной культуре, улучшая процессы внутри команды и компании. Работая над этими аспектами, QA Engineer не только способствует повышению качества продукта, но и развивается самостоятельно, приобретая ценные навыки и опыт.
Коммуникация
QA Engineer должен владеть сильными коммуникативными навыками и постоянно развивать их. Под сильными коммуникативными навыками подразумеваются следующие способности:
- Уважение к коллегам: Важно проявлять уважение к мнению других, умение выслушивать и принимать разные точки зрения. Это способствует созданию открытой атмосферы в команде.
- Умение аргументированно донести свою точку зрения: QA Engineer должен уметь чётко и аргументированно излагать свои мысли и предложения, чтобы быть понятным и убедительным.
- Избегание конфликтов: Предпочтение конструктивных диалогов и фасилитации позволяет решать проблемы и разногласия без возникновения конфликтов, что способствует продуктивной работе команды.
- Урегулирование конфликтов: Если конфликт всё же произошёл, важно уметь урегулировать его, перевести в конструктивный диалог и найти совместное решение.
- Презентация своих идей и обратная связь: QA Engineer должен уметь эффективно презентовать свои идеи и давать обратную связь команде, что помогает в улучшении процессов и продуктов.
- Инициирование диалога: Самостоятельное инициирование диалога с другими командами, с Product Owner или с Product Manager способствует решению возникающих вопросов и помогает синхронизироваться.
- Фиксирование договоренностей: Важно фиксировать достигнутые договорённости и решения, например, в Confluence или Notion. Это помогает сохранить информацию и обеспечивает доступ к ней всем членам команды.
- Выступления на демо: Способность уверенно и четко представлять результаты работы команды на демо-сессиях. Это включает в себя умение объяснять технические детали доступным языком и обоснованность решений.
Обучение других и саморазвитие
Саморазвитие — это неотъемлемая часть работы специалиста. Как понять, что у вас все в порядке с саморазвитием? Рассмотрим основные признаки:
- Систематическое изучение новых технологий и навыков: Например, вы изучили Python и написали свой первый автотест.
- Внедрение лучших практик в команду: Вы не только изучаете хорошие практики, но и активно применяете их в работе команды.
- План развития: У вас есть план или роадмап, которому вы следуете.
- Завершение обучения: Вы не бросаете обучение на полпути и не переключаетесь с одной технологии на другую в процессе обучения.
- Целенаправленное обучение: Вы изучаете только действительно нужные вещи. Например, не изучаете Unity, если работаете в финтехе, но изучаете, если вам нравится GameDev и это ваше хобби.
- Самостоятельный поиск информации: Вы черпаете информацию из различных источников и самостоятельно ищете нужные данные.
- Регулярная оценка процесса обучения: Периодически, например, раз в квартал, оцениваете процесс своего обучения. Если за квартал нет заметных продвижений, проводите работу над улучшением процесса обучения.
При планировании обучения старайтесь ставить амбициозные, но достижимые цели. Научитесь декомпозировать цели и соблюдать сроки обучения.
Обучение других - это наилучший способ обучиться чему-либо самому. Обучая других, вы прокачиваете себя с разных сторон, что делает этот процесс взаимовыгодным. Где искать обучаемых?
- Создание курсов: Создайте курс, например, на Stepik или на внутренних платформах компании.
- Создание гайдов и туториалов: Разработайте гайд или туториал по тестированию в Confluence или Notion команды.
- Онбординг и менторство: Помогайте новичкам в команде, составляйте план их развития, формулируйте и фиксируйте критерии успешного онбординга, проводите регулярные встречи и поддерживайте их в рабочем мессенджере. По завершению онбординга давайте обратную связь, подчеркивайте сильные стороны новичка и указывайте на точки для улучшения.
- Проведение воркшопов: Регулярно проводите воркшопы на тему тестирования для команды.
- Выступления на конференциях: Делитесь своим опытом и знаниями с широкой аудиторией.
- Менторинг и помощь в профессиональных сообществах: Оказывайте поддержку коллегам и другим специалистам в профессиональных сообществах, например, в телеграм-каналах.
Обучение других никогда не бывает преждевременным. Если у вас уже есть некоторая экспертиза, вы можете начинать обучать других, например, обучая друга. В процессе вы откроете для себя новые горизонты и инсайты, что поможет вам расти как профессионалу и делиться своими знаниями с другими.
Вместо заключения
Нас, QA инженеров, любят, ценят и уважают не за то, какими инструментами и технологиями мы владеем. Напротив, ценность инженера заключается в том, какой вклад и ценность он привносит для команды и продукта. Технологии, которыми мы владеем - это лишь средство достижения целей и задач команды.
Важно быть проактивным, стремиться к улучшению процессов, поддерживать своих коллег и постоянно развиваться.
- Будьте лидером: Инициируйте улучшения, предлагайте новые идеи и берите на себя ответственность за их реализацию.
- Сотрудничайте: Работайте в тесном взаимодействии с другими членами команды, делитесь знаниями и опытом, помогайте решать проблемы и достигать общих целей.
- Стремитесь к совершенству: Не бойтесь ставить перед собой амбициозные цели и стремиться к их достижению.
Развивайте свои навыки, учитесь новому, делитесь своими знаниями и всегда стремитесь быть лучшим в своем деле. Технологии приходят и уходят, но ваши способности и вклад остаются на долгое время, создавая прочный фундамент для успеха вашей команды и продукта.