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

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

Этот курс о том, как запустить проверку сотен опций ІТ-продукта одновременно, нажав всего одну кнопку. И о том, какой код лежит в основе этой магической функции.
За 4 месяца мы подробно рассмотрим процесс автоматизации: от запуска локальной версии программы до оформления тестового отчета. Изучим базовый синтаксис Java и научимся писать программы для автоматизированного тестирования.
Опустим лишнюю теорию и рассмотрим только те инструменты и технологии, которые действительно применяются в работе. В результате ― пропишем алгоритм тестирования под реальный продукт, настроим запуск автотестов и отчетов по графику.
- изучите базовый синтаксис Java и принципы ООП
- научитесь работать с фреймворками JUnit/TestNG
- будете строить селекторы XPath и CSS для Web UI тестирования и писать тесты для API в Postman
- будете писать код на Java, который запускает процесс тестирования и ищет баги вместо вас
- научитесь имитировать многократные однообразные действия пользователя и проводить нагрузочные тестирования
- будете проверять многоязычные интерфейсы, быстро находить и описывать ошибки
- с помощью автотестов сможете тестировать большие объемы данных
- оптимизируете рутинные процессы и перераспределите время в пользу приоритетных задач
- оптимизируете рутинные процессы и перераспределите время в пользу приоритетных задач

Темы:
- Преимущества и недостатки автоматизированного тестирования в сравнении с ручным
- Типы автоматизированных тестов
- Тестовая пирамида в контексте автоматизации
Результаты:
- Знаете, какие преимущества имеет автоматизированное тестирование.
- Понимаете, как оптимизировать работу благодаря переходу в автоматизацию.
Темы:
- Работа с Git
- Работа с Docker
- Форматы хранения и передачи данных
Результаты:
- Понимаете, как работает система контроля версий Git.
- Умеете создавать публичный репозиторий в Git.
- Понимаете, как работает контейнеризация.
- Умеете работать в Docker и запускать приложения в нем.
- Умеете читать и составлять основные форматы представления данных.
- Знаете, в каком случае какой формат лучше использовать.
Темы:
- Введение в язык программирования Java
- Работа с операторами Java
- Условия Java
- Циклы на Java
- Множественные типы данных для автоматизации тестирования
- Поля объекта
- Методы объекта
- Перечисляемый тип ENUM
- Инкапсуляция
- Абстракция и интерфейсы
- Подражание и полиморфизм
- Обработка ошибок
- Работа с файлами
- Аннотации, generics и streams
- Дизайн Java-приложения
- Maven
Результаты:
- Знаете базовый синтаксис Java.
- Понимаете, как работает объектная модель Java.
- Умеете использовать главные операторы присвоения и модификации.
- Умеете выстраивать сложные алгоритмы на основе условий.
- Знаете, как писать оптимальные и читаемые условия.
- Умеете строить алгоритмы, основанные на повторениях, а также логические конструкции внутри циклов.
- Знаете, как хранить множественные данные в Java.
- Умеете добавлять, изымать и модифицировать данные.
- Декларируете классы Java, готовы перейти от процедурного программирования в ООП.
- Знаете, что такое тип ENUM и в каких случаях его следует применять.
- Строите логически безопасные алгоритмы и правильные классы согласно ООП-модели.
- Умеете работать с абстрактными классами и интерфейсами.
- Понимаете, что такое подражание и полифонизм и умеете строить многоуровневые программы с меньшим объемом кода.
- Умеете правильно обрабатывать ошибки и использовать их в качестве средства обратной коммуникации.
- Работаете с файловой системой с Java-кода.
- Понимаете код, содержащий аннотации и generics.
- Умеете создавать генерализованный метод и класс.
- Знаете признаки плохого кода.
- Умеете писать продажи Singleton и Builder.
- Управляете зависимостями с помощью Maven.
Темы:
- Тестовые фреймворки JUnit/TestNG
- Data-driven testing
- Тестовый отчет
- Продвинутый тестовый репорт Allure
- Работа с базами данных Java (JDBC) на примере postgreSQL
- Продвинутая работа с базами данных. Библиотека JDBI
Результаты:
- Работаете с фреймворками JUnit/TestNG.
- Понимаете, как тесты взаимодействуют с кодом программы.
- Умеете писать готовые к исполнению тесты.
- Знаете, как подготовить тестовое окружение.
- Умеете писать тесты, выполняемые одним и тем же кодом, но с разными наборами данных.
- Знаете, как выстроить понятную тестовую структуру.
- Строите тесты таким образом, чтобы было ясно, на каком этапе произошла ошибка.
- Умеете настраивать тестовый отчет, понятный всем.
- Знаете, как настраивать Allure.
- Умеете делать главные операции с базой данных в Java.
- Работаете с библиотекой JDBI.
Темы:
- Selenium WebDriver
- Локаторы элементов XPath
- CSS Selector
- Selenide
- Cucumber
Результаты:
- Запускаете разные браузеры для выполнения тестов.
- Умеете производить простой поиск элементов страницы и взаимодействовать с этими элементами.
- Строите селекторы XPath для поиска элементов по разным признакам.
- Умеете находить элементы в динамической структуре документа.
- Знаете, как проверить составленный селектор XPath с помощью плагина в Google Chrome.
- Умеете строить CSS-селекторы для поиска элементов по базовым атрибутам.
- Умеете взаимодействовать и проверять элементы в Selenide.
- Знаете, как писать Web UI тесты с использованием Selenide.
- Пишите простые, параметризованные и data-driven тесты с Cucumber.
- Запускаете тесты средствами Idea и Maven.
Темы:
- HTTP + Postman
- REST Assured
- Awaitility
Результаты:
- Знаете, как работает HTTP.
- Понимаете сущность ресурсного подхода.
- Умеете работать с HTTP-эндпоинтом через Postman.
- Пишете API-тесты, выполняющие последовательность HTTP-запросов.
- Понимаете модель тестирования Given-When-Then.
- Умеете писать API для систем с динамически изменяющимся состоянием и асинхронной обработкой данных.
- Знаете, как настроить задержку и интервал ожидания, чтобы не перегружать тестируемую систему.
Темы:
- Виды нагрузочного тестирования, его задачи и влияние на бизнес
- JMeter
Результаты:
- Понимаете цели и задачи нагрузочного тестирования.
- Проводите нагрузочное тестирование.
- Знакомы с основными элементами теста на JMeter.
- Можете написать тест для проверки производительности web-сервиса с помощью JMeter.
- Пишете сложные тесты нагрузки для web-сервисов, выполняющих последовательность зависимых запросов.
- Умеете валидировать результаты запросов, выполненных в процессе тестирования.
Темы:
- Обзор актуальных систем, SaaS CI
- Jenkins
- Итоги, перспективы карьеры в QA Automation
Результаты:
- Понимаете разницу между SaaS CI и hosted CI.
- Знакомы с основными системами CI.
- Знаете, как описываются задачи Jenkins через декларативный подход.
- Умеете настроить Jenkins для выполнения обычных задач.
- Настраиваете Jenkins для работы с кодом в Git-репозитории.
- Понимаете свои перспективы в сфере QA Automation.