article-spots
article-carousel-spots
programs
Технологии

QA Automation: тестирование или программирование?

29 июля 2020

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

Итак, как же происходит процесс автоматизации тестирования, кому будет интересно освоить эту профессию, и какой минимальный набор знаний необходим для старта карьеры?

Разобраться в тонкостях 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. Получить информацию об открытых наборах на можно ЗДЕСЬ.