Открыто

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

Тема в разделе "Курсы по программированию", создана пользователем Топикстартер, 14 июл 2025.

Основной список: 11 участников

  1. 14 июл 2025
    #1
    Топикстартер
    Топикстартер ЧКЧлен клуба

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

    upload_2025-7-14_12-0-35.png
    • 6 месяцев обучения
    • Больше 50 занятий с домашкой, по 2 занятия в неделю, и живые вебинары
    • Программа по Java с погружением в backend
    • Ваш уникальный микросервисный проект на Spring, покрытый всеми видами автотестов
    • Обновленный курс по iOS
    • Собственный проект на Swift, полное погружение в мир нативного mobile-тестирования и ни слова про Appium
    • Обновлённый Niffler
    • Полноценный web-проект с продуманной архитектурой, позволяющей обучаться на практических примерах
    Чему мы учим?
    Вы прокачаете знания в автоматизации на Java до уровня Senior+ и разнообразите портфолио впечатляющими кейсами
    • Архитектура и дизайн. Глубокому пониманию JUnit extension. И использованию паттернов разработки, таких как decorator, singleton, factory, IOC.
    • Покроем всё. Тестированию нестандартных протоколов взаимодействия: gRPC, GraphQL, SOAP. А также работе с базами данных и Kafka, и с такими инструментами как docker и docker-compose.
    • Кроме того. Создадим весь код с нуля, исследуем, как тестируемые технологии работают в Spring Boot под капотом.
    Востребованность профессии
    • 100 000 ₽ — Средняя заработная плата тестировщика.
    • Одна из самых перспективных профессий на рынке.
    • Возможность удалённой работы и гибкого графика.
    • Быстрый карьерный рост от джуна до тимлида.
    • Постоянное развитие и изучение новых технологий.
    • Возможность работы в различных сферах.
    • Высокий спрос на специалистов во всех IT-компаниях.
    Программа курса
    Регулярно обновляем программу, учим только актуальному

    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 на курсе Java Advanced 2.0
    В IT больше 12 лет. Начинал в аналитике, управлял проектами. Сейчас — Head of QA at Dodo Brands. Занимается менторством, пишет и автоматизирует на Java. Автор учебной программы QA.GURU Java Advanced.

    Михаил Рубанов. Преподаёт iOS-программу на курсе Java Advanced 2.0
    Head of mobile в Dodo Engineering. В разработке любит интерфейсы, тесты и доступность. Купил 10 эргономичных клавиатур. Написал книгу «Про доступность iOS». Пишет статьи на Хабр, ведет Telegram-канал о мобильной разработке в Dodo.

    Цена 80100 руб
    Скрытая ссылка
     
    Последнее редактирование модератором: 17 июл 2025
    1 человеку нравится это.
  2. Последние события

    1. yarikgemer17
      yarikgemer17 участвует.
      2 авг 2025 в 14:17
    2. Desteroff
      Desteroff участвует.
      1 авг 2025 в 14:40
    3. skladchik.com
      В складчине участвует 10 человек(а).
      1 авг 2025 в 14:40
    4. MayaN95
      MayaN95 участвует.
      24 июл 2025

    Последние важные события

    1. skladchik.com
      Цена составляет 80100р.
      17 июл 2025