Course Duration: 10 weeks (2-3 hours per week)
Module 1: Introduction to Cucumber and BDD
- Overview of Cucumber and BDD principles
- Understanding the benefits of BDD in software testing
- Introduction to Gherkin language and feature files
- Setting up Cucumber with Java environment
Module 2: Cucumber Basics
- Understanding the structure of feature files (Feature, Scenario, Given-When-Then)
- Writing feature files to describe application behavior
- Executing feature files and generating basic reports
Module 3: Cucumber Step Definitions
- Introduction to step definitions and their role in Cucumber
- Implementing step definitions in Java
- Mapping Gherkin steps to Java methods
- Passing parameters between steps
Module 4: Data-Driven Testing with Cucumber
- Parameterization in feature files using Scenario Outline
- Implementing data-driven testing with Examples keyword
- Reading test data from external sources (Excel, CSV) with Cucumber Data Tables
Module 5: Hooks and Backgrounds in Cucumber
- Understanding hooks and their usage in Cucumber
- Implementing Before and After hooks for setup and teardown
- Using Background keyword for common test setup
Module 6: Tagging and Filtering Scenarios
- Tagging scenarios with @tags for organization and execution control
- Running tagged scenarios selectively
- Filtering scenarios based on tags and other criteria
Module 7: Cucumber Reporting and Extent Reports
- Generating detailed reports with Cucumber built-in reporting
- Customizing Cucumber reports with plugins and formatters
- Integrating Extent Reports for enhanced reporting and visualization
Module 8: Selenium WebDriver Integration
- Integrating Selenium WebDriver with Cucumber for web application testing
- Implementing page object model (POM) design pattern with Selenium and Cucumber
- Writing step definitions to interact with web elements using Selenium WebDriver
Module 9: Handling Different Types of Web Elements
- Interacting with various web elements (input fields, buttons, dropdowns, checkboxes)
- Handling dynamic elements and waits with Selenium WebDriverWait
- Working with frames, pop-ups, and alerts in Selenium WebDriver
Module 10: Handling Test Data and Environment Configurations
- Managing test data and configurations in Cucumber tests
- Reading test data from properties files and environment variables
- Configuring test environments for different testing scenarios (development, staging, production)
Module 11: Parameterization and Data-Driven Testing
- Parameterizing test scenarios using Examples keyword
- Implementing data-driven testing with Cucumber Data Tables
- Reading test data from external sources (Excel, CSV) with Cucumber
Module 12: Test Automation Best Practices
- Best practices for writing maintainable and scalable automation tests with Cucumber
- Implementing Cucumber testing standards and guidelines
- Handling test data and environment configurations in Cucumber tests
- Code review and code quality assurance in Cucumber projects
Module 13: Advanced Cucumber Features
- Working with scenario outlines and scenario templates
- Using background steps for common test setup
- Implementing dependency injection with PicoContainer and Guice
Module 14: Continuous Integration and Delivery (CI/CD) with Cucumber
- Integrating Cucumber tests with CI/CD pipelines (Jenkins, Travis CI)
- Configuring and executing Cucumber tests in CI/CD environments
- Analyzing test results and artifacts in CI/CD pipelines
Module 15: Capstone Project
- Students will work on a capstone project to apply the skills learned throughout the course
- Project topics may include automating test scenarios for a sample web application, implementing a test automation framework, or integrating automation testing into a CI/CD pipeline
Assessment:
- Assignments and quizzes after each module
- Mid-term and final exams covering the entire syllabus
- Evaluation of the capstone project
Prerequisites:
- Basic understanding of software testing concepts and methodologies
- Familiarity with Java programming language and Selenium WebDriver basics