Автоматизатор тестирования на Python [Тариф Базовый] [Яндекс Практикум]

Bot

Администратор
Команда форума
23 Янв 2020
208,708
3,150
113
269049.jpg

Бесплатное введение:
Узнаете чуть больше о курсе и о том, как проходит учёба: оцените подачу материала и тренажёр для написания кода. Введение поможет понять, подходит ли вам такой формат.

Основы Git:


Настроите Git, разберёте основные команды: ветвление и слияние изменений. Погрузитесь в работу с GitHub и подготовитесь к первому проекту.

  • Настройка окружения и знакомство с командной строкой.
    Что такое Git. Как работать с командной строкой – навигация и советы. Операции с папками и файлами: создание, копирование, перемещение, чтение и удаление. Эффективная работа с командной строкой. Установка и настройка Git
  • Работа с Git.
    Инициализация репозитория и добавление файлов. Создание первого коммита. Знакомство с историей коммитов и GitHub. Регистрация на GitHub. Создание удалённого репозитория. Что такое SSH. SSH-ключ: генерация и привязывание к GitHub. Связывание и синхронизация локального и удалённого репозитория
  • Основы работы с ветками в Git.
    Скачивание и клонирование репозитория. Выполнение Fork. Создание ветки
Основы Python:
Познакомитесь с базовыми конструкциями языка: классами и объектами, функциями, ветвлениями и так далее. Будете сразу применять знания на практике – писать код внутри уроков и в среде разработки 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
UI-тестирование:
Научитесь автоматизировать проверки, которые обычно проводятся вручную через браузер. Для этого изучите 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:
Узнаете, как улучшать автотесты с помощью паттерна проектирования 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:
Узнаете, как автоматизировать тестирование 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-скриптов, поиск багов в логах и отчётах нагрузочного тестирования