Skip to content

EugenMakarevich/java-qa-automation-course

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

131 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Программирование на Java для тестировщиков

Курс направлен на изучение возможностей языка Java и вспомогательных библиотек, позволяющих разрабатывать автотесты для приложений разных типов, а также шаблонов проектирования, позволяющих удобно организовать и легко изменять код.

Вводная часть

  • Лекция 0.1. Обзор языков программирования и место Java в общей картине мира
  • Лекция 0.2. Установка и настройка Java SDK
  • Лекция 0.3. Первая работающая программа на языке Java
  • Лекция 0.4. Хранение кода: Git и GitHub
  • Лекция 0.5. Gradle и другие сборщики
  • Лекция 0.6. Среда разработки IntelliJ IDEA
Задание №1: Подготовить инфраструктуру и создать первую работающую программу

1. Основы программирования

  • Лекция 1.1. Классы и пакеты, файлы и директории
  • Лекция 1.2. Фигурные скобочки и структура программного кода
  • Лекция 1.3. Выражения и операции
  • Лекция 1.4. Переменные и значения
  • Лекция 1.5. Типы переменных и значений
  • Лекция 1.6. Среда разработки: запуск программы в режиме отладки
  • Лекция 1.7. Функции
  • Лекция 1.8. Классы и объекты
  • Лекция 1.9. Методы: функции, ассоциированные с объектами

Задание №2: Потренироваться использовать функции, классы, объекты и методы

  • Лекция 1.10. Немного теории: что такое "автотесты"?
  • Лекция 1.11. Подключаем зависимости от дополнительных библиотек
  • Лекция 1.12. Делаем первый тест, используя фреймворк для запуска тестов TestNG
  • Лекция 1.13. Среда разработки IDEA: полезные клавиатурные сочетания
Задание №3: Подключить тестовый фреймворк и сделать первые тесты

2. Двухуровневая архитектура тестового набора

  • Лекция 2.1. Установка учебного приложения
  • Лекция 2.2. Делаем тест для веб-приложения, используя драйвер Selenium
  • Лекция 2.3. Фикстуры: инициализация и зачистка
  • Лекция 2.4. Рефакторинг: улучшаем читаемость кода, выделяем вспомогательные методы

Задание №4: Сделать тесты для создания групп и контактов в адресной книге

  • Лекция 2.5. Создаём общий базовый класс для тестов, где можно хранить методы, общие для всех тестов
  • Лекция 2.6. Заменяем наследование на делегирование и создаём двухуровневую архитектуру
  • Лекция 2.7. Выделяем специализированные классы-помощники
  • Лекция 2.8. Создаём общий базовый класс для классов-помощников

Задание №5: Реализовать двухуровневую архитектуру тестового набора

  • Лекция 2.9. Делаем новый тест без использования рекордера

Задание №6: Сделать тесты для удаления и модификации групп и контактов

3. Управление потоком выполнения кода: ветвление

  • Лекция 3.1. Проверка условий при помощи конструкции if-then-else
  • Лекция 3.2. Полная форма if-then-else. Неполная форма if-then. Вложенные проверки. Свёртка вложенных проверок
  • Лекция 3.3. Запуск тестов в разных браузерах
  • Лекция 3.4. Сравнение объектов при помощи оператора == и метода equals

Задание №7: Научиться запускать тесты в разных браузерах

  • Лекция 3.5. Оптимизация заполнения форм: оставляем дефолтные значения в полях
  • Лекция 3.6. Оптимизация заполнения форм: оставляем не изменяющиеся значения в полях
  • Лекция 3.7. Перехват исключений
  • Лекция 3.8. Заполнение форм с почти одинаковым набором полей
  • Лекция 3.9. "Ленивые" действия
  • Лекция 3.10. Проверка и обеспечение выполнения предусловий

Задание №8: Реализовать проверку и обеспечение предусловий в тестах

4. Коллекции и циклы

  • Лекция 4.1. Знакомство с коллекциями
  • Лекция 4.2. Типы коллекций: List, Set, Map
  • Лекция 4.3. Перебор коллекций с помощью циклов for, while и foreach
  • Лекция 4.4. Методы для работы с коллекциями
  • Лекция 4.5. Использование лямбда-выражений для обработки коллекций

Задание №9: Написать тесты с использованием коллекций и циклов

  • Лекция 4.6. Оптимизация кода: использование Stream API для работы с коллекциями
  • Лекция 4.7. Применение сортировок и фильтраций в коллекциях
  • Лекция 4.8. Вложенные циклы и сложные операции с коллекциями
Задание №10: Применить Stream API для оптимизации тестов

