Fullstack QA — путь самурая, или раскрытие потенциала тестировщика

Специалисты fullstack QA весьма востребованы работодателями. В сегодняшней статье расскажу, в чем ценность таких сотрудников, какие hard и soft skills нужны и почему будущее именно за fullstack QA.

6c8c949daf1a2600f8c5ef8d540ffc64.jpg

Всем привет, меня зовут Максим Соловьев, я Head of QA продуктов BI‑аналитики, ML и EPM Polymatica в компании SL Soft. Работал в разных командах величиной от 2-х до 20-ти человек как в коммерческих организациях, где не было документации, так и в серьезных государственных компаниях. Также довелось побывать единственным QA на проекте. Получил большой опыт: от тестирования баз данных, брокеров сообщений и различных интеграций до тестирования UX, производительности и написания сквозных автотестов. Начинал с позиции джуна, вырос до лида с собственной командой и своими процессами — сейчас являюсь servant leader отдела QA.

Окунемся в историю и эпоху зарождения)

В 2017 году для входа в профессию «ручной тестировщик» мне хватило культовой книги Романа Савина «Тестирование Дот Ком» и базовых навыков SQL, кек. Сейчас, конечно, этого уже недостаточно: с развитием технологий и повышением требований к качеству программного обеспечения планка для специалистов QA неизменно поднимается.

Уже в 2019 году работодатели ожидали, что QA не только владеет рядом инструментов тестирования и базово освоил языки программирования и фреймворки, но и понимает, как создается софт, разбирается в архитектурных особенностях системы и умеет правильно коммуницировать с другими людьми — как с коллегами, так и с клиентами (пруф). При поиске тестировщиков‑автоматизаторов компании сталкивались с тем, что кандидаты умеют «тестировать ручками», но не заботятся о чистоте тестового кода и не имеют опыта хороших практик.

Дальше — больше. Интересно, что увеличивается не только перечень требуемых hard скиллов, но и soft, причем они потихоньку наращивают свою важность при выборе кандидата. Для тех, кто хочет углубиться, — подборка соответствующих материалов: два года, год, полгода назад.

2d89c4d8cc2cc37fb18dafc1acbee566.jpg

Тенденции QA неразрывно связаны с трендами в разработке: все направлено на сокращение time‑to‑market. В 2010-х годах в IT‑индустрии произошла своего рода революция: гибкие методологии вытеснили классические, и этого бы не случилось без адаптации и ускорения циклов тестирования. С тех пор ставки на автоматизацию и универсализацию сотрудников QA повышаются. Ведутся споры, останется ли ручное тестирование актуальным (спойлер: да). Пример — вот эта статья, где есть примечательная фраза:

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

Еще годную профессиональную статистику по теме можно найти тут.

3d058d8ba5f47e33915c0f687e990fd5.jpg

Я полностью согласен с описанными трендами: чтобы быть успешным QA, требуется постоянное повышение своей квалификации, освоение нового инструментария и современных подходов. С опытом работы приходит понимание, что fullstack QA — это логичное профессиональное развитие.

Актуальные требования к fullstack QA 

Fullstack QA — это профессионал, который обладает широким спектром навыков в области мануального и автоматизированного тестирования на разных уровнях, о чем подробно рассказано тут и тут. Поэтому такой специалист обеспечивает высокое качество продукта. А еще оптимизирует работу (например, определит, где сразу стоит написать автотест, чтобы при нескольких итерациях в тестировании не обременять себя рутиной), сделает ревью кода разработчика, выдаст замечания по документации аналитика и составит список недочетов прототипа дизайнера.

Требования к навыкам fullstack QA обширные, но справедливости ради замечу, что они актуальны для любого QA‑специалиста как в части hard, так и soft скиллов. Технические: знание языков программирования, баз данных, ОС/систем виртуализации, непрерывной интеграции, инструментов и методов разработки и тестирования, в том числе и базовые знания по теории тестирования. Soft скиллы: умение адаптироваться к изменениям, стрессоустойчивость, внимательность, усидчивость, способность к эффективной коммуникации с различными членами команды разработки и тестирования.

e418a99c6ff9245d2b08a06927e47650.jpg

Итак, востребованный fullstack QA имеет как высокий уровень технического мастерства, так и развитый эмоциональный интеллект. Плюсом становится широкий спектр знаний и навыков в смежных областях, связанных с разработкой, техподдержкой, DevOps, работой менеджера проекта и системного аналитика. А еще ты немножко лидер и иногда психолог. Такой винегрет позволяет быть ценным специалистом, действительно повышать уровень качества продукта на всех этапах SDLC, в том числе, и работая над процессами в компании в целом.

Какую пользу может принести fullstack QA

Оптимизировать работы по тестированию

Одна из ключевых компетенций специалистов fullstack QA — оптимизация работы: тут нужно умение эффективно тестировать приложения на различных уровнях, начиная с модульного и заканчивая автоматизированным E2E тестированием. Постоянная интеграция деятельности тестировщиков с разработчиками с помощью инструментов CI/CD позволяет выявлять потенциальные проблемы и ошибки раньше, чем «код попадет на дев». Таким образом, оптимизация повышает качество и надежность продукта. А для специалиста это означает возможность сосредоточится на нефункциональных требованиях к ПО.

Улучшить анализ влияния (impact analysis)

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

Ускорить анализ основной причины (RCA)

QA fullstack специалисты должны быть способны эффективно и быстро определить источник проблемы, ускорить процесс RCA и сократить время, необходимое для устранения проблемы.

Написать качественный код — «уровня разработчика»

Кроме знания git, sql и языка программирования для fullstack QA важно понимание основных принципов разработки программного обеспечения и ключевых понятий, например, что такое модульность, инкапсуляция, наследование и полиморфизм, а также умение работать с тестовыми фреймворками.

Использовать AI как инструмент для тестирования и совершенствования процессов

Одной из актуальных тенденций в тестировании является применение искусственного интеллекта для ускорения процесса автоматизации в разы, а также для улучшения его эффективности. Чем может помочь AI: увеличение тестового покрытия, генерация кода и тестовых данных, обучение сотрудников (в том числе, и при изучении языков программирования), раннее выявление дефектов (анализ документации и статический анализ кода), создание «самовосстанавливающихся» тестов, автоматизация рутинных и типичных задач, автоматизация анализа и сбора статистики по результатам тестирования и пр. Почитать больше можно тут.

QA должен провалидировать и откорректировать результаты, полученные с помощью использования AI. Качественно это может сделать только специалист с уровнем знаний fullstack.

Заключение

52c68b5110188441e390f4151b291bdd.jpg

По моему мнению, наращивание компетенций до fullstack, по сути, единственный вариант развития QA специалиста. При текущих тенденциях разгона технологий и трендах разработки, скорее всего, произойдет выравнивание заработной платы fullstack QA до уровня dev. Креативный подход и способность мыслить нестандартно помогают QA fullstack специалистам находить инновационные пути решения проблем, повышать качество и надежность продуктов. Профессиональное обучение программированию и опыт работы с различными технологиями позволяют им проводить комплексное тестирование и оптимизировать рабочий процесс. Будущее QA обещает быть интересным и перспективным, и прокачать свою квалификацию до fullstack QA — это отличный способ оставаться в тренде и быть ценнейшим сотрудником в компании.

© Habrahabr.ru