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 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.
In this Course, You will Learn How to:
- Upcoming Dates and Locations
Guaranteed To Run
- Course Outline
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.
- What are containers?
- What are containers capabilities?
- Preparing the Environment
- Choosing a .NET project
- Dockerizing the .NET app
- Migrations with Entity Framework
- Creating a deployment pipeline with Jenkins
- Including migrations scripts into the pipeline
- Applying database changes using containers
- Introduction to Kubernetes
- Deploying containers to Kubernetes
- Who should attend
- Software Developers and Programmers
- Software Engineers
- Technical-Oriented Testers
- Test Automation Engineers
- Software Testers
- IT Managers
- Quality Assurance Professionals