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
- Course Objectives
- Course Outline
- Prerequisites
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)