Обучение

Сообщение об ошибке

Обучение

Сообщение об ошибке

Автоматизированное тестирование на Java

17 августа 2022

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

Но что такое автоматизированное тестирование? Сколько нужно учиться, чтобы стать автоматизатором? Какой язык автоматизированного тестирования популярнее всего? Об этом и не только рассказал Сергей Забашный  старший специалист по автоматизированному тестированию программного обеспечения в СЕНЛА и тренер IT-Academy (Гродно) по направлению «Автоматизированное тестирование на Java».


— Сергей, как ты пришел в автоматизированное тестирование?

— Мне всегда нравилась работа с компьютерами. Когда-то у меня был опыт работы системным администратором, но все же хотел развиваться дальше. Поэтому после некоторого времени я пошел на курсы в частную компанию, чтобы освежить знания по Java. На курсах я познакомился с ребятами из СЕНЛА. Они пригласили меня к себе на курсы. Чуть позже, в экспериментальном режиме, СЕНЛА запустила курсы по автоматизации. Это был первый и очень небольшой набор компания искала специалиста в отдел, который владеет навыками программирования. Я до этого не знал про автоматизацию на конкретных примерах, но мне понравилась эта идея, и я захотел попробовать себя в данном направлении. По итогу мне сделали предложение стать частью команды СЕНЛА.

— Ты принял предложение?

— Конечно! В любом случае, я бы стремился попасть в СЕНЛА на позицию автоматизатора. За время курсов и самообразования мне понравилось, что автоматизированное тестирование очень динамичное и быстро развивающееся направление. В автоматизации можно заниматься не только тестированием, разработкой данных или скриптов, но и чем-то новым есть задачи и по аналитике, и по администрированию, и по DevOps.

В автоматизации я уже больше 4-х лет. Теперь сам хочу передать свои знания и умения ребятам, которые приходят на курс «Автоматизированное тестирование на Java».

— А если говорить в общем, что такое автоматизированное тестирование и для чего оно нужно?

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

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

— Насколько востребовано это направление сейчас и как обстоят дела с вакансиями?

— Автоматизированное тестирование на Java очень востребовано. Даже если посмотреть по рынку вакансий — всегда ищут специалистов-автоматизаторов. Конечно, в большинстве случаев хотят опытных тестировщиков, однако некоторые крупные компании предоставляют варианты для старта без опыта. Также можно найти стажировки или курсы в компаниях, что в будущем поможет попасть на джуниор позицию. Это не так невозможно, как кажется (проверено на личном опыте). И это здорово.

Однако есть и другая статистика. У направления своя специфика: один тестировщик-автоматизатор всегда «заменяет» 2-3 (а иногда и больше) человек на проекте. Поэтому автоматизаторов нужно меньше. НО! Вакансий от этого меньше не становится. Рынок физически сейчас не может быть закрыт, так как на автоматизаторов не так часто учатся. Многие идут в чистую разработку на Java или JavaScript.

— Насколько важно автоматизированное тестирование в разработке?

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

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


— Какое соотношение ручных и автоматизированных тестировщиков на проектах? Как строится взаимодействие между специалистами?

— Все зависит от размера проекта. Иногда может быть вообще один тестировщик на проекте. Если говорить о моем опыте, то, в основном, на проектах 3 или 4 ручных тестировщика и 1 автоматизатор. Это вполне распространенное соотношение.

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

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

— Есть ли существенная разница между АТ на Java от АТ на JS и С#? Если да, то в чем она проявляется?

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

Есть проекты с определенными требованиями языка. Например, бэкенд проекта писался на Java, вся его инфраструктура подстроена под Java, есть непрерывная интеграция, адаптированная для Java, все виртуальные машины, настройки и другая работа проделана для этого языка. В таком случае делать автоматизацию на Python или C# имеет меньше смысла.

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

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

— А какой язык для тестирования популярнее?

— Многие говорят, что сегодня самый популярный язык для автоматизации — JavaScript. Однако я бы так не сказал, просто потому что, если смотреть статистику, то в топе сначала — Java, Python, а потом уже JS. Но всё может измениться, так как на JavaScript развиваются очень мощные инструменты, которые запросто могут выйти в лидеры через несколько лет.

