Что нужно знать инженеру по автоматизации тестирования? | OTUS

Что нужно знать инженеру по автоматизации тестирования?

MQA_Deep_7.11-5020-6b8971.png

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

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

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

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

Итак, чтобы стать успешным инженером по автоматизированному тестированию, необходимо знать 3 компонента, о которых мы сейчас и поговорим. Разумеется, это не всё, но это основа или, если хотите, фундамент, без которого сегодня никак.

1. Язык программирования

Чтобы стать инженером по автоматизации тестирования, вы просто обязаны знать какой-нибудь язык программирования. Как правило, в большинстве случаев достаточно владеть одним из распространённых языков, например, Java или Python.

Поймите всё правильно: вам не обязательно быть разработчиком с многолетним опытом, но вы должны иметь достаточно знаний для написания сценариев автоматизации. То есть вы должны знать основы используемого вами языка ООП.

Если речь идёт о Java, то это: — классы, объекты и методы; — наследование; — строки, целые числа; — концепция интерфейса, умение его использовать; — полиморфизм; — массивы (одномерные и многомерные); — переопределение и перегрузка (override и overload); — модификаторы доступа; — конструкторы.

Этих концепций будет достаточно, чтобы начать писать код автоматизации.

2. Фреймворки модульного тестирования

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

Модульное тестирование (англ. unit testing) — процесс в программировании, позволяющий проверить на корректность отдельные модули исходного кода программы, наборы из одного или более программных модулей вместе с соответствующими управляющими данными, процедурами использования и обработки.

Цель юнит-тестов состоит в том, чтобы убедиться, что определенные (отдельные) блоки кода работают правильно, а полученные значения соответствуют ожидаемым результатам. Я бы порекомендовал начать с этих платформ модульного тестирования: TestNG и JUnit. Обе эти платформы очень похожи, но TestNG является более мощной с точки зрения современных возможностей.

Почему мы должны проводить модульное тестирование, а не фокусироваться исключительно на тестировании пользовательского интерфейса? Для этого есть две основные причины: 1. Юнит-тестирование позволяет находить ошибки раньше. 2. Юнит-тестирование снижает общие расходы на тестирование.

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

Что ещё нужно будет освоить: — инструменты управления сборкой (например, Maven/Gradle), — тестовые аннотации, — управление тестами (с использованием XML-файлов) и группами, — параметризацию, — вспомогательные методы и утилиты, — Listeners, — генерацию отчетов.

3. Платформа автоматизации пользовательского интерфейса (UI Automation Framework)

Модульные тесты позволяют нам убедиться, что компоненты нашего приложения работают правильно. Но нам также необходимо проверить приложение с точки зрения конечного пользователя. Для этого потребуется среда автоматизации пользовательского интерфейса. Для каждой конкретной задачи доступно множество платформ, но давайте лучше обсудим стандартную последовательность действий: 1. Создание нового проекта в IDE вашего предпочтения. 2. Настройка зависимостей в системе управления сборкой. 3. Создание базового класса для фреймворка. 4. Настройка глобальных свойств для вашего проекта. 5. Реализация модели page-object для вашего проекта. 6. Написание тестовых сценариев для вашего проекта. 7. Группировка ваших тестов. 8. Подключение инструмента для генерации отчетов и скриншотов для неудачных тестов. 9. Эффективное выполнение тестов с использованием сервера автоматизации (например, Jenkins). 10. Анализ результатов выполненных тестовых сценариев.

Заключение

После того, как фреймворк закончен, его необходимо постоянно поддерживать, особенно если приложение разрабатывается в компании, использующей Agile. Что касается специфики написания кода автоматизации, то тут всё зависит от платформы (мобильная, десктопная) и других факторов.

Итак, мы перечислили основные моменты, на которые нужно обратить особое внимание. Надеемся, что эта статья поможет вам лучше понять, что нужно сделать, чтобы стать успешным инженером по автоматизации тестирования.

Версия статьи на английском

Не пропустите новые полезные статьи!

Спасибо за подписку!

Мы отправили вам письмо для подтверждения вашего email.
С уважением, OTUS!

Автор
0 комментариев
Для комментирования необходимо авторизоваться
Популярное
Сегодня тут пусто