Бесплатное введение:
Узнаете чуть больше о курсе и о том, как проходит учёба: оцените подачу материала и тренажёр для написания кода. Введение поможет понять, подходит ли вам такой формат.
Основы Git:
Настроите Git, разберёте основные команды: ветвление и слияние изменений. Погрузитесь в работу с GitHub и подготовитесь к первому проекту.
- Настройка окружения и знакомство с командной строкой.
Что такое Git. Как работать с командной строкой – навигация и советы. Операции с папками и файлами: создание, копирование, перемещение, чтение и удаление. Эффективная работа с командной строкой. Установка и настройка Git - Работа с Git.
Инициализация репозитория и добавление файлов. Создание первого коммита. Знакомство с историей коммитов и GitHub. Регистрация на GitHub. Создание удалённого репозитория. Что такое SSH. SSH-ключ: генерация и привязывание к GitHub. Связывание и синхронизация локального и удалённого репозитория - Основы работы с ветками в Git.
Скачивание и клонирование репозитория. Выполнение Fork. Создание ветки
Познакомитесь с базовыми конструкциями языка: классами и объектами, функциями, ветвлениями и так далее. Будете сразу применять знания на практике – писать код внутри уроков и в среде разработки VS Code.
- Как устроено обучение.
Сроки и дедлайны. Как всё организовано. Что поможет справиться. Ошибки и ответственность - Знакомство с Python.
Язык Python. Вывод на экран. Пробелы в выводе на экран. Переменные. Как называть переменные. Константы. Типы данных: числа и строки. Операции с целыми числами. Конкатенация строк. Форматирование строк. Преобразование типов. Дробные числа - Ветвления.
Логические выражения. Тип данных bool. Ветвление кода. Ветвление кода с else. Множественные ветвления. Логические операции. Приоритет логических операторов - Списки.
Знакомство со списками. Длина списка и индексы. Списки и индексы: практика. Операции со списками: append(), insert() и remove(). Операции со списками: pop() и in. Сложение списков. Списки списков и копирование. Операции со списками: практика - Циклы.
Циклы. Диапазоны от и до. Функция reversed(). Перебор через обратный срез списка. Вложенные циклы. Цикл с условием. Циклы: практика - Операции со строками.
Длина строки, индексы и подстроки. Метод split(). Метод replace() - Словари и коллекции.
Что такое словарь. Как получить и изменить значение в словаре. Как добавить элементы в словарь. Метод get(). Методы keys() и values(). Перебор элементов в словаре. Как проверить наличие элемента. Словари: практика - Функции.
Функция. Как объявить и вызвать функцию. Аргументы и параметры. Возврат значений из функции. Значение по умолчанию и разные виды аргументов. Библиотеки. Вызов функции из функции. Ошибки и их обработка. Ошибки в списках и словарях. Функции: практика - Классы и объекты.
Классы и объекты. Как создать класс. Как создать объект. Ошибка AttributeError. Как объявить и вызвать метод. Встроенные методы: __dict__. Как взаимодействуют классы - VS Code.
Командная строка. Как запустить Python в командной строке. Среда разработки VS Code. Как создать проект. Интерфейс VS Code. Запуск и отладка проекта - Решите несколько комплексных задач на Python. Напишете программы, которые печатают текст, считают время и составляют таблицы
Изучите основы объектно-ориентированного программирования (ООП). Это принципы, которые помогают решать сложные задачи, настраивать методы и классы, создавать логичные иерархии. ООП помогает писать программы, которые легко поддерживать и проверять.
- Наследование.
Что такое ООП. Наследование. Наследование с конструктором. Функция super(). Переопределение методов. Переопределение методов: меняется сигнатура. Переопределение и super(). Полиморфизм - Множественное наследование.
Множественное наследование. Множественное наследование с конструктором. Множественное наследование и super(). Ромбовидное наследование. Миксины. Наследование: практика - Статические методы.
Что такое статический метод. Как вызвать статический метод через класс. Как применять статический метод на практике - Методы класса.
Что такое методы класса. Как применять методы класса - Область видимости.
Область видимости. Когда какую область видимости использовать - С помощью принципов ООП решите несколько комплексных задач на Python
Продолжите изучать ООП. После этого модуля сможете решать комплексные сложные задачи в коде. Чтобы закрепить полученные навыки, напишете небольшое приложение.
- Лямбда-функции.
Что такое лямбда-функции. Выражение и аргументы лямбда-функций. Функция filter(). Функция map() - Инкапсуляция.
Модификаторы доступа. Модификатор private. Что такое инкапсуляция. Геттеры и сеттеры. Свойства. Инкапсуляция: практика - Обработка исключений.
Что такое исключения. Как обрабатывать исключения. Разные типы исключений и их обработка. Как определить тип исключения. Продвинутая обработка исключений. Вызов исключений. Как создать исключение. Обработка исключений: практика - Напишете консольное приложение с помощью принципов ООП и VS Code
Освоите важную часть автоматического тестирования – фреймворк pytest. Его используют, чтобы не писать каждый раз код с нуля. Начнёте работать в pytest сначала с самыми простыми тестами – юнит-тестами. Потом узнаете, как в pytest тестировать веб. Темы: Git, Консоль, Pytest, Юнит-тесты:
- Консоль.
Командная строка: начало работы. Подключение к удалённому серверу. Как переходить по каталогам. Как управлять файлами и папками. Как создавать и удалять файлы. Как копировать и перемещать файлы. Сокращённые команды. Работа с текстовыми файлами. История и полезные команды. Фильтрация содержимого файлов. Как быстро работать в командной строке - Продвинутая командная работа в Git.
Пререквизиты. Fast-forward. Git push. Модели веток. Feature-branch-модель. Pull request и code review. Работа с PR. Разрешение конфликта - Основы юнит-тестов и pytest.
Фреймворк pytest. Что такое юнит-тесты. Пирамида тестирования. Базовые правила тестов. Как называть юнит-тесты. Как установить pytest. Структура теста в pytest - Ассерты.
Что такое assert. Базовые assert. Как покрыть тестами метод. Как покрыть тестами класс. Как называть файлы для тестов. Как называть тесты. Как называть все элементы в тестах - Параметризация.
Что такое параметризация. Как написать параметризованный тест. Параметризация: практика - Фикстуры.
Фикстуры. Особенности фикстур. Параметры scope и autouse - Оценка покрытия.
Оценка покрытия. Как посчитать покрытие - Покроете юнит-тестами небольшое консольное приложение и выложите работу в Git
Научитесь автоматизировать проверки, которые обычно проводятся вручную через браузер. Для этого изучите Selenium – с его помощью программы с автотестами «нажимают» на кнопки и «заполняют» поля ввода. Примените всё, что узнали о Python, для тестирования веб-приложений.
- Архитектура веб-приложений.
Клиент-серверная архитектура. Веб-приложение. URL. Протоколы HTTP и HTTPS. Структура HTTP-запроса. Структура HTTP-ответа. Веб-страница: HTML. HTML: теги и атрибуты. Веб-страница: CSS. Веб-страница: JavaScript. DOM - Devtools.
Поиск элементов в Devtools. Работа с разрешениями. Просмотр запросов. Куки - Введение в UI-тестирование.
Что такое UI-тесты. Пирамида тестирования. UI-тесты: преимущества и недостатки - Selenium: поиск элементов.
Что такое Selenium WebDriver. Что такое локатор. Основные теги. Что такое XPath. Поиск по элементу и атрибуту. Узлы. Значение элемента. Список элементов. Усечённый список. Видимые и невидимые элементы. Относительный и абсолютный путь. Вложенные элементы по относительному пути. Сложный поиск. Составные локаторы. Поиск по CSS - Selenium: базовые методы.
Подключение Selenium в VS Code. Открыть и закрыть страницу. Найти элемент. Кликнуть по элементу. Задать ожидания. Заполнить поле ввода. Получить текст элемента. Перейти к элементу. Работа с куками из тестов. Selenium: практика. Структура проекта - Протестируете UI-интерфейс сервиса заказа еды Stellar Burgers с помощью Selenium и Devtools, покроете тестами несколько веб-страниц
Узнаете, как улучшать автотесты с помощью паттерна проектирования Page Object Model. Он помогает выстраивать правильную структуру тестов, чтобы их было легче читать и поддерживать. Построите отчёты о тестировании с помощью инструмента Allure, который предоставляет наглядную статистику о проверках.
- Page Object.
Что такое Page Object Model. Как задать класс page object. Работа с локаторами. Работа с методами. Как объединять методы в шаг. Методы setup_class() и teardown_class(). POM: практика - Allure.
Отчёты о тестировании. Установка Allure. Allure: декораторы - Структура проекта.
Файл с внешними зависимостями. Структура проекта с POM. Как улучшить организацию проекта - Напишете тесты для веб-приложения с помощью Page Object Model, построите информативный отчёт о тестировании в Allure
Узнаете, как автоматизировать тестирование API. Научитесь применять Postman и Swagger для автоматизации, писать несколько видов запросов. Потренируетесь работать с моками и стабами – заглушками, которые имитируют поведение реальных сервисов.
- Введение в API.
Архитектура приложений. Что такое API. Архитектурные решения – REST. HTTP: структура запросов и ответов. JSON. Тестирование API. Тестирование сервера: Postman. Документация API. Swagger. Авторизация - Как тестировать API с помощью Python.
Зачем автоматизировать тестирование API. Флоу автоматизированного тестирования API. Библиотека Requests. Метод GET. Десериализация. Метод POST. Сериализация. Метод DELETE. Метод PATCH - Подготовка к автоматизации.
Как подготовить тестовый стенд. Как написать тест-кейс. Как подготовить данные. Как хранить данные - Моки.
Изоляция в тестах. Что такое мок. Как создать мок. Как замокировать вызов. Как проверить вызовы мока. Как замокировать внешний сервис. Моки в UI-тестах. Моки в API-тестах - Протестируете API учебного веб-приложения
Мало покрыть приложение тестами, нужно позаботиться о том, чтобы процесс тестирования был исправен. Поэтому в этом модуле вы научитесь оценивать, насколько полно функциональность покрыта тестами. Это нужно, чтобы не было проблем при автоматизации. Темы: Архитектура приложений, Флоу работы автоматизатора:
- Архитектура.
Монолитная архитектура. Микросервисная архитектура. Виды межсервисного взаимодействия. Архитектурные паттерны - Как покрывать тестами разные уровни программы.
Сколько тестов нужно на каждый уровень пирамиды. Когда запускают тесты разных уровней. Оценка покрытия по каждому уровню - Рабочие задачи автоматизатора.
Какие задачи решает автоматизатор. Автоматизация новой фичи. Обновление устаревших тестов. Автотесты для новой системы. Практика - Подготовка к итоговому проекту.
Юнит-тесты: повторение. Тестирование API: повторение. Тестирование веб-приложения: повторение. Поделись впечатлениями о проекте - Подытожите знания и выполните задания на повторение юнит-тестов, тестирования API и веб-приложений
Это проект, который объединит весь изученный материал. Вам предстоит покрыть тестами веб-приложение, API и написать юнит-тесты на отдельную функциональность.
Дополнительный модуль. Основы работы с базами данных:
Это дополнительный модуль, в котором вы узнаете, как устроены базы данных, напишете SQL-запросы, научитесь агрегировать данные и связывать несколько таблиц. Также узнаете, как группировать и сортировать данные в таблицах. Темы: SQL-запросы, Тестирование баз данных:
- Базы данных.
Тестирование БД. Реляционные БД. SQL-запросы. Срезы данных в SQL. Агрегирующие функции. Изменение типов. Группировка данных. Сортировка данных. БД и консоль. Изменение данных: INSERT, UPDATE, DELETE. Снятие дампов. Тест: основы баз данных
Начнёте рационально применять искусственный интеллект. Узнаете ограничения моделей. Научитесь писать точные промпты.
- Принципы и ограничения.
Поймёте, почему нейросети ошибаются при генерации кода и как этого избежать. Научитесь проводить ревью ИИ-решений: находить несуществующие функции и логические ошибки - Выбор инструментов.
Сравните облачные и локальные модели, IDE-плагины и AI-чаты. Научитесь подбирать ИИ-инструменты под конкретные задачи, исходя из их стоимости и функциональности - Основы промптинга.
Разберёте структуру запроса: контекст, задачу, формат. Освоите zero-shot, few-shot, chain-of-thought, чтобы получать точные и предсказуемые ответы - Планирование и декомпозиция.
Узнаете, как разбивать объёмные задачи на подзадачи, а также планировать рабочие и личные проекты с помощью ИИ - Освоите промпт-инжиниринг, научитесь выбирать оптимальные ИИ-решения и выявлять галлюцинации
Пойдёте цикл автоматизации с поддержкой ИИ: от генерации тест-кейсов и структуры проекта до создания сложных данных, написания кода по шаблону Page Object и аналитики. Темы: Тест-дизайн, Page Object, Тестовые данные, Анализ логов:
- Тест-дизайн и документация.
Научитесь формулировать запросы для генерации тест-кейсов и чек-листов на основе требований. Сможете составлять матрицу покрытия (Traceability Matrix) и группировать тесты по модулям с помощью ИИ - Код автотестов и классы Page Object.
Поймёте, как использовать ИИ для генерации структуры Python-проекта, документации (README) и классов Page Object. Начнёте создавать локаторы, методы действий и настройки уведомлений, а также параметризовать тесты с помощью промптов - Генерация данных и SQL-скриптов.
Разберётесь с запросами для сложных данных (JSON/XML), валидных персональных данных и SQL-скриптов для наполнения БД. Научитесь генерировать снапшоты состояния базы данных с помощью ИИ - Анализ логов и метрик.
Сможете делегировать ИИ рутину по фильтрации логов и поиску причин падения тестов – timeout, assertion error. Научитесь интерпретировать метрики нагрузочного тестирования (JMeter, k6) и находить узкие места с помощью нейросетей - Сможете делегировать ИИ написание кода и SQL-скриптов, поиск багов в логах и отчётах нагрузочного тестирования