15 часов.
Рассмотрим основные концепции и ограничения Spring в разработке приложений и автотестов. Это актуально и разработчикам автотестов, т.к. Spring поможет снизить трудоемкость их разработки, так и ручным тестировщикам, т.к. им необходимо конфигурировать Spring-приложения перед прогоном тестового набора.
- ручные QA Spring-приложений
- разработчики (любых) автотестов Spring-приложений
- участники поймут структуру Spring-приложений и Spring-based тестов
- смогут ускорить разработку автотестов за счет возможностей Spring и компонентов в его составе
- Git local workflow
- Git remote workflow
- Fork and clone main repo
- Pull Requests
- Внутренние атрибуты качества
- Пример процедурного legacy-кода и вопросы сопровождаемости
- Инкапсуляция
- Полиморфизм и абстракции
- Повторное использование и наследование/делегирование
- Слои
- Зависимости компонентов: порождающие шаблоны
- Рефакторинг процедурного legacy-кода
- Layered Design
- DI
- Структура теста
- Именования
- Проверки
- Тест-дублеры
- Покрытие
- Допокрытие системы до ≥80%
- Понятие фреймворка и контейнеров
- Spring Core как DI Framework
- Понятие конфигурации и контекста
- Концепция AOP и реализация ключевых задач фреймворка с помощью proxies
- Обзор модулей Spring
- Обзор зависимостей и структуры типового Spring Application
- Компоненты/бины, неявный аспект их именования
- Сборка и запуск приложения
- Сборка и запуск приложения
- Локализация и решение проблем
- Способы конфигурирования: java, xml, groovy
- Структура конфигурации
- Инициализация компонентов
- Внедрение зависимостей
- Жизненный цикл компонентов
- SpEL
- Обзор модульных и интеграционных тестов
- Тесты как компоненты Spring
- Тест-дублеры
- Тестовые и production профили
- Обзор тестовой кодовой базы
- Сборка приложения и тестов и запуск тестов
- Покрытие модульными и интеграционными тестами
- Тестовые конфигурации
- Сборка и запуск тестовых наборов
- События жизненного цикла компонента и их обработчики
- Управление безопасностью
- Управление транзакциями
- Управление повторами операций
- Ресурсы как частный случай компонентов
- Допокрытие модульными и интеграционными тестами бизнес-логики
- Собственная логика жизненного цикла
- Конфигурация безопасности, транзакций и retrying
- Сборка и запуск тестовых наборов
- Тестовые и production конфигурации РСУБД источников данных
- Понятие Connection Pool
- Spring Data ORM
- Обзор JPA Entities и Persistance Contexts
- Провиженинг схемы БД при изменениях структур данных
- CRUD App with JPA Repositories
- Реализация CRUD-логики
- Покрытие модульными и интеграционными тестами CRUD-логики
- Сборка и запуск тестовых наборов
- Задачи Spring Boot
- Рефакторинг Spring CRUD web-приложения на Boot
- Сборка и запуск тестов