Основы автоматизированного тестирования (Python, Selenium)

Информация о курсе:


Стоимость: 3 000 грн в месяц

Длительность курса: 3 месяца (67,5 часов)
Субботние группы: 15 занятий х 4,5 часа
Возможно обучение On-line

Дата начала курса:



25 ноября 15:00-19:30
(занятия проходят по субботам)

Записаться в группу

 

Вы ленивый тестировщик? Вам надоело выполнять одни и те же действия? Тогда Вам к нам: мы научим вас перекладывать рутину на “неустающего друга” с помощью Python - языка программирования с низким порогом вхождения. Лень - двигатель прогресса!

Цель данного профессионального курса - научиться не боятся программировать на языке Python с использованием существующих библиотек и фреймворков, работать в среде современных технологий разработки программного обеспечения, дать базовые навыки внедрения автотестирования в Continues Integration, продемонстрировать основные паттерны разработки Selenium-тестов и научить писать тесты с использованием языка Python и фреймворка Selenium.

Требования к участникам: знание теории тестирования ПО, понимание как пишутся тесты и уметь описать выявленную проблему. Желателен практический опыт в manual тестировании более 3 месяцев (с составлением наборов тест кейсов для функционального тестирования).

 
  • Введение в автоматизированное тестирование. Цели, задачи, преимущества и недостатки. Что автоматизируется в IT-проектах. Место автоматизации тестирования в современных подходах разработки ПО.
  • Распределенная разработка IT-проектов. Организация непрерывной интеграции IT-продуктов, Continuous integration. Общественные репозитории Github, Bitbucket. Основы работы с системой контроля версий Git. (Практика)
  • Основы программирования на Python. Инструментарии разработки (PyCharm, ipython/bpython, pip, virtualenv и др.). Основные типы данных, структура кода. Циклы, ветвления, исключения. Функции, модули и пакеты. Основы ООП в Python.
  • Практическое использование модулей Python. Работа с различными протоколами (email, ftp, http) в Python. Работа с файлами. Работа с json форматом. Работа с RESTfull API web-приложений
  • Unit-тест фреймворки на Python. Структура и проектирование тестов. Тестовые Unit фреймворки - unittеst (xUnit фреймворк), py.test. Обзор других Python тестовых фреймворков (nose, doctest). Запуск тестов и генерация отчетов. Изучение основных структур тестов. Стек автотестирования. Двухуровневая архитектура проектирования тестов.

Практика: Разработка автотестов для REST API Web-приложения.

  • Работа с Web-приложениями. Современная архитектура Web-проектов. Понятие front-end и back-end. Протоколы HTTP, HTTP(s). Основы HTML, CSS. Изучение построения CSS селектора. Анализ web-страниц с помощью Browser inspector, Firebug.
  • Организация автоматизации работы с браузерами, проект Selenium. Проект Selenium и его составляющие (WebDriver, Selenium Server, Selenium Grid, драйвера браузеров, поддерживаемые языки). Первые тесты с использованием Selenium, записанные рекордерами (Selenium IDE, Selenium Builder). Экспорт тестов в код. Запуск автотестов на различных браузерах. Удаленный запуск автотестов через Selenium Server.
  • Selenium WebDriver API + Python. Поиск элементов web-приложения - локаторы. Разные типы локаторов. Универсальный способ нахождения элементов с помощью XPATH. Неявные и явные ожидания. Эмуляция действий пользователя: простые и составные. Получение свойств элементов.
  • Параметризация тестов и Data-driven testing (DDT). Параметризация тестов при запуске. Работа с тестовыми данными. Генераторы тестовых данных. Фиксированные данные vs случайные.
  • Работа с базами данных. Взаимодействие с базой данных в программах на Python. Работа с БД в тестах.
  • Современные тенденции. Behavior Driven Testing или автоматизация Acceptance testing. BDD тестовые фреймворки на Python: pytest-bdd, Behave Генерация понятных отчетов: Allure отчёты “Безоблачное” будущее: Selene - аналог Selenide для Python PageObjects и другие шаблоны проектирования. Другие инструменты автоматизации.
  • Запуск тестов на сервере непрерывной интеграции (Jenkins, как пример).

Практика: Разработка автотестов Web-интерфейса тестового приложения.