Test-Driven Development for the ETL Process

Course Summary

This course will provide students with an understanding of the principles of Continuous Integration (CI) and Continuous Delivery (CD), and how to automate the execution of ETL tests using an automation server.

Utilizing the Cucumber software testing framework, students will learn how to initiate ETL jobs; follow up those jobs with ETL test execution; and gather metrics and report on those results. These components will be implemented in a Jenkins pipeline as part of an overall Test-Driven Development framework.

Intended Audience

  • Data Testers
  • Automation Engineers
  • Quality Assurance Analysts
  • ETL Developers
  • Project Managers
  • anyone involved with providing software quality for the ETL process

At the end of the course, you will be able to:

  • Describe the purpose of Test-Driven Development in the ETL process
  • Determine an appropriate testing strategy
  • Setup and Configure Cucumber in the Eclipse IDE
  • Learn the Gherkin Testing Language to create tests
  • Learn to setup and configure a pipeline in Jenkins
  • Learn to create and view Cucumber reports generated from Jenkins

What is Test-Driven Development

  • Benefits and Pitfalls

Phases of the Test-Driven Development Process

  • Add Tests
  • Initial Test Execution
  • Code Tests
  • Verification Test Execution
  • Refactor
  • Iterate

Behavior Driven Development and Cucumber

  • What is Behavior Driven Development
  • What is Cucumber
  • Cucumber Execution Flow
  • Required Components
  • Build Configuration
  • ETL Examples

Learning Gherkin Language

  • Gherkin Trigger Terms
  • Given
  • When
  • Then
  • And

Cucumber Framework

  • Coding Step Definitions
  • Regular Expressions for Annotations
  • Test Runner Class

Cucumber Components

  • Scenario Outlines
  • Feature Files
  • Tags
  • Data Tables
  • Headers
  • Multiple Columns
  • Class Object Implementation
  • Hooks
  • ETL Examples
  • Debugging
  • Reports

Introduction to Jenkins

  • Creating Jenkins Builds
  • Creating a Jenkins Pipeline

Jenkins Integrations

  • Maven Integration
  • Github Integration
  • Bitbucket Integration
  • Artifactory Integration

Jenkins Analysis

  • ETL Workflow Examples
  • Reporting Analysis
  • Understanding of databases and database schemas
  • Basic knowledge around the ETL process
  • Basic understanding of Java concepts (Classes, Methods, Arguments)

Students also registered for...