Программирование на Java для тестировщиков
Курс направлен на изучение возможностей языка Java и вспомогательных библиотек, позволяющих разрабатывать автотесты для приложений разных типов, а также шаблонов проектирования, позволяющих удобно организовать и легко изменять код.
Онлайн-тренинг
Описание
Этот курс предназначен для обучения тестировщиков программированию на языке Java (для тех, кого интересуют другие языки, у нас есть аналогичные курсы для Python и C#).
Да, это курс именно для тестировщиков. Обучение программированию не сводится только к изучению языка программирования. Построение правильной архитектуры, использование фреймворков и библиотек, владение инструментами разработки и отладки -- это тоже часть “умения програмировать”. Поэтому в этом курсе детально рассматриваются именно те возможности языка и вспомогательных библиотек, которые наиболее востребованы при разработке автотестов, в том числе при тестировании веб- и 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.
Формат
10 занятий (15 часов теории) + много практических заданий для самостоятельной работы + постоянные консультации тренера в чате.
Раз в неделю по пятницам до 12.00 по Московскому времени выкладываются теоретические лекции, ссылки на дополнительные материалы, домашняя работа.
Теоретическую информацию можно посмотреть в любое удобное время.
Помимо теоретической части, вас также ждут практические задания для самостоятельной работы, которые вы можете прислать тренеру на проверку. После проверки практических заданий Вы получаете подробный комментарий по своей работе и при необходимости советы по доработке. По результатам комментариев тренера Вы можете переделать работу и отправить ее тренеру еще раз.
Общение участников курса и тренера проходит и в чате группы, где можно задавать вопросы тренеру и при желании общаться с другими участниками группы. Вы можете задавать вопросы по теоретическому материалу или практическим работам, как только они у вас возникают.
Все выпускники, успешно сдавшие домашние задания, получают сертификат.
Материалы курса доступны в течение года с даты окончания.
Условия
Стоимость участия для физических лиц: 18 500 рублей за весь курс.
Стоимость участия для юридических лиц: 22 500 рублей за весь курс за одного участника. При регистрации от 3-х участников на один курс действует 15% скидка.
Организатор тренинга: ИП Баранцев Алексей Владимирович, ИНН 501208546235, ОГРНИП 309501211900065
Информация для физических лиц:
Услуги оказываются на основании публичного договора оферты. Ознакомиться с договором можно ЗДЕСЬ.
Если Вы хотите оплатить тренинг прямо сейчас, то нажмите кнопку выше для перехода в наш магазин и оформите покупку (если кнопка активна, значит можно оплачивать не беспокоясь о наличии мест). После оплаты мы пришлем письмо о регистрации на курс и подтверждение оплаты. Если Вы не получили письмо в течение рабочего дня, просто отправьте сообщение на trainings@software-testing.ru
Если Вы хотите совершить оплату позже, для гарантированного участия обязательно забронируйте место на тренинге, для этого необходимо нажать на кнопку ЗАПИСАТЬСЯ справа от тренинга и заполнить все необходимые поля.
Если у Вас есть какие-то вопросы, их можно задать по указанному выше адресу.
По ссылке Вы можете ознакомиться с информацией о способах оплаты: http://software-testing.ru/buy/sposoby-oplaty
Информация для юридических лиц:
Для регистрации на тренинг и оформления договора и выставления счета на оплату нажмите кнопку Записаться, выберите пункт Организация и заполните все поля.
Обратите внимание, что при постоплате стоимость тренинга увеличивается на 25%.
В случае возникновения вопросов обращайтесь по адресу trainings@software-testing.ru.
Отзывы
Хилюк Анна Юрьевна, Mail.Ru, тестировщик
Все было четко. Позитивно, искренне и интересно. Я все поняла Рассказано все, что нужно для начинающих программистов на java и рекомендована дополнительная литература. После тренинга можно смело идти писать тесты, особенно если есть готовый фреймворк. Если нет, думаю, полученных знаний будет маловато для написания его с нуля. Однако Алексей порекомендовал литературу для изучения, так что кому надо, тот справится
Может быть, было бы полезно включить в курс кратенькую информацию о системах контроля версий с примерами использования, а также рассмотреть основы работы в Intellij IDEA (там есть 30-дневная бесплатная версия, которую можно при необходимости продлять), т.к. популярный инструмент. Все четко. Я получила удовольствие от обучения на курсе.
Хотемской Александр Викторович, TrustSourcing, Тестировщик
Курс очень понравился, по большому счету здесь не основы программирования (что достаточно широко освещено в интернете), а именно особенности написания кода автоматических тестов. Курс был очень полезным, он как бы заложил основы для дальнейшего изучения автоматизации, что безусловно будет полезно в дальнейшем продвижении. Очень понравилось что много внимания уделено Selenium, но не обошли стороной и десктоп приложения. С помощью этого курса узнал как решить основные проблемы, которые возникают в автоматизации – а именно проверки, получение почты, работа с диалогами сохранения файла через браузер, построение удобного фреймворка. Что касается организации, даже если были вопросы, на которые сразу ответ дать не получалось, всегда была помощь на форуме и в скайп, и все решалось успешно. Большое спасибо!
Компетентность тренера не вызывает сомнений. Ожидания по тренингу вполне оправдались. Наконец усвоил, какая должна быть архитектура автоматизированных тестов. Систематизировались имеющиеся знания.
Все четко и понятно. В некоторых особо сложных моментах тренер объясняет несколько раз, подробно. Мне это было только в плюс, так как в программировании я новичок. Хотелось бы получать ответы в форум и скайп чуть-чуть оперативней. Но в целом, ответы на вопросы подробные и исчерпывающие. Все понравилось, получил массу знаний, которые буду применять на практике. Очень удобно, что есть записи занятий и консультаций, так как можно заниматься в удобное время. Все отлично!
Шалыгина Маргарита Сергеевна , SQL Maze, Инженер по тестированию ПО
Сразу видно, что тренер влюблен в свою профессию и стремится поделиться с другими знаниями и умениями. Последовательная и четкая речь. Многие, казалось бы, непростые темы были раскрыты непринужденно и с юмором. Я первый раз обучалась в подобном формате, очень удобно, особенно, когда маленький ребенок и нет времени посещать обычные “классические” курсы. Весьма продуманная организация, все четко и слаженно.
На мой взгляд, очень хороший старт. Впечатление очень позитивное! Думаю, что этот курс не последний для меня :-)
Начиная обучение, не думала, что потребуется такое количество временных и умственных затрат, хотя в автоматизации я недавно, и, конечно, предполагала, что сложностей будет предостаточно. Очень расположила и настроила на правильный лад приятная и дружелюбная атмосфера лекций, воодушевил позитивный и творческий настрой лектора, порадовала грамотная подача материала и, что очень важно, багаж знаний, приобретенных за курс , весьма значителен – я стала намного лучше разбираться в тех областях, о которых раньше имела только смутное представление. Несомненно, придется еще восполнять многие пробелы, изучать соответствующую литературу и практиковаться, практиковаться и еще раз практиковаться. Но главное, что мои ожидания оправдались, и для дальнейшего развития в области автоматизированного тестирования заложен очень прочный фундамент. В скором времени планирую приступить к автоматизации рабочего web-проекта, надеюсь, что с такой базой.
Спасибо Вам за Ваш труд и очень познавательный и полезный курс!
Ближайшие онлайн
-
Первый Онлайн ИНститут Тестировщиков
Начало: 28 марта 2023
-
Школа тест-менеджеров v. 2.0
Начало: 29 марта 2023
-
Python для начинающих
Начало: 30 марта 2023
-
Азбука IT
Начало: 30 марта 2023
-
Школа для начинающих тестировщиков
Начало: 30 марта 2023
-
Программирование на Python для тестировщиков
Начало: 31 марта 2023
-
Логи как инструмент тестировщика
Начало: 3 апреля 2023
-
Тестирование REST API
Начало: 3 апреля 2023
-
Тестирование без требований: выявление и восстановление информации о продукте
Начало: 3 апреля 2023
-
Bash: инструменты тестировщика
Начало: 6 апреля 2023
-
Chrome DevTools: Инструменты тестировщика
Начало: 6 апреля 2023
-
Docker: инструменты тестировщика
Начало: 6 апреля 2023
-
Git: инструменты тестировщика
Начало: 6 апреля 2023
-
SQL: Инструменты тестировщика
Начало: 6 апреля 2023
-
Автоматизация тестов для REST API при помощи Postman
Начало: 6 апреля 2023
-
Инженер по тестированию программного обеспечения
Начало: 6 апреля 2023
-
Консольные утилиты Android: инструменты тестировщика
Начало: 6 апреля 2023
-
Регулярные выражения в тестировании
Начало: 6 апреля 2023
-
Аудит и оптимизация QA-процессов
Начало: 7 апреля 2023
-
Программирование на Java для тестировщиков
Начало: 7 апреля 2023
Конференции
Конференция по тестированию Heisenbug 2023 Spring
Большая техническая конференция по тестированию Heisenbug 2023 Spring
11–12 апреля онлайн и 16-17 апреля офлайн в Москве.