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

Яндекс Практикум
4,7
Научитесь выстраивать процесс автоматизации в ваших проектах и компании за 5 месяцев
4,86
На основании отзывов пользователей
на Отзовике, IRecommend и TutorTop
27 000 /мес
или сразу 147 500
Смотреть курс
Программа обучения

Составили программу по образовательной модели 4C/ID: будете учить только то, что нужно для решения настоящих задач автоматизатора

Введение в профессию

Это бесплатный модуль, чтобы вы попробовали себя в роли автоматизатора тестирования на Java и поняли, хотите ли развиваться в этом направлении

Автоматизация тестирования
Знакомство с курсом
Команда сопровождения
Введение в автоматизацию

Что такое автоматизация тестирования, как выбрать язык программирования для автотестов

Обучение в Практикуме

Как устроен курс, кто будет помогать учиться и проверять проекты

Поймёте, подойдёт ли вам профессия, и узнаете, как устроено обучение в Практикуме

Основы Git
Git
Командная строка
GitHub
Коммиты
Репозитории
Ветки
Fork
Настройка окружения и знакомство с командной строкой

Что такое Git. Как работать с командной строкой — навигация и советы. Операции с папками и файлами: создание, копирование, перемещение, чтение и удаление. Эффективная работа с командной строкой. Установка и настройка Git.

Работа с Git

Инициализация репозитория и добавление файлов. Создание первого коммита. Знакомство с историей коммитов и GitHub. Регистрация на GitHub. Создание удалённого репозитория. Что такое SSH. SSH‑ключ: генерация и привязка к GitHub. Связывание и синхронизация локального и удалённого репозитория.

Основы работы с ветками в Git

Скачивание и клонирование репозитория, выполнение Fork, создание ветки.

Настроите Git, разберёте основные команды. Погрузитесь в работу с GitHub и подготовитесь к первому проекту

Введение в Java
Java
IntelliJ IDEA
Maven
Java Development Kit (JDK)
Введение в Java

Вывод в консоль. Классы и объекты. Методы. Как связаны метод, класс и объект.

Переменные

Действия с переменными. Константа. Арифметические операторы. Строки. Конкатенация строк.

Методы

Что такое метод. Объявление метода. Параметры и аргументы. Методы с несколькими параметрами. Методы, возвращающие значение.

Условные операторы

Логические выражения. Тип данных boolean. Условный оператор if. Область видимости переменных. Условный оператор if-else. Вложенные условные операторы. Логические операторы. Метод, возвращающий значение в зависимости от условия.

Циклы

Цикл for. Циклы в обратном направлении и с изменением шага. Циклы с условием и вложенные циклы. Цикл while. Бесконечный цикл.

Массивы

Определение массивов. Индексы и элементы. Длина массива. Выход за границы массива. Массивы и цикл for.

Классы

Объекты. Создание объекта. Код с несколькими объектами. Конструкторы.

Локальная среда разработки

Установка и настройка JDK. Среда разработки IntelliJ IDEA. Установка и использование Maven. Создание и импорт Maven-проектов.

Познакомитесь с основнами языка Java и научитесь писать минимальный код

Java. Базовые конструкции
ООП
Строгая и статическая типизация
Примитивы и ссылочные типы
static
Абстракция
Модификаторы доступа

Public, private и default. Инкапсуляция. Реализация инкапсуляции.

Типы данных

Строгая и статическая типизация. Примитивы и ссылочные типы. Значения по умолчанию. Приведение типов. Классы-обёртки. Передача параметров в методы.

Наследование

Переопределение методов. Использование ключевых слов super и this.

Ключевое слово static

Статические переменные и методы. Особенности статических элементов. Использование static в main.

Абстрактные классы

Определение и создание абстрактных классов и методов. Наследование абстрактных классов.

Интерфейсы

Объявление и реализация интерфейсов. Наследование интерфейсов. Абстрактные классы и интерфейсы как инструменты абстракции.

В среде разработки напишете программу, которая хранит, сортирует и выводит данные, и сдадите её через GitHub

Java. Продвинутый уровень
enum
switch
StringBuilder
ArrayList
Comparator
Исключения
Enum и оператор switch

Определение и использование enum. Методы enum. Сравнение элементов. Использование switch.

Строки

Создание и сравнение строк. Подстроки и символьные массивы. Поиск и выделение подстрок. Неизменяемость строк. StringBuilder. Работа со строками.

Списки и хеш-таблицы

Методы работы со списками и хеш‑таблицами. Создание, использование списков и хеш-таблиц, управление ими.

Коллекции

Фреймворк коллекций. ArrayList. Comparator. Множества.

Обработка исключений

Исключения и ошибки. Проверяемые и непроверяемые исключения. Обработка исключений. Продвинутые методы обработки.

Полиморфизм

Определение полиморфизма. Переопределение и перегрузка методов. Взаимодействие с классом Object.

Изучите всё необходимое, чтобы чувствовать себя уверенно в Java

Введение в юнит-тестирование
Консоль
JUnit
Assert
Лямбда-функции
Параметризация
Консоль

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

