Скоро на All-DAR Курс по автоматизации тестирования Java Advanced 2.0 для продвинутых [qa.guru] [Дмитрий Тучс, Михаил Рубанов] (10 поток)

ALL DAR Bot

🛡 МОДЕРАТОР 🛡
Регистрация
26 Март 2018
Сообщения
85.538
Название: Курс по автоматизации тестирования Java Advanced 2.0 для продвинутых [qa.guru] [Дмитрий Тучс, Михаил Рубанов] (10 поток)


Описание:
6 месяцев обучения

Больше 50 занятий с домашкой, по 2 занятия в неделю, и живые вебинары
Программа по Java с погружением в backend

Ваш уникальный микросервисный проект на Spring, покрытый всеми видами автотестов
Обновленный курс по iOS

Собственный проект на Swift, полное погружение в мир нативного mobile-тестирования и ни слова про Appium
Обновлённый Niffler

Полноценный web-проект с продуманной архитектурой, позволяющей обучаться на практических примерах

Чему мы учим?

Вы прокачаете знания в автоматизации на Java до уровня Senior+ и разнообразите портфолио впечатляющими кейсами

Архитектура и дизайн

Глубокому пониманию JUnit extension. И использованию паттернов разработки, таких как decorator, singleton, factory, IOC.

Востребованность профессии

100 000 ₽ — Средняя заработная плата тестировщика.

Одна из самых перспективных профессий на рынке.

Возможность удалённой работы и гибкого графика.

Быстрый карьерный рост от джуна до тимлида.

Постоянное развитие и изучение новых технологий.

Возможность работы в различных сферах.

Высокий спрос на специалистов во всех IT-компаниях.
Зарплатные ожидания

~ 90 000 ₽


Junior QA, после курса
~ 200 000 ₽

Middle QA, опыт от 1 до 3 лет
~ 350 000 ₽

Senior, с опытом от 3 лет

Покроем всё

Тестированию нестандартных протоколов взаимодействия: gRPC, GraphQL, SOAP. А также работе с базами данных и Kafka, и с такими инструментами как docker и docker-compose.

Кроме того

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

Программа курса

Регулярно обновляем программу, учим только актуальному

1
Intro to QA.GURU Java Advanced v.2.0

Тестируем полностью самописное приложение в суперсовременном стеке (Java 21, Spring Boot 3, Spring Security 6, Spring Data, OAuth2, gRPC, GraphQL, Microservices, Docker, Postgres, React)

Научим не просто понимать, как написать автотест на GraphQL, но и разберемся в том, как это работает под капотом

Вы узнаете, как сделать запрос в БД из теста и зачем это может быть нужно в микросервисной архитектуре

Будем подменять настоящие микросервисы на Wiremock на практике

2
Знакомство с проектом, локальный запуск, введение в учебный процесс

Обзор проекта Niffler

Необходимые предусловия для работы с проектом

Запуск локально: настройка в Idea Ultimate, Community

Необходимые предусловия для запуска проекта в docker, отличия для Windows и Nix

Запуск проекта в докере

Выполнение домашних заданий

3
Введение в JUnit Extensions: Callbacks, место Extension в жизненном цикле теста JUnit 5

Интерфейсы BeforeEachCallback, AfterEachCallback и другие callback

Подключение Extension декларативно — аннотация @ExtendWith

Разбор теста, написанного на вводном занятии

Написание Extension для создания скриншотов на упавший тест

Полная программа

4
Погружение в JUnit Extensions: ExtensionContext, интерфейс ParameterResolver. Создание Extension "очередь тестовых пользователей"

Интерфейсы ExtensionContext и Store

Концепция шэринга данных через Store + Namespace

Создаем threadsafe очередь пользователей – UsersQueueExtension

5
Интеграция JUnit Extensions в проект с тестами: Метааннотации, 3 способа подключения, QA сессия по введению в JUnit Extensions
— Работа с аннотациями в Extensions, класс AnnotationSupport
— Метааннотации
— ServiceLoader и глобальное подключение Extensions
— Аннотация @RegisterExtension
— Q&A сессия

6
Работаем с реляционными базами данных из тестов: Погружение в JDBC
— Краткая теория JDBC
— Интерфейсы DataSource, Connection, Statement, PreparedStatement, ResultSet
— Реализация SpendRepositryJdbc
— Вставка данных в БД (sql INSERT) через JDBC
— Возврат ID созданной записи

7
JDBC: Репозитории и транзакции. Модификация данных в БД
— Понятие Repository, создание UserRepository
— Транзакции в JDBC
— Реализация UserRepositoryJDBC
— Модификация данных в БД

8
Библиотека Spring-JDBC для работы с БД: базовые концепции
— JDBC-Template: теория и применимость
— Реализация простых запросов (CRUD) c помощью библиотеки Spring-JDBC

9
Библиотека Spring-JDBC — работа с ключами, транзакции, адаптеры
— Класс TransactionTemplate
— Интерфейс PreparedStatementCreator
— Реализация UserRepositorySpringJdbc

