1. Новые складчины Показать еще

    17.10.2017: От динозавра до компота. Ученые отвечают на 100 (и еще 8) вопросов обо всем

    17.10.2017: Неви(тами)нные витамины. Холин, инозит - на страже клеточных границ - часть 2 (Ольга Кондратьева)

    17.10.2017: Энергия Вашего организма - Коэнзим Q10 (Ольга Кондратьева)

    17.10.2017: Натуральный соевый экстракт - Лецитин (Ольга Кондратьева)

    17.10.2017: Полезные свойства гвоздики (Ольга Кондратьева)

  2. Гость, если у Вас на каком либо сайте есть аккаунт с повышенным статусом, то и у нас вы можете получить соответствующий статус. Подробнее читайте здесь https://www.skladchik.biz/threads/83942/
    Скрыть объявление
  3. Нужен организатор Показать еще

    17.10.2017: Натуральный соевый экстракт - Лецитин (Ольга Кондратьева)

    15.10.2017: Final Cut Pro X для Новичков

    12.10.2017: Полный курс Таро

    11.10.2017: Диски с фестиваля Ведической Астрологии Рами Блекта...

    08.10.2017: Дыра на теннис

  4. Сбор взносов Показать еще

    03.10.2017: [WebSarafan] 7 способов: Как продать ваш продукт или сервис?

    03.10.2017: [profileschool] Короткометражный фильм: практика монтажа (Дарья Гладышева)

    01.10.2017: Курс по работе и заработку с Telegram

    24.09.2017: VSA. Побарный анализ (Александр Пурнов)

    11.09.2017: Атлант: Продвинутая семантика для инфосайтов

Открыто Программирование на Java для тестировщиков(обновленный)

Тема в разделе "Курсы по программированию", создана пользователем Менеджер, 14 май 2016.

Цена:
15000р.
Взнос:
164р.

Список пока что пуст. Запишитесь первым!

    Тип: Стандартная складчина
    Участников: 0/100
    1. 14 май 2016
      #1
      Менеджер
      Менеджер Организатор Организатор

      Программирование на Java для тестировщиков(обновленный)

      Это новый актуальный курс (последние лекции будут записаны в конце апреля - начале мая).

      Этот курс предназначен для обучения тестировщиков программированию на языке 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.


       

Участники складчины Программирование на Java для тестировщиков(обновленный) смогут написать отзыв