5. Работа с файлами

  • Лекция 5.1. Чтение данных из файла
  • Лекция 5.2. Запись данных в файл
  • Лекция 5.3. Форматы файлов: текстовые, бинарные, CSV, JSON, XML
  • Лекция 5.4. Работа с JSON и XML при помощи библиотек

Задание №11: Написать тесты с чтением и записью данных в файлы

  • Лекция 5.5. Потоки ввода-вывода в Java
  • Лекция 5.6. Обработка исключений при работе с файлами
  • Лекция 5.7. Работа с большими файлами и буферизация
Задание №12: Написать тесты для обработки больших файлов

6. Тестирование веб-приложений

  • Лекция 6.1. Основы тестирования веб-приложений
  • Лекция 6.2. Введение в Selenium WebDriver
  • Лекция 6.3. Работа с элементами страницы: клики, ввод текста, проверки
  • Лекция 6.4. Динамическое ожидание элементов на странице
  • Лекция 6.5. Работа с окнами, алертами и фреймами

Задание №13: Написать тесты для основных функций веб-приложения

  • Лекция 6.6. Поддержка тестов для разных браузеров
  • Лекция 6.7. Локаторы и XPath для поиска элементов
  • Лекция 6.8. Работа с AJAX и динамическим контентом

Задание №14: Написать тесты для работы с динамическим контентом

7. Работа с базами данных

  • Лекция 7.1. Основы работы с базами данных и SQL
  • Лекция 7.2. Подключение к базе данных из Java с помощью JDBC
  • Лекция 7.3. Выполнение CRUD-операций с базой данных
  • Лекция 7.4. Использование транзакций в JDBC
  • Лекция 7.5. Обработка исключений при работе с базами данных

Задание №15: Написать тесты для CRUD-операций с базой данных

  • Лекция 7.6. Оптимизация запросов и индексация таблиц
  • Лекция 7.7. Использование ORM для работы с базами данных
  • Лекция 7.8. Взаимодействие с NoSQL базами данных
Задание №16: Написать тесты для работы с NoSQL базой данных

8. Тестирование REST API

  • Лекция 8.1. Основы REST API и HTTP
  • Лекция 8.2. Подключение к REST API из Java
  • Лекция 8.3. Отправка GET, POST, PUT, DELETE запросов
  • Лекция 8.4. Обработка ответов от сервера и проверка статусов
  • Лекция 8.5. Тестирование безопасности и авторизации REST API

Задание №17: Написать тесты для REST API приложения

  • Лекция 8.6. Работа с JSON и XML в REST API
  • Лекция 8.7. Использование библиотек для тестирования REST API
  • Лекция 8.8. Параметризованные тесты для REST API
Задание №18: Написать параметризованные тесты для REST API

9. Оптимизация и масштабирование тестов

  • Лекция 9.1. Стратегии оптимизации тестов
  • Лекция 9.2. Параллельное выполнение тестов
  • Лекция 9.3. Работа с большими объемами данных
  • Лекция 9.4. Использование контейнеризации для тестов (Docker)
  • Лекция 9.5. Масштабирование тестов в облачных окружениях

Задание №19: Оптимизировать тесты для параллельного выполнения

  • Лекция 9.6. Работа с отчетами и логированием
  • Лекция 9.7. Использование CI/CD для автоматизации тестов
  • Лекция 9.8. Автоматическое развертывание тестов в разных окружениях
Задание №20: Настроить CI/CD для автоматизации тестов

10. Тестовые фреймворки и инфраструктура

  • Лекция 10.1. Введение в тестовые фреймворки
  • Лекция 10.2. Основы работы с JUnit
  • Лекция 10.3. Использование TestNG для продвинутого тестирования
  • Лекция 10.4. Настройка Maven для автоматизации сборки и тестов
  • Лекция 10.5. Использование Gradle для управления зависимостями и сборкой

Задание №21: Написать и настроить тесты с использованием JUnit и TestNG

  • Лекция 10.6. Интеграция тестов с CI/CD пайплайнами
  • Лекция 10.7. Использование Selenide для упрощения автоматизации UI-тестов
  • Лекция 10.8. Настройка окружений с помощью Docker и Kubernetes для тестирования

Задание №22: Интеграция тестов с CI/CD и настройка тестовой инфраструктуры с использованием Docker

  • Лекция 10.9. Использование Allure для создания отчетов о тестировании
  • Лекция 10.10. Мониторинг и анализ результатов тестирования
  • Лекция 10.11. Интеграция с внешними сервисами для уведомлений и отчетов
Задание №23: Настроить создание отчетов с использованием Allure и интеграцию с внешними сервисами для уведомлений

Releases

No releases published

Packages

 
 
 

Contributors