10
Библиотека Hibernate и введение в спецификацию JPA
— Hibernate и JPA — краткая теория
— Интерфейсы EntityManagerFactory и EntityManager
— Декораторы для EntityManager: интерфейс EntityTransaction и использование ThreadLocal EntityManager

11
Библиотека Hibernate: интеграция с тестовым проектом
— Конфигурационный файл persistence.xml
— Реализация UserRepositoryHibernate
— Особенности использования Hibernate — работа с коллекциями, ленивая инициализация

12
Использование созданных UserRepository и SpendRepository внутри JUnitExtensions. QA сессия по работе с БД
— Создание аннотации @testuser и Extension AbstractTestUserExtension
— Наследование Extension: создание класса DbTestUserExtension
— Реализация логики создание тестового пользователя: хэширование пароля, создание в БД нескольких микросервисов
— Передача пользователя в тест через ParameterResolver
— Q&A сессия

13
Автоматизация на проекте «с нуля» – строим минимальный фреймворк
— Build.gradle — best practices
— Конфигурации запуска
— Абстракции для работы с REST api
— PageObject
— Утилитные классы

14
Автоматизация на проекте «с нуля» – базовые абстрактные классы, Dependency Injection. QA сессия по структуре проекта с тестами
— Классы BaseRestTest, BaseGraphQL
— Подготовка к написанию REST тестов — пишем простые тесты на internal api (без авторизации)
— Концепция Dependency Injection и ее реализация с помощью интерфейса TestInstancePostProcessor в JUnit 5
— Q&A сессия

15
Параллелизация тестов в JUnit5: Теория
— Теория параллельного программирования и ее применимость к тестам
— Shared mutable state: что такое и чем вредит
— Конфигурация и стратегии параллелизации в JUnit 5

16
Параллелизация тестов в JUnit5: инструменты управление параллельным запуском. QA сессия по параллелизации
— Аннотация @ResourceLock
— Аннотация @Execution
— Особенности работы с JUnit Extensions при многопоточном выполнении тестов
— Еще раз про важность использования ThreadLocal переменных на примере EntityManager
— Q&A сессия

17
Allure Lyfecycle
— Класс AllureLifecycle
— Создаем ServerLogExtension, добавляющий логи бэкенда в Allure
— Дорабатываем UsersQueueExtension
— Создаем Extension для удаления вложений к тестам

18
Allure: пишем интеграции для работы с SQL
— Принцип работа внешних интеграций Allure на примере класса AllureSelenide
— Реализация интеграции для работы с SQL: библиотека P6Spy

19
Selenide: кастомные Condition
— Классы Condition / CollectionCondition
— Пишем свои кастомные ожидания для проекта Niffler: FriendsCondition, PhotoCondition

20
Selenide: нестатическая кинфигурация, библиотека selenide-core
— Класс SelenideConfiguration
— Реализация поднятия 2 браузеров в тесте
— Параллельное выполнение тестов в разных браузерах
— Использование PageObject для бибилотеки selenide-core

21
Selenide: нестатическая кинфигурация, библиотека selenide-core
— Класс SelenideConfiguration
— Реализация поднятия 2 браузеров в тесте
— Параллельное выполнение тестов в разных браузерах
— Использование PageObject для бибилотеки selenide-core
— QA сессия по кастомизации Allure и Selenide

22
Реализуем Oauth авторизацию с помощью Retrofit: Базовые концепции и подготовка инфраструктуры
— Краткая теория Oauth 2.0 code flow
— Смотрим http-запросы в консоли браузера и подготавливаем инфраструктуру для автоматизации логина

23
Реализуем Oauth авторизацию с помощью Retrofit: Используем ExtensionContext и http Interceptors
— Создаем интерфес ContextHolderExtension
— Создаем класс CodeInterceptor для okhttp клиента
— Создаем ApiLoginExtension

24
Расширяем тестовое покрытие — применяем ApiLoginExtension, DbTestUserExtension для построения полноценного фреймворка.

Q&A сессия

— Пишем WEB и API тесты с созданием всех тестовых данных через JUnit Extensions.
— Q&A сессия по авторизации через Retrofit

25
Установочное занятие по диплому
— Знакомство с дипломными проектами: Rococo, Rangiffler
— Обзор успешной дипломной работы

26
Создаем WEB-сервис на Java с использованием Spring boot
— Базовые компоненты Spring (context, DI, сервисы)
— Использование Spring Web (создаем REST сервис)
— Использование Spring Data JPA (работа с базой)

27
Работа с исключениями, запуск Spring boot приложения в docker: плагин google jib
— Концепция Controller Advice, возврат на фронт унифицированных ошибок
— Docker — краткая теория
— Докеризация Spring-приложения через плагин google jib

28
Пишем первые тесты, разбираемся с селекторами
— Что такое селекторы, как по них находить элементы
— Как посмотреть дерево элементов через консоль
— Как работать с брейкпойнтами во время написания теста
— Как добавить первые тесты в проект
— Как запускать тесты
— Пишем первый тест на экране регистрации

29
Переиспользуем код между разными тестами
— Пишем второй тест и переиспользуем код между ними
— Стабилизируем тесты: сбросив данные о регистрации
— Как деталилазия шагов упрощает чтение тест-репорта
— Выносим общий код в сетап и тирдаун

