2 недели
Основы Python
Познакомитесь с базовыми конструкциями языка: классами и объектами, функциями, ветвлениями и так далее. Будете сразу применять знания на практике — писать код внутри уроков и в среде разработки PyCharm.
Основы Python
Функции
Списки
Классы
Объекты
PyCharm
Циклы
Как устроено обучение
Сроки и дедлайны. Как всё организовано. Что поможет справиться. Ошибки и ответственность.
Знакомство с Python
Язык Python. Вывод на экран. Пробелы в выводе на экран. Переменные. Как называть переменные. Константы. Типы данных: числа и строки. Операции с целыми числами. Конкатенация строк. Форматирование строк. Преобразование типов. Дробные числа.
Ветвления
Логические выражения. Тип данных bool. Ветвление кода. Ветвление кода с else. Множественные ветвления. Логические операции. Приоритет логических операторов.
Списки
Знакомство со списками. Длина списка и индексы. Списки и индексы: практика. Операции со списками: append(), insert() и remove(). Операции со списками: pop() и in. Сложение списков. Списки списков и копирование. Операции со списками: практика.
Циклы
Циклы. Диапазоны от и до. Функция reversed(). Перебор через обратный срез списка. Вложенные циклы. Цикл с условием. Циклы: практика.
Операции со строками
Длина строки, индексы и подстроки. Метод split(). Метод replace().
Словари и коллекции
Что такое словарь. Как получить и изменить значение в словаре. Как добавить элементы в словарь. Метод get(). Методы keys() и values(). Перебор элементов в словаре. Как проверить наличие элемента. Словари: практика.
Функции
Функция. Как объявить и вызвать функцию. Аргументы и параметры. Возврат значений из функции. Значение по умолчанию и разные виды аргументов. Библиотеки. Вызов функции из функции. Ошибки и их обработка. Ошибки в списках и словарях. Функции: практика.
Классы и объекты
Классы и объекты. Как создать класс. Как создать объект. Ошибка AttributeError. Как объявить и вызвать метод. Встроенные методы: __dict__. Как взаимодействуют классы.
PyCharm
Командная строка. Как запустить Python в командной строке. Среда разработки PyCharm. Как создать проект. Интерфейс PyCharm. Запуск и отладка проекта.
Решите несколько комплексных задач на Python. Напишете программы, которые печатают текст, считают время и составляют таблицы
2 недели
ООП: наследование и полиморфизм
Изучите основы объектно-ориентированного программирования (ООП). Это принципы, которые помогают решать сложные задачи, настраивать методы и классы, создавать логичные иерархии. ООП помогает писать программы, которые легко поддерживать и проверять.
ООП
Полиморфизм
Наследование
Миксины
Наследование
Что такое ООП. Наследование. Наследование с конструктором. Функция super(). Переопределение методов. Переопределение методов: меняется сигнатура. Переопределение и super(). Полиморфизм.
Множественное наследование
Множественное наследование. Множественное наследование с конструктором. Множественное наследование и super(). Ромбовидное наследование. Миксины. Наследование: практика.
Статические методы
Что такое статический метод. Как вызвать статический метод через класс. Как применять статический метод на практике.
Методы класса
Что такое методы класса. Как применять методы класса.
Область видимости
Область видимости. Когда какую область видимости использовать.
С помощью принципов ООП решите несколько комплексных задач на Python
2 недели
ООП: инкапсуляция
Продолжите изучать ООП. После этого модуля сможете решать комплексные сложные задачи в коде. Чтобы закрепить полученные навыки, напишете небольшое приложение.
Лямбда-функции
Инкапсуляция
Модификаторы доступа
Лямбда-функции
Что такое лямбда-функции. Выражение и аргументы лямбда-функций. Функция filter(). Функция map().
Инкапсуляция
Модификаторы доступа. Модификатор private. Что такое инкапсуляция. Геттеры и сеттеры. Свойства. Инкапсуляция: практика
Обработка исключений
Что такое исключения. Как обрабатывать исключения. Разные типы исключений и их обработка. Как определить тип исключения. Продвинутая обработка исключений. Вызов исключений. Как создать исключение. Обработка исключений: практика.
Напишете консольное приложение с помощью принципов ООП и PyCharm
2 недели
Юнит-тестирование
Освоите важную часть автоматического тестирования — фреймворк pytest. Его используют, чтобы не писать каждый раз код с нуля. Начнёте работать в pytest сначала с самыми простыми тестами — юнит-тестами. Потом узнаете, как в pytest тестировать веб.
Git
Консоль
Pytest
Юнит-тесты
Консоль
Командная строка: начало работы. Подключение к удалённому серверу. Как переходить по каталогам. Как управлять файлами и папками. Как создавать и удалять файлы. Как копировать и перемещать файлы. Сокращённые команды. Работа с текстовыми файлами. История и полезные команды. Фильтрация содержимого файлов. Как быстро работать в командной строке.
Git
Что такое Git. Как его установить. Настройка. Создание, отображение, добавление. Игнорирование. Коммит. Хеш в Git. История коммитов. Переименование и удаление. Ветвление. Конфликты. GitHub. Персональный токен. Репозиторий в GitHub. Клонировать репозиторий: https-ссылка и ssh-ключ. Запушить изменения. Pull Request. Правки и Pull Request.
Основы юнит-тестов и pytest
Фреймворк pytest. Что такое юнит-тесты. Пирамида тестирования. Базовые правила тестов. Как называть юнит-тесты. Как установить pytest. Структура теста в pytest.
Ассерты
Что такое assert. Базовые assert. Как покрыть тестами метод. Как покрыть тестами класс. Как называть файлы для тестов. Как называть тесты. Как называть все элементы в тестах.
Параметризация
Что такое параметризация. Как написать параметризованный тест. Параметризация: практика.
Фикстуры
Фикстуры. Особенности фикстур. Параметры scope и autouse.
Оценка покрытия
Оценка покрытия. Как посчитать покрытие.
Покроете юнит-тестами небольшое консольное приложение и выложите работу в Git
2 недели
UI-тестирование
Научитесь автоматизировать проверки, которые обычно проводятся вручную через браузер. Для этого изучите Selenium — с его помощью программы с автотестами «нажимают» на кнопки и «заполняют» поля ввода. Примените всё, что узнали о Python, для тестирования веб-приложений.
Selenium WebDriver
Devtools
UI-тестирование
XPath
Архитектура веб-приложений
Клиент-серверная архитектура. Веб-приложение. URL. Протоколы HTTP и HTTPS. Структура HTTP-запроса. Структура HTTP-ответа. Веб-страница: HTML. HTML: теги и атрибуты. Веб-страница: CSS. Веб-страница: JavaScript. DOM.
Devtools
Поиск элементов в Devtools. Работа с разрешениями. Просмотр запросов. Куки.
Введение в UI-тестирование
Что такое UI-тесты. Пирамида тестирования. UI-тесты: преимущества и недостатки.
Selenium: поиск элементов
Что такое Selenium WebDriver. Что такое локатор. Основные теги. Что такое XPath. Поиск по элементу и атрибуту. Узлы. Значение элемента. Список элементов. Усечённый список. Видимые и невидимые элементы. Относительный и абсолютный путь. Вложенные элементы по относительному пути. Сложный поиск. Составные локаторы. Поиск по CSS.
Selenium: базовые методы
Подключение Selenium в PyCharm. Открыть и закрыть страницу. Найти элемент. Кликнуть по элементу. Задать ожидания. Заполнить поле ввода. Получить текст элемента. Перейти к элементу. Работа с куками из тестов. Selenium: практика. Структура проекта.
Протестируете UI-интерфейс сервиса заказа еды Stellar Burgers с помощью Selenium и Devtools, покроете тестами несколько веб-страниц
2 недели
Page Object Model
Узнаете, как улучшать автотесты с помощью паттерна проектирования Page Object Model. Он помогает выстраивать правильную структуру тестов, чтобы их было легче читать и поддерживать. Построите отчёты о тестировании с помощью инструмента Allure, который предоставляет наглядную статистику о проверках.
Page Object Model
Allure
Page Object
Что такое Page Object Model. Как задать класс page object. Работа с локаторами. Работа с методами. Как объединять методы в шаг. Методы setup_class() и teardown_class(). POM: практика.
Allure
Отчёты о тестировании. Установка Allure. Allure: декораторы.
Структура проекта
Файл с внешними зависимостями. Структура проекта с POM. Как улучшить организацию проекта.
Напишете тесты для веб-приложения с помощью Page Object Model, построите информативный отчёт о тестировании в Allure
2 недели
Тестирование API
Узнаете, как автоматизировать тестирование API. Научитесь применять Postman и Swagger для автоматизации, писать несколько видов запросов. Потренируетесь работать с моками и стабами — заглушками, которые имитируют поведение реальных сервисов.
API
HTTP
REST API
JSON
Postman
Swagger
Введение в API
Архитектура приложений. Что такое API. Архитектурные решения — REST. HTTP: структура запросов и ответов. JSON. Тестирование API. Тестирование сервера: Postman. Документация API. Swagger. Авторизация.
Как тестировать API с помощью Python
Зачем автоматизировать тестирование API. Флоу автоматизированного тестирования API. Библиотека Requests. Метод GET. Десериализация. Метод POST. Сериализация. Метод DELETE. Метод PATCH.
Подготовка к автоматизации
Как подготовить тестовый стенд. Как написать тест-кейс. Как подготовить данные. Как хранить данные.
Моки
Изоляция в тестах. Что такое мок. Как создать мок. Как замокировать вызов. Как проверить вызовы мока. Как замокировать внешний сервис. Моки в UI-тестах. Моки в API-тестах.
Протестируете API учебного веб-приложения
2 недели
Архитектура
Мало покрыть приложение тестами — нужно позаботиться о том, чтобы процесс тестирования был исправен. Поэтому в этом модуле вы научитесь оценивать, насколько полно функциональность покрыта тестами. Это нужно, чтобы не было проблем при автоматизации.
Архитектура приложений
Флоу работы автоматизатора
Архитектура
Монолитная архитектура. Микросервисная архитектура. Виды межсервисного взаимодействия. Архитектурные паттерны.
Как покрывать тестами разные уровни программы
Сколько тестов нужно на каждый уровень пирамиды. Когда запускают тесты разных уровней. Оценка покрытия по каждому уровню.
Рабочие задачи автоматизатора
Какие задачи решает автоматизатор. Автоматизация новой фичи. Обновление устаревших тестов. Автотесты для новой системы. Практика.
Подготовка к итоговому проекту
Юнит-тесты: повторение. Тестирование API: повторение. Тестирование веб-приложения: повторение. Поделись впечатлениями о проекте.
Подытожите знания и выполните задания на повторение юнит-тестов, тестирования API и веб-приложений
3 недели
Итоговый проект
Это проект, который объединит весь изученный материал. Вам предстоит покрыть тестами веб-приложение, API и написать юнит-тесты на отдельную функциональность.
Дополнительный модуль・5 часов
Основы работы с базами данных — дополнительный модуль
Это дополнительный модуль, в котором вы узнаете, как устроены базы данных, напишете SQL-запросы, научитесь агрегировать данные и связывать несколько таблиц. Также узнаете, как группировать и сортировать данные в таблицах.
SQL-запросы
Тестирование баз данных
Базы данных
Тестирование БД. Реляционные БД. SQL-запросы. Срезы данных в SQL. Агрегирующие функции. Изменение типов. Группировка данных. Сортировка данных. БД и консоль. Изменение данных: INSERT, UPDATE, DELETE. Снятие дампов. Тест: основы баз данных.
Карьерный центр・4 недели
Трудоустройство
Эта часть курса для тех, кто решил найти работу в сфере разработки. Вы изучите стратегии поиска работы и узнаете о тонкостях выбора компании-работодателя, подготовите портфолио, напишете резюме и сопроводительное письмо.
С наставником・Каждый спринт
Вебинары для разбора сложных тем, сессии Q&A