Карьерный путь автоматизатора |
25.06.2021 00:00 |
Автор: Энджи Джонс (Angie Jones) Один из часто задаваемых вопросов – это "каков карьерный путь инженера-автоматизатора?". Отличный вопрос, так как эта роль часто воспринимается как тупиковая; менеджерам и специалистам сложно разобраться, как же в ней расти. Ниже я расскажу, по каким ступенькам идут инженеры-автоматизаторы и инженеры в тестировании (SDET), и дам конкретные критерии, к чему стремиться, собираясь перейти на новый уровень. Первый уровень: джуниор-автоматизатор Джуниор-автоматизатор – это новичок в автоматизации тестирования. Возможно, у него уже есть навыки тестирования, но программирование для него – дело новое. Или же, возможно, у него есть ограниченные навыки программирования, а в тестировании он не разбирается. На этом уровне инженер способен добавлять тесты в набор при условии, что тест-проект и фреймворк автоматизации уже созданы. По сути он использует существующие кирпичики, чтобы сложить из них тест. Джуниору-автоматизатору нельзя просить создать проект тест-автоматизации самостоятельно и с нуля – это полноценный проект по разработке ПО, требующий навыков программирования, разработки архитектуры и тестирования. Джуниору должны помогать более опытные инженеры-автоматизаторы или разработчики. Второй уровень: миддл-автоматизатор Миддл-автоматизатор имеет внушительные навыки программирования и тестирования и может не только автоматизировать тесты, но и расширять имеющийся тест-проект и фреймворк, чтобы дополнительно поддерживать тесты. К примеру, миддл-автоматизатор может по необходимости добавить к имеющемуся фреймворку вспомогательные классы и функции для новых страниц, компонентов или сервисов, не рассчитывая, что это сделает кто-то другой. Однако миддл-инженер еще не готов создать тест-проект целиком и с нуля. Третий уровень: старший автоматизатор. Старший автоматизатор отлично владеет и программированием, и тестированием. В дополнение к созданию автотестов он может создавать тест-проект с нуля. Старшие автоматизаторы владеют различными паттернами дизайна, специфичными для тестирования, и знают, когда и как их применять. Инженеры этого уровня часто занимаются ревью всех относящихся к тестированию пулл-реквестов и помогают внедрять хорошие практики. Эти автоматизаторы могут учить разработчиков писать тесты и создавать тестируемый код. Они также способны определить, какие тесты нуждаются в автоматизации, а какие не стоят свеч. Старшие автоматизаторы уже не тратят на написание тестов столько времени, как раньше – они делегировали эту работу разработчикам и джуниорам-автоматизаторам. Взамен они много занимаются развитием тест-фреймворка, чтобы помочь тем, кто пишет тесты. Эти инженеры также больше заняты в мониторинге и приоритизации билдов, и активно прислушиваются к тому, что говорят тесты о состоянии продукта. Четвертый уровень: архитектор автоматизации Архитектор автоматизации глубоко владеет техническими знаниями по разработке ПО. Он может не только создавать тест-проекты с нуля, но и сделать это так, чтобы результат был поддерживаемым и мог использоваться повторно. Они отлично понимают принципы программирования и дизайна ПО, и знают, когда и как уместно использовать абстракции. Архитекторы автоматизации хорошо владеют множеством инструментов автоматизации и могут оценить, нужен ли новый инструмент их команде. Обычно они способны писать автотесты на любом уровне, включая юнит-, интеграцию, и end-to-end. Опытные архитекторы могут даже смешивать разные подходы и инструменты для оптимизации наборов тестов. Хоть они и способны создавать оптимальнейшие тесты, это не лучший способ тратить их время. Вместо этого они, как правило, заняты разработкой архитектуры тест-фреймворков и внутренних инструментов, чтобы повысить эффективность других инженеров. Эти инструменты не всегда предназначены именно для тестов – это могут быть и другие решения. Благодаря их широкому спектру навыков архитекторы автоматизации обычно назначаются на целый отдел, а не просто на команду спринта. Пятый уровень: тимлид автоматизации Лиды автоматизации отвечают за руководство командой инженеров-автоматизаторов. Они определяют стратегию и берут шефство над теми, кто стоит ниже их. Как и архитекторы, лиды понимают, как автотесты встраиваются в общую картину разработки ПО, и часто применяют свои навыки к конструированию процессов CI/CD, оптимизации запуска тестов, и удостоверения, что тесты систематически дают быструю и надежную обратную связь. Тимлиды автоматизации часто занимаются приращением своей армии инженеров, и отвечают за интервью и найм. Они регулярно сотрудничают с другими заинтересованными лицами – менеджерами, бизнес-заказчиками, скрам-мастерами, разработчиками и тестировщиками. Они помогают этим ключевым игрокам понимать роль автоматизации и то, как можно помочь ее успеху. Шестой уровень: консультирующий автоматизатор Автоматизаторов-консультантов часто нанимают ради их способности внедрить успешную стратегию тест-автоматизации. В ряде случаев они также создают изначальный тест-проект и несколько тестов для подтверждения работоспособности – эти тесты команда будет использовать и расширять. Многие консультанты приглашаются на короткий срок, чтобы задать команде верное направление – однако некоторые компании нанимают консультантов на постоянной основе. Работая таким образом, консультант-автоматизатор обычно прорабатывает стратегию для множества команд и отделов, формулируя глобальную, общую для компании стратегию тест-автоматизации. Инженеры-автоматизаторы этого уровня крайне опытны и анализируют свой опыт для выявления общих проблем, техник и стратегий, встречающихся в большинстве проектов автоматизации. Из-за этого они способны предвидеть проблемы до того, как они возникнут, и посоветовать, как лучше поступить, чтобы минимизировать проблемы или избежать их вовсе. Лучшие консультанты не только делятся техническим опытом, но и помогают взрастить культуру, поддерживающую усилия по тест-автоматизации. Как можно видеть, карьерный путь автоматизатора довольно глубок, и тут есть куда расти. Надеюсь, вы верно определили, где вы находитесь, и знаете теперь, что вам нужно для перехода на следующий уровень. |