Автоматизация тестирования программного обеспечения – направление, знакомое далеко не каждому. И даже в наше время для многих становится сюрпризом сам факт существования такой специализации, ведь традиционно проверка качества продукта разработки ассоциировалась исключительно с мануальным тестированием.
Итак, как же происходит процесс автоматизации тестирования, кому будет интересно освоить эту профессию, и какой минимальный набор знаний необходим для старта карьеры?
Разобраться в тонкостях QA Automation помогут Software Test Automation Engineer Никита Ефимук (Минск, Беларусь) и Lead Software Test Automation Engineer Равиль Янбеков (Харьков, Украина).
Роль Software Test Automation Engineer в проекте
Равиль Янбеков: Перед специалистами по автоматизации тестирования ПО стоят две основные задачи. Первая – они пишут код для проверки тех областей продукта, которые недоступны для мануального тестирования. Второе – это оптимизация рутинных процессов и перераспределение времени в пользу решения более нестандартных и высокоприоритетных задач. Благодаря автоматизации, релизный цикл сокращается, и продукт раньше попадает к конечным пользователям. Соответственно, автоматизация помогает выигрывать в конкурентной борьбе.
На мой взгляд, специальности Manual QA и QA Automation дополняют друг друга и позволяют сделать процесс тестирования более быстрым, эффективным и полноценным.
Никита Ефимук: Круг задач Test Automation инженеров разнится в зависимости от проекта, но, как правило, включает в себя написание новых автотестов, cоздание нового фреймворка либо поддержку существующего, анализ существующих тестов (анализ регрессии). Иногда в обязанности QA Automation инженеров входят и мануальные активности, как например, написание тест-кейсов или анализ требований. Так что для более эффективной работы автоматизатору тестирования необходимы знания не только автоматизации, но и мануального тестирования. К слову, сегодня автоматизация в чистом виде – не в тренде. Более востребованы инженеры, которые могут и в код разработчиков заглянуть, и заняться автоматизацией тестирования.
Кому будет интересна автоматизация тестирования программного обеспечения?
Никита Ефимук: Часто в QA Automation приходят из мануального тестирования, это своего рода продвинутый уровень для тех, кто стремится к дальнейшему развитию, начинает изучать языки программирования, фреймворки, интересоваться технической стороной.
Равиль Янбеков: Иногда в QA Automation приходят и разработчики, но обычно они концентрируются либо на performance тестировании, либо на написании инструментов для автоматизации. К примеру, ребята из девелопмента внесли огромный вклад в работу над одним из внутренних инструментов компании ЕРАМ – Report portal.
Прирожденный QA Automation специалист – это…
Никита Ефимук: Человек, которому свойственно внимание к деталям наряду с креативным мышлением и адаптивностью. Хорошему автоматизатору полезно быть немного ленивым, тогда изобретательность в вопросах автоматизации рутинной работы возрастает в разы.
Равиль Янбеков: Человек, видящий себя в роли архитектора системы. В отличии от девелоперов, которые зачастую ограничены рамками платформы или фреймворка - как, например, Hybris или Sitecore – и могут работать только с технологиями, предусмотренными проектом, QA Automation не ограничены в выборе инструментов. Главный критерий их успеха – эффективность, а инструментарий они могут подбирать, опираясь на собственный опыт. Наверное, таких людей можно назвать исследователями, которым нравится искать пути повышения качества работы, комбинируя различные методы.
Что необходимо знать для старта в QA Automation
Равиль Янбеков: Начинающим нужно хорошо знать core часть того или иного языка программирования. Обычно это Java или С#, хотя в последнее время тренд меняется, возникает потребность в JavaScript автоматизации и, возможно, в будущем JS обгонит по популярности Java. Но пока что Java лидирует, потому я посоветую начинать с него.
Обязательными в списке являются также основы ООП, знание веб-части, понимание принципа работы серверов и front-end технологии, наряду с html и css.
Нужно обратить внимание на фреймворки, которые позволяют осуществлять тесты и генерировать отчеты: JUnit4, JUnit5, TestEngine, Jbehave (test runner).
Для того, чтобы понимать, как запускать тесты, и как отслеживать изменения в приложении, необходимо знать continuous integration инструменты такие, как Jenkkins, DeepCity.
Существуют разные уровни автоматизации. На UI уровне нужно знать основы работы HTML,CSS, JS и те фреймворки, которые позволяют регулировать действия конечного пользователя. Начинающему автоматизатору нужно обратить внимание на веб-драйвер, технологию, которая позволяет контролировать браузер и построенные на нем фреймворки, такие как Serenity, Selenide (Java стек) или Playwright, Protractor (JavaScript стек).
При автоматизации на уровне API SoftwareTest Engineer работает с данными и ему необходимо знать принципы работы backend-части приложений.
Автоматизация на уровне базы данных предполагаем знание SQL, а работа с performance тестированием требует знание архитектуры приложений.
Суммируем, джентльменский набор начинающего автоматизатора – это Java, веб-драйвер, Jenkins, TestNG.
Никита Ефимук: Для начала будущему Junior Software test automation engineer нужно определиться с направлением - хочет ли он развиваться в тестировании мобильных приложений, веб или API. Обязательно владеть одним из топовых языков программирования – это Java, C# и JavaScript – на уровне ключевых концепций и владеть основами ООП. Важно понимать, как построен сам процесс разработки. На мой взгляд, самое главное для начинающего специалиста – начать как можно быстрее получать проектный опыт, а большинство фреймворков можно освоить довольно быстро.
Ресурсы для начинающих Software Test Automation инженеров
Равиль Янбеков: на первых порах начинающим специалистам нужно максимально погружаться в технические детали. Обращать на техническую реализацию того или иного инструмента, на возможности совершенствования процессов с технической точки зрения, улучшать знания фреймворков, особое внимание уделять языкам программирования. Я рекомендую отличный блог нашего коллеги Solution Architect Сергея Пирогова.
Специалистам, достигшим уровня Middle, нужно обязательно обращать внимание на то, как построены процессы на проекте, вникать в его особенности, искать возможные пути рационализации и оптимизации взаимодействия с другими командами.
Никита Ефимук:
- «Тестирование.COM – Роман Савин (стоит прочесть, когда появилась мысль заниматься тестированием).
- CS50: Introduction to Computer Science.
- Eric Freeman, Elisabeth Robson. Head First Design Patterns: A Brain-Friendly Guide.
Специальности Software Test Automation пока обучают ни в одном из вузов. Но если у вас есть желание развиваться в этом интересном и перспективном направлении, обратите внимание на обучающие программы ЕРАМ по специальности QA Automation. Получить информацию об открытых наборах на можно ЗДЕСЬ.