Юнит-тесты

Названия юнит-тестов. JUnit: инструментарий. Структура теста в JUnit. Аннотации @Test, @Before, @After. Основы написания тестов. Assert-функции: assertEquals, assertNotEquals, assertThat. Матчеры. Юнит-тесты в IDE. Лямбда-функции. Лямбда-функции с параметрами. Метод assertAll. Параметризация. Параметризация с enum. Параметризация с несколькими аргументами: метод. Параметризация с несколькими аргументами.

Параметризация

Определение параметризации. Написание параметризованных тестов.

Разберётесь с основными инструментами юнит‑тестирования и напишете первые тесты

Юнит-тестирование
DI
Mockito
Spy
Инъекции зависимостей (DI)

Основы инъекции зависимостей. Практика написания инъекций.

Моки и стабы

Определение мока. Создание моков. Особенности моков. Использование Mockito. Стабы. Spy-объекты. Использование Spy.

Разрыв зависимостей

Изоляция в тестах. Разрыв зависимостей. Оценка покрытия тестами.

Покроете юнит-тестами приложение учебного сервиса Яндекс Самокат

UI-тестирование
Архитектура приложений
DevTools
Selenium
Page Object Model (POM)
Архитектура приложений

Клиент-серверная архитектура. Веб‑приложение. URL. Протоколы HTTP и HTTPS. Структура HTTP-ответа. Веб‑страница: HTML, CSS, JavaScript. HTML: теги и атрибуты. DOM.

DevTools

Поиск элементов в DevTools. Просмотр запросов. Куки.

Введение в UI‑тестирование

Что такое UI-тесты. Пирамида тестирования. Преимущества и недостатки UI-тестов.

Selenium: локаторы

Узлы. Значение элемента. Список элементов. Усечённый список. Видимые и невидимые элементы. Вложенные элементы по относительному пути. Составные локаторы.

Selenium: действия

Подключение Selenium. Открыть и закрыть страницу. Клик по элементу. Заполнение поля ввода. Получить текст элемента. Перейти к элементу. Работа с куками из тестов. Параметризация в тестах для веб-приложений.

Page Object Model (POM)

Определение и использование Page Object Model. Работа с локаторами и методами.

Напишете автотесты для учебного сервиса Яндекс Самокат

Тестирование API
REST
JSON-API-запросы
Postman
Swagger
Allure
REST Assured
Введение в API

Архитектура приложения. Определение API. Архитектурные решения — REST. HTTP: структура запросов и ответов. JSON. Тестирование сервера с помощью Postman. Документация API, включая Swagger. Механизмы авторизации.

Как написать запросы

Написание GET-запроса. Написание POST- и PATCH-запросов. Сериализация и десериализация. Методы toJSON и fromJSON. Основы процессов и потоков. Многопоточность. Асинхронность.

Тестирование API

Почему важно автоматизировать тестирование API. Флоу автоматизированного тестирования для API. Подготовка тестового стенда. Подготовка тест-кейсов. Подготовка данных. Использование моков в API. Отчёты о тестировании. Установка и использование Allure. Аннотации в Allure.

Напишете тесты для API приложения и подключите Allure‑отчёты

Инфраструктура и архитектура
CI/CD
Docker
Kubernetes
Jenkins
Монолитная архитектура
Микросервисная архитектура
Удалённый сервер
Инфраструктура

Что такое CI/CD. Инструменты CI/CD. Docker и его использование с Selenium Grid. Kubernetes. Jenkins. Интеграция Jenkins с Docker и Allure. Создание удалённого сервера. Развёртывание Jenkins на удалённом сервере.

Архитектура

Монолитная архитектура. Микросервисная архитектура. Виды межсервисного взаимодействия. Архитектурные паттерны.

Как покрывать тестами разные уровни программы

Количество тестов на каждый уровень пирамиды тестирования. Время запуска тестов разных уровней. Оценка покрытия тестами по каждому уровню.

Посмотрите на всё тестирование сверху и обратитесь к инфраструктуре

Итоговая работа

Проект, который объединяет весь изученный материал. Нужно будет покрыть тестами веб‑приложение, API и написать юнит‑тесты на отдельную функциональность. Хороший способ связать воедино всё, чему удалось научиться за курс.

Selenide

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

Базы данных

Язык запросов SQL, базы данных и как их тестировать. Дополнительный блок, чтобы подтянуть знания, для тех, кто чувствует себя неуверенно в этих темах.

Вебинары для разбора сложных тем
Расширенный курс «Автоматизатор тестирования на Java»

Этот формат стоит дороже, но включает в себя больше тем и проектов.

Дополнительные темы
Дополнительные проекты
Индивидуальные консультации
Ещё 2 темы

Работа с асинхронными сервисами на примере Kafka. Behavior-Driven Development.

Проектный спринт

Ещё один итоговый проект, который усилит портфолио.

8 индивидуальных консультаций

По темам курса или техническому собеседованию.

Больше навыков, которые помогут профессионально расти