
Post questions in the Udemy Q&A to get answers within 12 hours, attend free live sessions on Google Meet or Zoom, and contact via email or LinkedIn for support.
Learn to implement test driven development by writing unit tests before code and iteratively refactoring until tests pass. See how BDD arises to address business readability.
Explore behavior driven development (bdd) as a plain-english testing approach that bridges the gap between technical and non-technical teams through given-when-then scenarios and login scenarios.
Contrast TDD and BDD by showing TDD's focus on test cases written in programming languages, versus BDD's language for business scenarios, enabling developer–business collaboration with tools like Cucumber and JUnit.
Learn how cucumber supports behavior driven development with Gherkin language, feature and step definition files, and a runner, using Java with TestNG or JUnit to automate scenarios.
Install the latest Java on your machine, verify with java -version, and learn Mac and Windows setup steps to prepare Selenium scripting with Java.
Explore the Java main method as the entry point and its signature public static void main(String[] args). Write a first Java program to print hello world in Eclipse.
Local variables are created inside a method or block, accessible only within that method, stored in stack memory, and must be initialized; they cannot be static or use access modifiers.
An instance variable is a class field outside any method, accessible in methods, not static, stored on heap, and defaults to null for strings or zero for numbers if unassigned.
Explore how static variables use the static keyword to share data across all objects, accessed via the class name, with memory management favoring static over instance variables.
Explore Java data types, covering primitive types (byte, short, int, long, float, double, boolean, char) and non primitive types (string, array, object), their ranges and defaults.
Explore what an operator is in Java and learn the different types, including arithmetic, assignment, relational, and logical operators, with examples on primitive and non-primitive data types.
Demonstrates arithmetic operators in Java, including addition, subtraction, multiplication, division, and modulus, through an Eclipse‑based coding demo that prints results.
Explore assignment operators in Java, using a number variable to demonstrate +=, -=, *=, and /=, and see how values update from 10 to 15, 5, 50, and 2.
Explore relational operators in Java by comparing two variables using less than, less than or equal, greater than, greater than or equal, equals, and not equals, with true/false results.
Learn how to combine multiple conditions with logical operators, using and or in Java. See practical examples in Eclipse with numbers to understand true and false outcomes.
Explore the concept of control statements in Java, learn how conditions decide execution flow, and distinguish selection statements (if, if else, switch case) from iterative loops (for, while).
Learn how the if else control statement in Java evaluates a condition and selects the if or else block, illustrated by an age-based voting example and simple code output.
Learn how if else if extends if else to handle multiple conditions, using a Java grading example (A, B, C) to show conditional flow and stepwise evaluation.
Explore switch case in java as a cleaner alternative to long if-else chains, using a single value, break to exit, and a default case with month number examples.
Learn to use the for loop to execute the same line of code multiple times, avoiding copy-paste. Explore a hello world example and how initialization, condition, and increment control iterations.
Introduce the while loop, show when to choose while over for loops for non-fixed iterations, and demonstrate with Java example printing hello Java five times via a condition and increment.
Explore arrays in Java, including single-dimensional arrays, indexing from zero, fixed size, storing multiple elements, and retrieving values by index or length.
Explore two dimensional arrays, storing data in rows and columns with zero-based indexing, using the array of arrays approach in Java, and applying it to Selenium data providers.
Discover how a Java class acts as a container for data members and constructors, and how to create and use objects with the new keyword to access variables and methods.
Explore how Java constructors initialize instance variables and set up new objects, contrast default constructors provided by the compiler with explicit parameter constructors, and show their impact on object state.
Explore the parameterized constructor in java, contrast with the default constructor, and learn how runtime values map to name, department, and salary through multiple constructors.
Discover constructor chaining in Java by using the this keyword to call one constructor from another, including no-argument and parameterized constructors, with an employee class example.
Explore the oops introduction and its four pillars—inheritance, polymorphism, abstraction, and encapsulation—and see how Java follows these standards to create maintainable, readable code.
Explore inheritance in Java with real-life analogies, and learn how a person base class can be extended by student and professor classes to reuse common name, age, and address fields.
Explore inheritance by implementing a person parent class with student and professor subclasses, using extends and super constructors, to share name, age, and address while printing details.
Explore polymorphism in Java by detailing method overloading and overriding, and see how the static, compile-time polymorphism uses the same method name with different parameter counts within a class.
Explore method overriding within inheritance to customize parent class behavior, enabling runtime polymorphism as subclasses like dog override print animal, while static methods cannot be overridden.
Explore abstraction in java, learn how interfaces serve as a blueprint of services without implementation, why you cannot instantiate interfaces, and how classes implement them to achieve 100% abstraction.
Understand how the Java abstract class uses the abstract keyword to achieve abstraction, with abstract and non-abstract methods, variables, and how it differs from interfaces and cannot be instantiated.
Explore Java encapsulation by wrapping private data and its public getter and setter methods inside a class, demonstrated with an employee example to control access and protect state.
Explore the four Java access modifiers—public, private, protected, and default—and learn how they define the visibility of classes, fields, methods, and constructors across packages and via inheritance, with practical examples.
Explore the Java collection framework focusing on the List interface. See how ArrayList and LinkedList store elements with insertion order and dynamic sizing, supporting add, remove, and get by index.
Create a Java project in Eclipse for Selenium automation, name it Selenium training, select Java 26, and remove any module-info.java, then prepare to add Selenium libraries in the next video.
Explore the features and architecture of Selenium WebDriver, including multi-browser support, browser driver classes extending remote WebDriver, and setting up a Java project in Eclipse.
Learn to launch Google Chrome with Selenium WebDriver on Windows by configuring the ChromeDriver exe in Eclipse and creating a ChromeDriver to open URLs.
Set up a Selenium project on Windows, install Firefox, configure gecko driver, and create a Firefox driver to launch the browser via Selenium, demonstrating with the Facebook application.
Learn how to automate Safari with Selenium by enabling remote automation in Safari settings, using the SafariDriver, and launching Safari to open google.com on macOS.
Learn to identify web page elements with Selenium WebDriver locators, including id, name, link text, partial link text, tag name, class name, XPath, and CSS selector.
Learn how to identify web elements using id and name locators in selenium, and apply by.id and by.name to enter credentials on a Facebook login scenario.
Learn how to identify and click web links with link text and partial link text locators in Selenium. Compare exact versus partial matching and review practical syntax.
Master the tag name locator in selenium to identify groups of elements by their HTML tag, such as input, button, and a, using find elements to locate them.
Learn how to use the class name locator in Selenium to locate multiple elements by a shared class value, capture them as a list, and interact with them.
Explore the XPath locator in Selenium, learn its features, and compare absolute and relative XPath while building precise element selectors with tags, attributes, and indexing.
Explore how XPath methods identify dynamic elements in web pages, using contents, starts-with, text, child, parent, and following-sibling techniques with practical examples.
Learn how to locate elements with XPath by using the preceding sibling to reach inputs, and apply the and or operators with multiple attributes for dynamic locators.
Explore how to wield the contains function in xpath to handle dynamic attributes, using a signup page example to reliably locate elements with changing ids via Selenium.
Identify elements with the XPath starts-with function to handle dynamic attribute values, such as emails, by matching the name attribute starting with email, and apply it in Selenium scripts.
Learn how to use the XPath child relationship to locate elements when attributes fail. Traverse from a parent element to its child, as shown with the username field in Selenium.
Learn how to use css selector as a selenium locator, exploring tag name, id, class, and other attributes, with practical demos locating username, password, and login button.
Learn to write CSS selectors using the id attribute with the hash prefix, practice on a dedicated page, and use Selenium to locate and click the Save Profile button.
Learn to write a CSS selector using a class name with a dot and use Selenium to click the update status button identified by the status-button class.
Learn to write a css selector using attributes when id or class are unavailable, using tag names and brackets to locate elements like the apply filter button.
Discover how to identify and interact with web elements using Selenium locators, from text boxes and buttons to calendars and web tables, with dedicated practice pages to write real scripts.
Learn to handle text boxes in Selenium by entering values with send keys, retrieving them with get attribute, and clearing them with clear, using name locators.
Learn how to handle checkboxes with selenium by using isSelected and click to toggle a checkbox, verify before and after states on a practice page.
Explore radio button operations such as displayed status, enabled status, selecting and unselecting, with a practical selenium demonstration that shows how to verify selection and toggle options.
Explore how to automate drop-down handling in Selenium, covering single and multi-select menus, and selecting options by visible text, value, or index.
Explore how to handle web links with selenium by checking display and enable status, retrieving link text, and performing click operations.
Discover how Maven streamlines end-to-end automation tasks and Selenium integration by managing dependencies, downloading jars via pom.xml, and integrating with Eclipse and Jenkins for easy build, test, and deploy.
Install Maven on Windows by downloading the binary zip and unzipping it. Then set the Maven home and path in the environment variables and verify with mvn -v.
Create a Maven project for cucumber automation, configure pom.xml with Selenium, Cucumber Java, and Cucumber JUnit dependencies, and install the Cucumber Eclipse plugin to visualize feature files.
Set up a maven project and build cucumber-based automation tests for the Swag Labs demo application, covering login, add to cart, filter, and end-to-end checkout.
Draft the first cucumber scenario by creating a login feature file, implement given/when/then steps in step definitions, and use selenium code to automate login and land on the home screen.
Create and map a cucumber step definitions file in a Java class, generate methods for given, when, and then steps, and implement Selenium code for login and home page verification.
Write Selenium step definitions to automate login flows using Chrome driver, find elements by id, enter username and password with send keys, click login, and assert the home page URL.
Run a cucumber feature file directly to execute a login scenario with Selenium in Chrome, and learn that running via a runner class generates an execution report.
configure a Cucumber runner to execute the login feature by setting features, glue, and plugin options, and generate an HTML Cucumber report via JUnit.
Discover the Gherkin language for writing readable BDD feature files, using keywords like feature, scenario, given, when, then, and scenario outline to describe business behavior.
Use the scenario keyword to define a test case as a business rule, with given, when, then steps. Learn to write scenarios in a feature file, including a negative login.
Learn how the given keyword defines preconditions for a scenario, handle multiple preconditions with the end keyword, and place given before when in a login page flow.
Explore how feature keyword defines high-level description in a Gherkin feature file and must be the first statement to avoid runtime exceptions, enabling scenarios and html report to include it.
Learn how the when keyword in Gherkin defines a scenario step, how to chain steps with the end keyword, and place steps after the given precondition using a login example.
Learn how the then keyword in Gherkin expresses the expected outcomes after when steps, using the end keyword to specify multiple results, as shown in login examples.
Learn how the background keyword in Gherkin enables code reuse by defining common steps that run before every scenario, with a practical demonstration of logging in and adding items.
Demonstrates the Gherkin background keyword by running shared login steps before two scenarios: verify logout after clicking the user image and verify the search button after clicking live.
Create a cucumber feature file for the orange app with a background login using admin/admin 123, then define scenarios for the live page search button and logout link.
Create a Cucumber background step definitions file, generate method signatures from the feature, and implement Selenium steps for login, including entering credentials, clicking login, and validating the home URL.
Explore implementing background step definitions with real-time examples for scenario one and two, using XPath locators, Selenium, and JUnit assertions to validate web elements.
Create a cucumber runner class to execute real-time scenarios from a feature file, configure cucumber options with features and glue, and generate an HTML report while handling implicit waits across browsers.
Welcome to "Learn Cucumber BDD from Scratch to Advanced with Selenium, Java, TestNG, JUnit, and Step-by-Step Framework Development"!
Are you ready to master Cucumber BDD and build robust automation frameworks from scratch? This comprehensive course is designed to take you from a beginner to an advanced level, guiding you through every step of the process.
What You'll Learn:
Cucumber BDD Fundamentals: Understand the core concepts of Behavior-Driven Development (BDD) and how Cucumber can streamline your testing process.
Selenium WebDriver: Gain hands-on experience with Selenium for automating and integrating web applications with Cucumber.
Java for Automation: Learn to use Java effectively for writing and managing your test scripts and automation code.
TestNG & JUnit: Discover how to leverage TestNG and JUnit to run your tests, manage test execution, and organize your test cases.
Maven: Understand how to use Maven for project management and dependency management in your automation framework.
Framework Development: Follow a step-by-step guide to developing a robust and scalable test automation framework from scratch, incorporating best practices and real-world examples.
Course Highlights:
Interactive Learning: Use real-time examples and hands-on projects that mirror industry scenarios.
No Software Installation Required: Start learning immediately without the hassle of installing additional software.
Comprehensive Coverage: From foundational concepts to advanced techniques, get a complete understanding of Cucumber BDD, Selenium, Java, TestNG, JUnit, and Maven.
Framework Development: Build and refine a complete automation framework, gaining practical experience in framework design and implementation.