Разделы портала

Онлайн-тренинги

.
3 способа повысить свою ценность как автоматизатора
20.10.2017 11:01

Автор: Эрика Чиковски (Ericka Chickowski)

Оригинал статьи: https://techbeacon.com/3-ways-be-more-marketable-test-automation-engineer

Перевод: Ольга Алифанова

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

"Неважно, как все это называть – DevOps или Agile, для тестировщиков все это означает, что тестирование должно быть автоматизируемым и воспроизводимым", говорит Уэйн Ариола, директор по маркетингу и специалист по тестированию в компании Tricentis, занимающейся тестированием. "Временные циклы тестирования существенно уменьшились. У нас больше нет такой роскоши, как тестировать несколько недель в конце цикла разработки. Тестирование осуществляется параллельно с итеративной разработкой ПО, и оценка рискованности релиз-кандидата должна производиться на лету".

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

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

Т. Дж. Маэр, старший QA-инженер Ahold Delhaize, считает, что переход в новый мир может вызвать сложности у тех, кто долго занимался традиционным тестированием.

"Самое сложное в этом – осознать, что если вы инженер-автоматизатор, то вы уже не просто QA. Поздравляю, теперь вы разработчик! В качестве автоматизатора вы пишете ПО, которое тестирует ПО" – Т. Дж. Маэр.

Программируйте как разработчик

Решающий фактор, двигающий развитие QA-специалистов – это программирование, считает Николай Адволодкин, руководитель автоматизации Fulcrum и генеральный директор Ultimate QA.

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

Это необязательно значит, что все автоматизаторы должны уметь закодировать определения шагов, но они как минимум должны быть в состоянии писать на понятных бизнесу и специфических для отрасли языках – например, Cucumber Gherkin. По словам Эвана Джонса (QA-инженер в Nerdery) это необходимое условие для того, чтобы автоматизаторы вносили ценный вклад в процесс непрерывного развертывания (CD).

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

По словам Джонса, стоит только начать пробовать писать на несложном языке, как тестировщики, скорее всего, обнаружат, что их страх испарился – они уже понимают основы, то, как компилируется код, как используется IDE, и как устроен GIT. Это неплохая стартовая точка для погружения в более глубокие области разработки.

"Это новый мир с новыми необходимыми для изучения областями", говорит Маэр, поощряющий новичков разбираться в том, что такое чистый, читабельный код, как он рефакторится, поддерживается, и как проводится код-ревью.

"Первое время вы будете барахтаться во всем этом, как младенец. Наслаждайтесь этим! В этот период вы вольны совершать ошибки. Задавайте все приходящие вам в голову вопросы другим разработчикам, и слушайте, что они отвечают" – Т. Дж. Маэр.

Проектируйте как архитектор

Простого понимания, как программировать, недостаточно. Если бы это было так, крупные компании просто переименовали бы разработчиков в тестировщиков и успокоились на этом. Опытный профессионал автоматизации не только умеет программировать, но и разбирается в том, как проектировать хорошие, значимые наборы тестов. Инженеры-автоматизаторы должны не только владеть инструментом, при помощи которого они создают автотесты – им еще следует оттачивать свою способность выяснять, почему и зачем эти тесты нужны, считает Баз Дийкстра, независимый консультант по автоматизации.

"Очень заманчиво и легко сходу начать автоматизировать, получив такую задачу, и погрузить в поиск ответа на вопрос "как", создавая красивые тесты. Но люди часто забывают, что тесты не пишутся ради счастья их написать" – Баз Дийкстра.

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

Безусловно, автоматизаторы должны развивать навыки проектирования систем, которые служат определенной цели.

"Суть автоматизации в том, что они сами по себе – система", говорит Николай Адволодкин. "Профессионалы автоматизации должны уметь создавать надежные и гибкие системы, и быть способными регулярно расширять автотесты. Такие люди редко достигают карьерного плато. Их автотесты работают быстрее, проверяют больше, и находят больше багов. Это возможно только при очень развитых навыках программирования".

Учиться, учиться и еще раз учиться

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

"Самообразование очень важно, потому что если вы не тратите время на то, чтобы узнать больше о своей работе, вы никогда не поймете, как сдвинуться с места" – Николай Адволодкин.

Если вы концентрируетесь только на своих повседневных задачах, вы не смотрите по сторонам и не заметите, что там вообще происходит, говорит Адволодкин. По его словам, он начал учиться использованию Docker в связке с Selenium. "Это серьезно изменило мой подход к автотестам, и на работе я этим не занимаюсь".

Если вам необходимо более структурированное обучение, то курсы дают возможность лучше замотивировать себя – как через тренеров, так и через других студентов. Те же, кто хочет преуспеть и в самообучении, и через курсы, могут обратиться к открытым онлайн-курсам (MOOC), которые набирают популярность лет пять как. Они комбинируют формализованную структуру курса и комфортный график самообучения.

Обучение, которое предлагают на рабочем месте, позволяет автоматизаторам учиться в условиях реального окружения, которое обычно сложнее теоретических примеров, предлагаемых на курсах.

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

"Как усовершенствоваться? Практиковаться, практиковаться, еще раз практиковаться – вечером, в выходные, в праздники" – Т. Дж. Маэр.

Адволодкин советует попытаться создать простенький автотест на рабочем месте, почистить его, добиться его стабильности, регулярно его запускать, и от этой точки двигаться дальше.

Реальные рабочие условия дают еще одно важное преимущество – доступ к коллегам, которые помогут вам учиться. И это необязательно тестировщики! По словам Дийкстры, он часто видит тестировщиков, пытающихся посмотреть на приложение глазами не пользователя, а другой роли разработки. Тем, кто плохо разбирается в том, что под капотом у приложения, может пригодиться помощь разработчиков.

"Чаще общайтесь с разработчиками, покажите им ваши автотесты, и пусть они покажут вам внутреннюю структуру приложения", говорит Дийкстра. "К примеру, если у вас есть API, демонстрирующее бизнес-логику, которую вы тестируете через интерфейс, это поможет вам создать куда более эффективные автотесты".

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

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

Читайте книги

Наши эксперты предложили отличный список литературы, курсов и сайтов для начинающих автоматизаторов. Вот что они советуют:

Т. Дж. Маэр:

"Я подписался на курс Алана Ричардсона "Selenium WebDriver with Java" в 2013 году, и автор все еще улучшает его. Это были лучшие потраченные мною 299 долларов. Благодаря этому курсу и коду, который я смог написать в результате, я получил свою первую работу автоматизатором в Fitbit. Если вы не знаете Java, прочитайте книгу Алана Java For Testers"

Эван Джонс:

"Я выбрал Codecademy для изучения новых языков программирования и других связанных с этим задач. У них есть курсы для начинающих, поэтому пробовать может кто угодно. Ресурс Джеффа Моргана, Cucumber and Cheese: A Testers Workshop, помогает понять преимущества Agile и автотестов, и также предлагает пошаговую инструкцию для настройки набора автотестов".

Николай Адволодкин:

"Смотрите видео легенд разработки – например, Роберта Мартина на CleanCoders.com. Читайте книги: например, Clean Code: A Handbook of Agile Software Craftsmanship и Head First Design Patterns: A Brain-Friendly Guide."

Обсудить в форуме