30
Погружение: пишем тесты для сложных сценариев
— Добавляем accessibilityIdentifier для тестов
— Пишем сложный тест на три экрана — проходим авторизацию, добавляем новые траты и проверяем, что они появились в общем списке.
— Упрощаем тест, чтобы его легко было прочитать.

31
Page Object паттерн в IOS тестах
— Делим тесткейсы на разные файлы
— Зачем нужны пейджобжекты и как они помогают писать новые тесты
— Описываем структуру пейдж-обжекта и переносим все прошлые тесты на них

32
Особенности XCUITests
— Приводим тесты к нужной структуре, обсуждаем название тестов
— Обсуждаем разные способы получения селекторов
— Способы ускорения тестов

33
Финальная лекция блока

Как максимально быстро настроить автоматический запуск тестов и оповещения в мессенджер

34
Unit тесты – пишем тестируемый код и тесты для него
— Краткая теория юнит-тестирования
— Библиотека Mockito
— Покрываем тестами код сервисов Niffler

35
GraphQL: Реализация в Spring Boot
— GraphQL в Spring Boot
— Аннотации @QueryMappig, @chemaMapping
— Интерфейс DataFetchingEnvironment
— Утилита graphiql

36
GraphQL: Пишем тесты с помощью Retrofit
— Подготовка тестовых данных
— Создаем Extension GqlRequestExtension для работы со статическими данными
— Пишем тесты на проверку вложенных подзапросов
— Пишем тесты на проверку работы с Apollo Cache

37
gRPC: Реализация в Spring Boot
— gRPC в Spring Boot
— Protobuf и Protoc компиллятор
— Интерфейс StreamObserver
— Конфигурация, работа с исключениями и информирование об ошибках

38
Тестируем gRPC сервисы с помощью нативных библиотек
— Подготовка тестовых данных
— Особенности работы с proto-файлами тестируемых сервисов в тестах
— Пишем тесты на gRPC сервис niffler-currency
— Сложные кейсы: gRPC Streaming

39
SOAP: Реализация в Spring Boot
— SOAP в Spring Boot
— XSD и WSDL схемыАннотации @Endpoint, @PayloadRoot, @ResponsePayload

40
SOAP: Пишем тесты с помощью Retrofit
— Подготовка тестовых данных
— Особенности работы с wsdl тестируемых сервисов в тестах
— Пишем тесты на SOAP сервис niffler-userdata

41
GraphQL, gRPC, SOAP: Q&A сессия

42
Тестирование микросервисов в docker-compose: запуск тестов локально
— Поднимаем микросервисы в docker compose
— Selenoid & Selenoid UI
— Доработка конфигурации тестов для запуска в docker
— Упаковка проекта с тестами в docker контейнер, написание Dockerfile

43
Тонкости инфраструктуры: Докеризация фронтенда, bash-скрипты
— Рассмотрим bash-скрипты в проекте niffler
— Докеризация фронтеда с использованием nginx
— Особеннности работы с docker-окружением

44
Тестирование микросервисов в docker-compose: работа с артефактами тестов (Allure) + Q&A по работе с docker compose
— Обзор Allure docker service
— Написание интерфейса SuiteExtension, AllureSendresultExtension
— Q&A сессия

45
Wiremock в тестах: in-memory подход
— Сравнение с библиотекой Mockito
— Используем in-memory Wiremock прямо в тестах

46
Wiremock в тестах: standalone подход, мокаем REST API и gRPC

Используем http и gRPC Wiremock в docker-compose

47
Apache Kafka: Использование в Spring Boot
— Kafka в проекте на Spring Boot
— Конфигурации consumer и producer

48
Apache Kafka: взаимодействие из тестов

Пишем свой Consumer и JUnit Extension для его использования в тестах

49
Q&A сессия по Wiremock и Kafka

50
Конференции – готовим доклад и себя к выступлению
— Как попасть на конференцию спикером
— Как готовиться
— Презентация – хорошая и плохая
— Дискуссия до и после доклада
— Ради чего? Плюсы и минусы

51
CI/CD — pipeline, к которому мы шли

Рассматриваем вопросы сборки проекта и деплоя на прод с использованием GHA

52
Q&A по дипломному проекту

Отвечаем на вопросы, возникшие при работе над дипломным проектом

53
Выпускной!

ссылка на продажник

Материал «Курс по автоматизации тестирования Java Advanced 2.0 для продвинутых [qa.guru] [Дмитрий Тучс, Михаил Рубанов] (10 поток)», возможно, скоро появится на All-dar.

Пройдите регистрацию и оформите Premium подписку, чтобы первым получить доступ, и воспользуйтесь поиском — может быть, он уже опубликован.

Скрытый контент для пользователей All-dar.
 

Присоединяйтесь, чтобы открыть полный доступ

Комментарии и материалы этой темы доступны только зарегистрированным участникам

Новый участник?

Регистрация занимает меньше минуты

Уже с нами?

Войдите в свой аккаунт

Сверху