• K2VIEW
  • WHITEPAPER

Test data management for agile enterprises

pillar-page-heroTDM

Overview

The shift to agile development, with Continuous Integration and Continuous Development (CI/CD) pipelines, is accelerating the pace of innovation with increasing efficiency. For testing teams, this shift, means that test data design and provisioning need to keep up with the faster pace.

Shift-left testing works in tandem with agile software delivery in raising the standards of quality testing. With this method, testing begins at the earliest stages of the development process rather than saving it for last. To implement this approach, test data must be prepared even earlier, and faster.

With production data fragmented across multiple enterprise systems, ensuring complete and harmonized data for testing is a constant struggle. The need to anonymize data, as required by privacy regulations, and create synthetic data to augment the existing data set, add an additional layer of complexity.

For Development Operations (DevOps) leaders and testing teams, delivering high-quality test data environments, at a rapid pace, is critical. This paper reviews the challenges faced on this journey, and a proven strategy outlining the steps required to get there. 

Agile development and CI/CD

Catalyzed by the rapid growth in applications, software development has shifted gears, delivering segments in fast sprints. This agile approach – managed by DevOps teams – is characterized by much smaller-scope development project segments, which go live in weeks, as opposed to months.

blog 15-2

Agile development methodology divides long projects into smaller “sprints”. The logic is to get software increments into production as soon as possible – instead of waiting long periods for full deployment. Not only does agile development give companies a competitive edge, by getting innovative apps out to the user, sooner, but it also mitigates risk, because the cost of downtime (i.e., resolving issues in production) is thousands of dollars per minute. In this kind of CI/C model, all phases of the lifecycle – design, development, testing, deployment – go on simultaneously, in a continuous cycle.

Testing must keep up

Preparing quality test data has always been a challenge, especially with agile development and CI/CD. And with the growing popularity of microservices, and the integration of multiple applications, the provisioning of valid test data has become even more complex.

"We’re on a journey to modernize our apps and to realize the benefits of embracing a DevOps methodology. But ... you hit a roadblock if you don’t have realistic data to test against."
Ward Chewning VP of Network Services & Shared Platform, AT&T

For a test cycle to be effective, whether it is manual or automated, availability of stable test data, that is as close to production as possible, is critical. Further, DevOps requires automation to be successful, and that automation needs data to run smoothly, and be able to access qualitative, consistent, and predictable sets of data. Adequate and on-demand test data should be available for running fully automated test suites. This test data should not constrain automated testing, to ensure seamless test data management processes.

Shift-left testing requires shift-left test data

Shift-left testing is an approach to software testing in which testing is performed earlier in the software development process. To test earlier, however, requires the earlier availability of realistic test data.

 

diagram blog17@150x-100-1

 

Shift-left testing is common in agile development, where software development is divided into short-duration “sprints”. Each sprint requires its own testing cycles, and so, creating realistic test data often becomes a bottleneck – cancelling the gains of agile productivity.

Let’s take a deep dive into the challenges
related to test data in DevOps, then propose a practical approach to resolve each of them.

Top test data management challenges

Testing teams must contend with many data constraints, which typically slow down software delivery, while hindering quality, and agility.

Data accessibility

Testing teams sometimes lack access to the necessary data, or the tools to extract it. For example, data is typically split between different data sources. A “customer” is typically fragmented between customer care,
billing, ordering, ticketing, collection systems and more. To run functional tests on a customer 360 application, their data must be extracted from all relevant source systems.

20_1

Data availability

Gathering enough production data to cover the required testing scenarios is often extremely challenging. For example, testers may have a population requirement of 300, but only 50 production samples are actually
available. The right TDM tools need to be able to synthesize (generate) 250 data samples, based on the real-life samples, while maintaining data integrity across all systems.

Data quality

In many cases, the data may be available, but it fails to meet the required quality standards for the following reasons:

  • Corrupted data:

    Sharing and reusing test data between different testers often suffers from corruption problems. Relying on such corrupted data could have severe implications that may only be detected deep into the process.

  • Irrelevant or incomplete data:

    Applications must be tested against specific data that simulates all required scenarios. Complete data with referential integrity is paramount in preventing test scenarios from breaking down due to bad data.
  • Unmasked data:

    With data privacy headlining today’s news, there’s no doubt that any production data used in testing environments must be anonymized (made unidentifiable). Any mistakes in this area could lead to data breaches and heavy fines as a result of non-compliance with GDPR and CCPA.

20 b@150x-8-1

 

Proven test data management strategy

Adopting a proven test data management strategy can help enterprises accelerate provisioning and increase trust. Here are a the steps companies should use on the road to agile test data at enterprise complexity and scale.

Define

Start by determining clear criteria upon which the test data collection procedure will be based. These define the data subsets that should be used in testing the use cases, including specific business entities, the volume of data required for testing, its creation date, and more. Teams can make use of an automated data catalog to inventory and classify test data assets, and visually map information supply chains. While these criteria must be granular, they should also leave room for modification and updating moving forward.

Extract

Having established which test data is needed, it’s time to extract it from the organization’s production systems. When the required data is dispersed across many different systems and data sources, a test data management tool – that can integrate with the production systems, and extract test data according to
predefined rules – comes in handy.

2-1

 

Refresh and sync

Testing is an iterative process. When bugs are discovered and fixed, testing should be repeated to ensure quality. A test data management strategy should provide for
the means to quickly roll back the test data that was previously used – by the specific tester, for the specific use case – without impacting the test data currently being used for other tests. Companies need a test data
management system that is adaptable, easy to sync, and capable of refreshing data granularly for each component.

Mask

Any test data management strategy discussion is incomplete without ensuring adequate privacy and security measures. When dealing with production data, the challenge is to ensure data privacy, while maintaining the data’s integrity and keeping it secure. It’s critical to meet privacy compliance regulations and protect the
data from breaches. Centralizing the test data from multiple sources into a test data warehouse, masking it, and securing it along the way, creates a simple and efficient process for meeting data compliance and security requirements.

1-4

Synthesize

When test teams can’t extract a sufficient volume of test data from production, they need a data synthesizing solution to generate the needed dataset. A test data management strategy should include the means to generate synthetic data based on real production data.

Provision

After acquiring the necessary test data, generating missing data, and masking it as required, it’s time to move it to the target test environments. Test data management solutions should offer a fast and seamless
path from multiple systems to multiple environments. Companies should be able to upload, adjust, and remove data scenarios and business entities at any stage throughout the process.

Final thoughts

At the end of the day, the move to agile development, requiring high-performance test data environments, saves enterprises millions of dollars. Test data management can improve compliance, optimize storage, reduce spending, and enhance the end-user experience.

A robust test data management strategy allows enterprises to efficiently satisfy its test data needs by supporting data profiling, analysis, governance, provisioning, generation, and privacy. Such a solution will empower development, QA and DevOps teams to provision test data themselves, in a simple automated process, on a single platform – regardless of the number systems to be tested, their respective technologies, and the number of testing environments.

 

Whitepaper: K2View Data Fabric Technical Deep-dive

Like all K2View solutions, K2View CDH is built on K2View Fabric. Discover our fundamentally different approach to data management with our patented Digital Entity technology.

Download Now
image
Whitepaper
Solving the DevOps Test Data Challenge

Solving the DevOps Test Data Challenge

Download the whitepaper to learn about K2View's revolutionary Test Data Management platform.

Overcome the challenges posed by complex mass-scale enterprise IT

Provision parameter-based test datasets, on-demand

Mask data in flight, while ensuring referential integrity and consistency

Empower testers with self-service test data provisioning

Integrate test data into CI/CD pipelines to benefit from end-to-end automation