Сбор взносов

[Software-Testing.RU] Программирование на Java для тестировщиков. 2016 (Алексей Баранцев)

Тема в разделе "Курсы по программированию", создана пользователем enot, 4 янв 2022.

Тема найдена по тегам:
Цена:
15300р.
Взнос:
490р.

Список участников складчины:

1. enot
Тип: Стандартная складчина
  1. 4 янв 2022
    #1
    enot
    enot Организатор
    [Software-Testing.RU] Программирование на Java для тестировщиков. 2016 (Алексей Баранцев)
    [​IMG]

    Программирование для тестировщиков
    Тренер:
    Баранцев Алексей

    Этот курс предназначен для обучения тестировщиков программированию на языке Java
    Да, это курс именно для тестировщиков. Обучение программированию не сводится только к изучению языка программирования. Построение правильной архитектуры, использование фреймворков и библиотек, владение инструментами разработки и отладки -- это тоже часть “умения программировать”. Поэтому в этом курсе детально рассматриваются именно те возможности языка и вспомогательных библиотек, которые наиболее востребованы при разработке автотестов, в том числе при тестировании веб- и windows-приложений через пользовательский интерфейс.

    Изучаемый материал будет демонстрироваться на едином сквозном примере -- мы будем разрабатывать на языке Java автоматизированные тесты для веб-приложения, используя Selenium WebDriver. Начав с простого теста, записанного “рекордером”, мы будем постепенно усложнять архитектуру тестового набора, добавлять и усиливать проверки в тестах, дополнять тесты генераторами тестовых данных. Основной акцент будет сделан не на алгоритмы, а на изучение различных полезных библиотек и фреймворков, а также шаблонов проектирования, позволяющих организовать код автоматизированных тестов таким образом, чтобы его было легко модифицировать и расширять.

    Но одним примером мы не ограничимся, для закрепления материала мы в течение курса построим "в едином стиле" несколько проектов с тестами для приложений разного типа, научимся тестировать приложения через веб-интерфейс, пользовательский интерфейс Windows, интерфейс доступа к базам данных, сетевые интерфейсы (почта, HTTP, веб-сервисы).

    И напоследок научимся делать тесты на "естественном" языке Gherkin. Да, не удивляйтесь, чтобы делать тесты на "естественном" языке -- нужно уметь программировать :)

    1. Основы программирования
    Большинство учебников и курсов по программированию начинаются с написания простейшей программы, которая выводит на консоль слова “Hello, world!”. Мы не станем нарушать эту традицию, потому что первым делом нужно подготовить среду разработки и убедиться, что всё установлено и настроено правильно. Попутно мы научимся использовать сервис GitHub для хранения исходного кода проекта.

    В первом занятии будут рассмотрены базовые конструкции языка программирования Java -- классы и объекты, переменные и функции. Заодно научимся пользоваться отладчиком. Но до создания тестов так и не доберёмся.

    2. Двухуровневая архитектура тестового набора
    Затем мы сразу совершим “прыжок” -- вместо того, чтобы постепенно усложнять свою первую примитивную программу, мы запишем “рекордером” готовый тест для веб-приложения, перенесём его в среду разработки, подключим все необходимые вспомогательные библиотеки, а потом будем его улучшать.

    Автотесты “системного” уровня (в отличие от “unit-тестов”) удобно разделить на два слоя -- 1) собственно тесты, 2) код, ответственный за взаимодействие с тестируемой системой, причём вторая часть, как правило, является более сложной технически.

    Мы научимся создавать такую двухуровневую архитектуру путём плавной трансформации ранее созданных при помощи “рекордера” простых одноуровневых тестов, и познакомимся с понятием “рефакторинга” кода.

    На этом же этапе мы познакомимся с базовыми возможностями тестового фреймворка TestNG.

    А после того, как двухуровневая архитектура будет выстроена -- добавим пару новых тестов уже без использования рекордера.

    3. Управление потоком выполнения кода: условный переход
    Условный переход (if-then) -- это одна из основных конструкций языка программирования, позволяющая программе вести себя по разному в разных условиях.

    Мы научимся использовать эту конструкцию для того, чтобы менять поведение программы в зависимости от ситуации (есть на странице тестируемого веб-приложения нужный элемент или нет) и от входных данных (определено значение некоторой переменной или нет), для оптимизации тестов (уже попали на нужную страницу приложения или нет) и для повышения их гибкости и надёжности.

    4. Коллекции и циклы
    Вторая основополагающая конструкция языка программирования -- это цикл, то есть многократное выполнение некоторого фрагмента кода. В тестах она может встречаться, например, при генерации большого количества тестовых данных.

    Однако чаще циклы используются при работе с “коллекциями” -- списками и множествами объектов какого-то типа. Мы научимся строить и модифицировать коллекции, сравнивать и сортировать их, а также реализовывать в тестах сложные проверки, в которых участвуют коллекции объектов.

    5. Работа со строками
    Строки -- один из самых широко распространённых типов данных, с которым приходится иметь дело в тестах, особенно если тестирование выполняется через пользовательский интерфейс. Конечно, эти строки могут представлять собой числа или даты или объекты какого-то другого типа, но из тестируемого приложения мы получаем их именно в виде строк, так что перед дальнейшим использованием их ещё нужно правильно преобразовать в нужный тип данных.

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

    А затем доработаем тесты -- сделаем их параметризованными и свяжем их с генераторами тестовых данных. Такой подход называется Data Driven Testing (DDT).

    6. Работа с файлами
    Файлы -- это место, где можно хранить тестовые данные. Поэтому в контексте разработки автотестов важно уметь читать данные из файлов разного формата. С другой стороны, создавать тестовые данные тоже не обязательно вручную, можно написать программу, которая их будет генерировать и сохранять в файл нужного формата.

    Мы научимся читать данные из файлов в формате CSV, XML, JSON, а также писать данные в файл в этих форматах.

    7. Работа с базами данных
    Подавляющее большинство многопользовательских приложений (к которым относятся и веб-приложения), а также многие однопользовательские приложения, используют базы данных для хранения информации. Когда пользователь вводит какую-то информацию через интерфейс приложения, она после некоторой обработки попадает в базу данных и хранится там до тех пор, пока она не потребуется для работы того же самого или или какого-то иного приложения. При тестировании часто бывает удобно проверить, правильно ли сохранилась информация в базе данных. Поэтому многие тестировщики, даже не умея программировать, достаточно хорошо владеют языком запросов к базе данных SQL.

    Сначала мы научимся пользоваться технологией доступа к базам данных, которая позволяет выполнять привычные SQL-запросы и анализировать полученный ответ как таблицу. Затем мы освоим более современную технологию объектно-реляционных преобразований.

    8. Сетевое программирование: протоколы прикладного уровня
    С одной стороны, это занятие будет повторением пройденного материала. Мы построим новый тестовый набор с двухуровневой архитектурой для нового тестируемого приложения. Однако всё взаимодействие с тестируемым приложением будет происходить в обход пользовательского интерфейса.

    В этом занятии будут рассмотрены механизмы работы с сетевыми протоколами для отправки и получения почты POP3 и SMTP, протоколом для отправки и получения файлов FTP, протоколом для удалённого выполнения команд Telnet, а также традиционным протоколом, используемый для взаимодействия с веб-приложениями HTTP.

    Для веб-приложений характерным случаем является использование электронной почты -- отправка ссылки для подтверждения регистрации, восстановление пароля, оповещения о каких-либо событиях. Для тестирования такого рода функциональности мы научимся работать с почтовым сервером из автоматизированных тестов: принимать и отправлять почту, анализировать содержимое почтовых сообщений. Настройка приложения, находящегося на удалённом сервере, может потребовать умения загружать туда файлы по протоколу FTP.

    9. Сетевое программирование: удалённые программные интерфейсы
    И ещё одно занятие-повторение, в котором мы опять построим новый тестовый набор для нового учебного приложения, чтобы закрепить навык создания типовой двухуровневой архитектуры.

    А затем научимся работать с удалёнными программными интерфейсами SOAP и REST. Технология SOAP чаще используется в крупных “промышленных” приложениях, а технология REST более характерна для современных веб-сервисов.

    10. Тестовые фреймворки и инфраструктура
    Последнее занятие будет посвящено рассмотрению альтернативных тестовых фреймворков, в том числе инструмента Cucumber для разработки тестов на "естественном" языке Gherkin и инструмента Robot Framework для разработки тестов в стиле Keyword Driven Testing.

    Кроме того, мы научимся запускать тесты на сервере непрерывной интеграции Jenkins и генерировать красивые отчёты при помощи инструмента Allure.

    Содержание складчины (файлы и папки)
    01 Основы программирования
    01 Обзор языков программирования и место Java в общей картине мира.mp4 [49m 859k 956]
    02 Установка и настройка Java SDK.mp4 [28m 34k 950]
    03 Первая работающая программа на языке Java.mp4 [15m 314k 552]
    04 Хранение кода Git и GitHub.mp4 [23m 855k 538]
    05 Gradle и другие сборщики.mp4 [34m 711k 973]
    06 Среда разработки IntelliJ IDEA.mp4 [25m 925k 710]
    07 Классы и пакеты, файлы и директории.mp4 [17m 912k 835]
    08 Фигурные скобочки и структура программного кода.mp4 [32m 694k 273]
    09 Выражения и операции.mp4 [26m 862k 174]
    10 Переменные и значения.mp4 [24m 904k 187]
    11 Типы переменных и значений.mp4 [13m 210k 533]
    12 Среда разработки. Запуск программы режиме отладки.mp4 [13m 606k 97]
    13 Функции.mp4 [28m 74k 969]
    14 Классы и объекты.mp4 [34m 620k 79]
    15 Методы. Функции, ассоциированные с объектами.mp4 [17m 770k 547]
    pluginfile.pdf [2m 497k 943]
    Thumbs.db [35k 840]
    ДЗ.txt [1k 862]
    Ссылки на инструменты, упомянутые в лекциях.txt [390]

    02 Двухуровневая архитектура тестового набора
    01 Немного теории что такое автотесты.mp4 [18m 559k 415]
    02 Gradle подключаем зависимости от дополнительных библиотек.mp4 [20m 262k 209]
    03 Делаем первый тест, используя фреймворк для запуска тестов TestNG.mp4 [18m 957k 737]
    04 Среда разработки IDEA полезные клавиатурные сочетания.mp4 [15m 431k 313]
    05 Делаем тест для веб-приложения, используя драйвер Selenium.mp4 [32m 377k 386]
    06 Фикстуры инициализация и зачистка.mp4 [15m 565k 353]
    07 Рефакторинг улучшаем читаемость кода, выделяем вспомогательные методы.mp4 [32m 141k 269]
    08 Создаём общий базовый класс для тестов, где можно хранить методы, общие для всех тестов.mp4 [43m 595k 178]
    09 Заменяем наследование на делегирование и создаём двухуровневую архитектуру.mp4 [53m 168k 904]
    10 Выделяем специализированные классы-помощники.mp4 [41m 856k 281]
    11 Создаём общий базовый класс для классов-помощников.mp4 [31m 632k 137]
    12 Делаем новый тест без использования рекордера.mp4 [22m 402k 35]
    ДЗ.txt [4k 190]

    5.0 Подготовка к разработке тестов для веб-приложений
    5.1.png [50k 269]
    addressbook.zip [599k 111]
    Видеоинструкция по установке учебного приложения.mp4 [6m 10k 635]
    Подготовка к разработке тестов для веб-приложений.txt [1k 518]

    Доп. материалы
    Thumbs.db [6k 656]
    Ссылки.txt [247]
    Фрагмент курса. selenium_start_02_02_xpath_and_css.mp4 [15m 19k 460]

    03 Управление потоком выполнения кода, ветвление
    01 Проверка условий при помощи конструкции if-then-else.mp4 [32m 601k 141]
    02 Полная форма if-then-else. Неполная форма if-then. Вложенные проверки. Свёртка вложенных проверок.mp4 [27m 870k 967]
    03 Запуск тестов в разных браузерах.mp4 [41m 536k 233]
    04 Сравнение объектов при помощи оператора == и метода equals.mp4 [21m 131k 675]
    05 Оптимизация заполнения форм - оставляем дефолтные значения в полях.mp4 [11m 890k 152]
    06 Оптимизация заполнения форм - оставляем не изменяющися значения в полях.mp4 [16m 488k 494]
    07 Перехват исключений.mp4 [31m 198k 60]
    08 Заполнение форм с почти одинаковым набором полей.mp4 [41m 714k 939]
    09 Ленивые действия.mp4 [28m 571k 154]
    10 Проверка и обеспечение выполнения предусловий.mp4 [28m 496k 31]
    Thumbs.db [52k 224]
    ДЗ.txt [791]
    Ссылки.txt [362]

    04 Коллекции и циклы
    01 Циклы.Многократные повторения похожих действий.mp4 [51m 83k 937]
    02 Коллекции. Наборы элементов.mp4 [34m 776k 270]
    03 Количество элементов в коллекции.mp4 [27m 744k 163]
    04 Выбор элемента списка по порядковому номеру.mp4 [11m 942k 973]
    05 Формирование коллекции.mp4 [31m 490k 430]
    06 Сравнение коллекций.mp4 [32m 926k 45]
    07 Множества. Неупорядоченные коллекции.mp4 [44m 139k 864]
    08 Поиск максимального элемента в коллекции.mp4 [26m 773k 743]
    09 Лямбда-выражения (анонимные функции) и элементы функционального программирования.mp4 [36m 200k 646]
    10 Сортировка списков.mp4 [30m 376k 737]
    Thumbs.db [26k 624]
    ДЗ.txt [411]

    05 Улучшение кода тестов. Работа со строками
    01 Как правильно запускать браузер.mp4 [40m 246k 917]
    02 Улучшение кода тестов - ещё немного реструктуризации кода.mp4 [24m 842k 56]
    03 Улучшение названий методов.mp4 [22m 696k 33]
    04 Fluent-интерфейсы.mp4 [24m 434k 254]
    05 Повсеместное использование уникальных идентификаторов объектов.mp4 [62m 293k 906]
    06 Hamcrest - улучшение внешнего вида проверок.mp4 [43m 957k 983]
    07 Кеширование результатов длительных операций.mp4 [19m 264k 647]
    08 Хеширование и предварительные проверки.mp4 [24m 583k 840]
    09 Способы построения сложных локаторов.mp4 [36m 169k 629]
    10 Режем строки (и немного про регулярные выражения).mp4 [31m 271k 360]
    11 Клеим строки - метод обратных проверок.mp4 [37m 257k 910]
    Thumbs.db [27k 136]
    ДЗ.txt [1k 692]
    Ссылки.txt [236]

    06 Работа с файлами
    01 Пути к файлам и директориям.mp4 [50m 974k 958]
    02 Генератор тестовых данных, запись данных в файл.mp4 [35m 319k 644]
    03 Анализ опций командой строки при запуске генератора данных.mp4 [27m 678k 492]
    04 Параметризация тестовых методов.mp4 [33m 13k 37]
    05 Загрузка тестовых данных из файла.mp4 [26m 29k 818]
    06 Формат XML.mp4 [45m 223k 403]
    07 Формат JSON.mp4 [37m 386k 836]
    08 Автоматическое закрытие файлов после использования.mp4 [13m 24k 752]
    09 Конфигурационные файлы для описания тестовых наборов.mp4 [27m 234k 239]
    10 Описание конфигурации тестового стенда.mp4 [40m 821k 427]
    11 Протоколирование (лог-файлы).mp4 [51m 987k 663]
    Thumbs.db [34k 304]
    ДЗ.txt [973]

    07 Работа с базами данных
    01 Драйвер базы данных. Получение данных из БД.mp4 [41m 41k 230]
    02 Object Relational Mapping (ORM).mp4 [78m 676k 986]
    03 Условия отбора данных.mp4 [32m 818k 190]
    04 Сравнение данных, загруженных из БД.mp4 [43m 306k 11]
    05 Отключаемые проверки UI.mp4 [39m 205k 663]
    06 Связи между объектами.mp4 [54m 145k 321]
    Thumbs.db [14k 848]
    ДЗ.txt [909]

    08 Сетевое программирование. Протоколы прикладного уровня
    01 Установка нового учебного приложения MantisBT.mp4 [20m 812k 829]
    02 Подготовка проекта для тестирования MantisBT.mp4 [31m 688k 333]
    03 Прямое взаимодействие с сервером по протоколу HTTP.mp4 [47m 281k 826]
    04 Ленивая инициализация помощников.mp4 [26m 577k 883]
    05 Передача файлов на удалённую машину по протоколу FTPmp4.mp4 [40m 185k 394]
    06 Получение почты на встроенный в тесты почтовый сервер.mp4 [70m 600k 944]
    07 Получение почты на внешний почтовый сервер.Создание пользователей на внешнем почтовом сервере по протоколу.mp4 [0]
    ДЗ.txt [1k 520]
    Ссылки.txt [312]

    09 Сетевое программирование - удалённые программные интерфейсы
    01 Немного теории про Remote API.mp4 [42m 145k 969]
    02 SOAP - простой пример.mp4 [38m 288k 788]
    03 SOAP - взаимодействие с MantisBT.mp4 [78m 54k 936]
    04 REST - взаимодействие с Bugify.mp4 [74m 751k 1]
    05 RestAssured - использовать или нет.mp4.mp4 [23m 936k 261]
    06 REST - взаимодействие с GitHub.mp4 [37m 288k 593]
    ДЗ.txt [2k 316]

    10 Тестовые фреймворки и инфраструктура
    01 Сервер непрерывной интеграции.mp4 [64m 293k 620]
    02 Удалённый запуск браузера (Selenium Server).mp4 [50m 306k 395]
    03 Конфигурационное тестирование (Selenium Grid).mp4 [63m 493k 873]
    04 Генерация отчётов при помощи Allure.mp4 [82m 773k 17]
    05 Keyword Driven Testing и инструмент Robot Framework.mp4 [63m 350k 665]
    06 Behaviour Driven Testing и инструмент Cucumber-JVM.mp4 [65m 194k 633]
    ДЗ.txt [419]
    Ссылки.txt [400]

    Объем: 3,15Гб.

     
    4 янв 2022