Paradigm Shift [Selenium + Java, in Russian]

Paradigm Shift [Selenium + Java, in Russian]

Regular price $30.00 $19.00 Sale

О мини-курсе

  • больше 2 часов видео (на основе записи онлайн вебинара)
  • разбора реальных практических примеров использования техник разных парадигм программирования при построении автоматизации тестирования веб-приложений
    • императивной
    • структурной
    • процедурной
    • модульной
    • объектно-ориентированной
  • c использованием
    • Java, Maven, JUnit, Selenide
    • OOP
    • шаблонов NafigPageObject:p, PageModule, PageObject, Fluent PageObject, ElementObject (Widgets)
    • Atomic and End to End style tests
  • с целью
    • понять с практической точки зрения пользу, условия и границы использования разных парадигм/техник
    • выйти за рамки “ООП головного мозга” и понять, когда таки “эта болезнь превращается в полезный скилл”
  • для кого?
    • новичков
      • с базовыми знаниями о Css Selectors, Selenium,
      • возможно, еще слабыми знаниями OOP (классы, объекты, конструкторы, инкапсуляция, абстракция, наследование интерфейсов, полиморфизм)
      • и желанием во всем этом разобраться
    • автоматизаторов уже с опытом написания тестов с помощью Selenium, но желающих познакомиться с некоторыми лучшими практиками в мире автоматизации, структурировать знания и взглянуть с другой стороны на привычные более распространенные, но не при всех условиях - эффективные подходы
    • автоматизаторам без опыта работы с Selenium Webdrirver но с желаниям на реальных примерах глубже понять различия парадигм, и, например, подготовиться к практическим вопросам на тему ООП на собеседованиях. 
  • отвечая на вопросы
    • Какая из парадигм когда больше подходит или не подходит. Их сильные и слабые места.
    • Зачем на самом деле нужно ООП в автоматизации веб-приложений, или все же не нужно? :) Реально ли писать тесты, его не используя?
    • и много чего другого
  • пропуская
    • как все это сделать на чистом Selenium Webdriver (точно так же, только больше кода писать)

Исходный код

Доступен бесплатно на гитхабе вместе с дополнительными комментариями.

Дополнительные материалы

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

Познакомившись с разными парадигмами, их плюсами и минусами должно стать понятно, когда есть смысл использовать ООП. Если ООП - именно то, что нужно в твоем случае, то следующим шагом в обучении его применения может стать курс Test Automation from Scratch with Widgets. В нем разрабатывается основная часть фреймворка, показанного и в конце этого видео о парадигмах.

FAQ

Почему Selenide?

Цель этого видео, в первую очередь, - научить использованию техник разных парадигм программирования, в том числе и объектно ориентированной, понять, зачем и когда нужны такие шаблоны, как PageObject, не отвлекаясь на технические детали работы с чистым WebDriver, настройку ожиданий и так далее, не писать с нуля свою обертку вокруг Selenium Webdriver (об этом будет отдельный курс), без которой невозможно построить простую и эффективную реализацию модели веб-приложения. Selenide - просто предоставляет удобный API для наших задач. Научившись всем вышеупомянутым техникам, которые никак не связаны именно с использованием Selenide - потом можно будет также их использовать и в связке с другими библиотеками, в том числе и с Selenium Webdriver. 

Более глубокий ответ на этот вопрос можно также получить из публично доступной записи доклада: Ликвидируем Безграмотность: Implicit & Explicit Waits, PageFactory . Хотя доклад о Selenium + C# - все очень похоже на Java. Затруднений с пониманием возникнуть не должно ;)