Organizations deliver software increasingly fast using DevOps principles and practices. In this new world, testing plays a big role. Without tests, there’s not much value in automating application deployments.

You might have been able to break the silos of development and operations. But if you’re still doing manual testing and requesting help from other teams to gather data for testing, you’re not taking full advantage of delivering continuously.

In this test data management training course, we’ll talk about why preparing data for testing is crucial in all organizations and why historically this has been so difficult to do. Test data management solves this problem in different ways by letting you have copies of production data, with the exception that sensitive information like credit card numbers or social security numbers can be masked.

After you’ve been able to stop requesting data from the DBAs, there’s still a problem: you still need them to review and apply schema changes. Usually, that happens just before doing it in production, adding more time to deployments—especially when there are problems with the scripts.

That’s why in, this course, we’ll also talk about schema changes and how can they be injected into your DevOps implementation. We’ll talk about the principles, practices, and tools that will help you achieve it.

Finally, we’ll put that into practice by doing a workshop using a real-world scenario.

Part 1: Why Is Testing Data Important?

Part 2: Why Is Testing Data Hard?

Preparing data for different environments is not an easy task. As the database and complexity grow, it’s more and more difficult to do. Plus, it can be expensive when databases are too big.

Compliance, Regulations, and Data Protection

The Impact That It Has In Cost Storage

Part 3: The Testing Pyramid

We’ll talk not only about the different type of tests but also about when they’re needed and how many of them are needed to reduce lead time to deliver.

Manual Tests

System or APIs Tests

Integration Tests

Component Tests

Unit Tests

Part 4: Test Data Management

We’ll cover all the aspects of test data management and its role in DevOps.

What Is It?

Doing the Discovery of Data

Making TDM A Self-Service Process

Masking Data For Security and Compliance

Working With Subsetting Data

Working With Synthetic Generation

Including Data Virtualization

Commercial Tools

Part 5: Using Test Data Management For Testing

How to create non-production databases?

Exercise: Creating non-production databases using TDM

Working with different test environments like dev, QA, staging

Tips & Tricks to use TDM for Testing

Exercise: Running a set of test cases using TDM

Part 6: Continuous Integration and Continuous Delivery Overview

A brief recap of CI/CD. We will cover the basics, specifically how this applies to databases

What Is CI/CD?

How does a CI/CD workflow look like?

How to include DB changes?

Part 7: Database Release Automation

Automation is king. But how can DevOps help you to not just deliver code changes but also changes in the database?

Database Versioning

Database Migration Scripts

Immutable Data For Test Cases

Forward and Backwards Compatible

Rolling Back Databases

Commercial and Noncommercial Tools

Part 8: Working with Liquibase

Liquibase is the open source project used to automate the database release changes. We’ll discover what it is, how to use it and how to integrate it in any delivery pipeline.

Liquibase: What is and How it Works

Liquibase Concepts

How to Use Liquibase?

Using Liquibase With New Projects

Using Liquibase With Existing Projects

Incremental Migrations

Generating SQL Scripts

Managing Rollbacks

Liquibase Best Practices

Commercial Support: Datical

Setting Up a Local Environment

Exercise: Creating Initial Database Schema

Part 9: Database Release Automation Project

Install the Software

Creating Initial Database Schema

Workflow to Promote DB Changes

Using Liquibase to Promote DB Changes

Putting Everything Under Version Control

Creating a Deployment Pipeline using Jenkins and Liquibase

Part 10: Database Release Automation Using Containers

Using containers will help you to reduce costs and time to deliver. So we’ll talk about why this is important and discuss some tips that will help you implement containers to promote database changes in your delivery pipeline.