
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.
Explore the Java programming language, its features and why it powers billions of applications, and learn to install Java on Windows with JDK, JRE, and set path and environment variables.
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.
Discover what the Eclipse IDE is and how to install it across Windows, Mac, and Linux. Learn to verify Java is installed, download from eclipse.org, unzip, launch, and set workspace.
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.
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.
Explore Java variables, data types, and naming rules. Learn how to declare local, instance, and static variables, assign values, and print results using Eclipse examples.
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.
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 to launch Internet Explorer with Selenium WebDriver by configuring the IE Driver Server, handling preconditions, and launching a target URL via a Java program.
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.
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.
Update your selenium scripts to reflect the orange hmm demo application's latest login page changes, including the new URL and updated locators for username, password, and login button via XPath.
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 how to craft robust css selectors with tag name, id, and class, use multiple attributes, and apply contains, starts with, and ends with patterns in Selenium.
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.
Learn the differences between findElement and findElements in Selenium: single web element return vs list of web elements, with behavior on mismatched locators and no such element exception.
Explore text box operations in Selenium, including checking display and enable status, entering and retrieving values, and clearing text boxes with a practical demonstration.
Explore how checkboxes work and the operations you can perform on them, including displayed status, enabled status, selected and unselected status, with a practical Selenium demo.
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.
Learn how to handle drop down fields with selenium by selecting options by index, by value, or by visible text, and retrieve the selected option.
Explore how to handle web links with selenium by checking display and enable status, retrieving link text, and performing click operations.
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.
Learn how to create a cucumber runner class in Java to run features. Understand attributes like feature, glue, monochrome, dry run, and plugin, and ending the class name with test.
Explore how the dryrun attribute in cucumber verifies every step has a definition. If dryrun is true, cucumber does not execute the feature and logs missing definitions.
Explore Cucumber options with monochrome and plugins, enabling readable console output and customizable HTML or JSON reports via plugins like pretty and HTML.
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.