Открыто

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

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

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

  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. MayaN95
      MayaN95 участвует.
      24 июл 2025
    2. MahanM
      MahanM участвует.
      21 июл 2025
    3. Money Maker LTD
      Money Maker LTD участвует.
      18 июл 2025
    4. skladchik.com
      Цена составляет 80100р.
      17 июл 2025

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

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