— Кому подойдет специальность автоматизатора?

— Однозначно тем, кто хочет быть постоянно в движении и изучать много нового для себя. В этой профессии никогда не бывает скучно. От проекта к проекту можно совсем просто менять технологии. За 4-5 лет работы в автоматизации уже есть большая вероятность побывать на нескольких проектах и выучить кучу смежных методов разработки. Да, стандартный набор автоматизатора — Java, Selenium и т.д. остается. Однако те приложения, что будут на другой стороне, — всегда можно варьировать.

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

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

— Как будет развиваться направление в будущем?

— Оно точно не сбавит обороты. Я в этом уверен. Предложений будет становиться все больше — особенно с точки зрения вакансий и работы. Это связано с непрерывным ростом проектов на рынке. Соответственно, автоматизаторы будут нужны всегда, а направление будет только расти.

— Нужна ли подготовка для того, чтобы прийти к тебе на курс?

— Однозначно да. Ко мне, в основном, приходят люди после курсов на Java. То есть это те ребята, которые уже умеют что-то делать и разбираются (хотя бы минимально) в процессах. Если по какой-то причине прийти на курс с нуля, то, к сожалению, ничего не получится. На курсах по автоматизации не учат отдельно Java. Просто потому что за короткий период выучить язык нереально, а работать с кодом без базовых навыков очень проблематично.

— А как долго нужно учиться, чтобы стать автоматизатором? Или достаточно закончить курсы, чтобы быть уверенным джуном?

— Учеба на курсе занимает 3 месяца. Конечно, все хотят быстро и сразу. И за это время реально стать уверенным джуниор специалистом. Однако все индивидуально. Кто-то схватывает материал быстрее, а кто-то очень тяжело. Как я уже говорил, ко мне на курс ребята приходят уже более-менее подготовленными. Они знают базовые инструменты для языка, поэтому им проще сориентироваться.


— Что нужно, чтобы устроиться джуниор автоматизатором на Java?

— Естественно, нужно знать теорию тестирования. О ней часто спрашивают на собеседовании. Также нужно знать один из языков. Если берем Java, то Java Core нужно знать уверенно. Как с точки зрения теории, так и с точки зрения практики.

Во-вторых, нужно постоянно прокачивать навыки. Я всегда своим слушателям говорю, что, если просто читать книгу без написания кода, это не поможет. Практика очень важна. Без нее любая теория забудется через полгода.

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

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

— А обязательно ли читать профессиональные источники или можно обойтись без них?

— Вопрос в том, что начинающий специалист знает. Если он приходит учиться с полного нуля, то фундаментальные книги читать полезно. Особенно для того, чтобы выучить Java. Например, это может быть «Философия Java» Брюса Эккеля. 

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

— Поделитесь мотивацией с начинающими автоматизаторами на Java.

— Никогда не останавливайтесь на достигнутом. Ставьте новые цели и идите вперед. Если что-то не получилось с первого раза, — пробуйте снова и снова. Есть хорошая мысль: «Не ошибается только тот, кто ничего не делает». Трудности только закаляют нас. Это повод увидеть свои пробелы и поработать над ними.

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

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

А если вы только хотите изучить автоматизацию на Java, приходите на курсы в IT-Academy. Мы вас всему обучим.


Читай еще 

Автоматизаторы расходятся сегодня как горячие пирожки...

Чек-лист начинающего Java-разработчика

«Через полгода работа сама ищет вас». Почему стоит изучать Java

Стоит ли сегодня становиться Java-разработчиком

Почему Java живее всех живых

Из медиков в программисты. В 30 лет врач кардинально изменил жизнь, чтобы «кодить» на Java

Святослав Куликов: "Главный секрет успешного тестировщика? Быть параноиком!"



Полная, частичная перепечатка или любое иное использование материалов с сайта IT-Academy разрешается только с указанием активной гиперссылки, ведущей на первоисточник (точный адрес страницы на www.it-academy.by).