<img height="1" width="1" style="display:none;" alt="" src="https://px.ads.linkedin.com/collect/?pid=1110556&amp;fmt=gif">
February 21, 2022

Continuous Test Data Management for Microservices, Part 2: Key Steps

by: Shamim Ahmed

In my prior blog, Continuous Test Data Management for Microservices, Part 1, we offered an introduction to the key approaches for applying continuous test data management (TDM) to microservices. 

The continuous TDM process for microservices applications is similar to that for general continuous TDM (see figure below), but tailored to the nuances of the architecture. In this post, I’ll outline the key steps for applying TDM across the lifecycle.  

Broadcom Enterprise Software Academy – Continuous Test Data Management for Microservices, Part 2: Key Steps

Step 1(b): Agile Design

Rigorous change impact analysis during this step is key to reducing the testing (and the TDM) burden for microservices applications—especially in the upper layers of the test pyramid and the CD stages of the lifecycle. There are various ways to do this, following are a few highlights: 

  1. Code-change-based impact analysis (also known as a white-box, inside-out approach). Through this approach, we identify which services and transactions are affected by specific code changes in implementing backlog requirements. We then focus testing and TDM efforts on those services and transactions affected (see figure below). This approach is supported by tools such as Broadcom TestAdvisor and Microsoft Test Impact Analysis. This approach is more useful for white and gray box testing, specifically unit and component testing.  
    Broadcom Enterprise Software Academy – Continuous Test Data Management for Microservices, Part 2: Key Steps
  2. Model flow-based impact analysis (also known as a black-box, outside-in approach). Here we do change impact analysis using flows in model-based testing. This analysis helps to highlight key end-to-end or system integration scenarios that need to be tested, and can also be traced down to individual components and source code (see figure below). This approach is supported by such tools as Broadcom Agile Requirements Designer, and is more beneficial for testing in the upper layers of the test pyramid. 
    Broadcom Enterprise Software Academy – Continuous Test Data Management for Microservices, Part 2: Key Steps

We recommend a combination of both approaches to ensure sufficient test coverage, while minimizing the number of tests in a microservices context. Based on the change impact set, we prepare test data for the tests discussed above. 

Step 2(a): Agile Parallel Development 

As discussed in the previous section, as part of development, a component developer must also define and implement these APIs:

  • APIs that allow us to set test data values in the component data store. These are sometimes referred to as mutator APIs. 
  • APIs that allow us to extract test data values, for example, from instances of components in production. These are also known as accessor APIs.

Developers should use the white-box change impact testing technique discussed above to focus their unit and component testing efforts. 

Step 2(b): Agile Parallel Testing

This is an important stage in which testers and test data engineers design, or potentially generate or refresh, the test data for test scenarios that have been affected by changes and that will be run in subsequent stages of the CI/CD lifecycle. This assessment is based on the backlog items under development. Testers use the TDM approaches described above for cross-service system testing and end-to-end testing.  

In addition, the test data will need to be packaged, for example, in containers or using virtual data copies. This approach can ease and speed provisioning into the appropriate test environment, along with test scripts and other artifacts.   

Step 3: Build

In this step, we typically run automated build verification tests and component regression tests using the test data generated in the previous step. 

Step 4: Testing in the CD Lifecycle Stages 

The focus in these stages is to run tests in the upper layers of the test pyramid using test data created during step 2(b). See figure below. The key in these stages is to minimize the elapsed time TDM activities require. This is an important consideration: The time required to create, provision, or deploy test data must not exceed the time it takes to deploy the application in each stage.  

Broadcom Enterprise Software Academy – Continuous Test Data Management for Microservices, Part 2: Key Steps

How do we get started with continuous TDM for microservices?

Continuous TDM is meant to be practiced in conjunction with continuous testing. Various resources offer insights into evolving to continuous testing. If you are already practicing continuous testing with microservices, and want to move to continuous TDM, our recommendation is to proceed as follows:   

  • For new functionality, follow the TDM approach we have described. 
  • For existing software, you may choose to focus continuous TDM efforts on the most problematic or change-prone application components, since those are the ones you need to test most often. It would help to model the tests related to those components, since you can derive the benefits of combining TDM with model-based testing. While focusing on TDM for these components, aggressively virtualize dependencies on other legacy components, which can lighten your overall TDM burden. In addition, developers must provide APIs to update and access the test data for their components. 
  • For other components that do not change as often, you need to test less often. As described above, virtualize these components while testing others as needed. In this way, teams can address TDM needs as part of technical debt remediation for these components. 

Broadcom Enterprise Software Academy – Continuous Test Data Management for Microservices, Part 2: Key Steps

Conclusion

This two-part blog series has provided an overall approach for continuous TDM practices for microservices. As you can probably tell, such component-based applications are extremely well suited to supporting continuous TDM. This is true because these applications are modular and componentized. 

Stay well, my friends, and may all your microservices TDM efforts be continuous! 

Explore More Posts

View All Blog Posts
June 13, 2022

Optimize Continuous Delivery of Microservices Applications with Continuous Performance Testing

Here is a look at the the full lifecycle implementing end-to-end continuous performance testing for micro-services. Read Now
May 25, 2022

What's New in Test Data Manager 4.10?

This latest release lets customers deploy TDM at scale, facilitate migrations of SAP applications and operate across a wide range of databases. Read Now
April 22, 2022

Register Today for Our "What's New in Test Data Manager 4.10" Webinar

Learn how the new release lets you deploy TDM at scale, facilitate migrations of SAP applications, and operate across a wide range of databases. Read Now
February 21, 2022

Continuous Test Data Management for Microservices, Part 2: Key Steps

This post, the second in a two-part series, outlines the key steps for applying continuous test data management in microservices environments. Read Now
February 16, 2022

Continuous Test Data Management for Microservices, Part 1: Key Approaches

This post, the first in a two-part series, looks at key concepts for applying continuous test data management (TDM) to microservices environments. Read Now
January 24, 2022

Continuous Service Virtualization, Part 1: Introduction and Best Practices

In this blog, the first of a two-part series, we will describe some best practices for establishing continuous service virtualization as part of DevOps. Read Now
January 24, 2022

Continuous Service Virtualization, Part 2: Steps for Optimizing DevOps

In this second post in our two-part series, we discuss four key steps for leveraging continuous service virtualization to optimize the DevOps lifecycle. Read Now
November 3, 2021

Employing Agile Requirements Designer to Support API Testing: 5 Use Cases

With Agile Requirements Designer, teams can create API tests that can be executed with their test automation framework. This post describes five use cases. Read Now
September 28, 2021

Optimizing Continuous Testing with Continuous Test Data Management

This blog describes some best practices for establishing continuous test data management (TDM) as part of continuous testing. Read Now
September 8, 2021

Security Testing in an Agile Development World

This blog post presents different security testing methods and provides a few tips for conducting a more secure code review. Read Now