Test Data Management combines the tools and processes to provision production data securely and reliably into software testing environments. Read on for a full review of test data management benefits, best practices, tools, and features
The shift to agile development and DevOps, with continuous integration and continuous deployment (CI/CD) pipelines, is accelerating the pace of software innovation, while reducing costs. For testing teams, this shift means that test data provisioning must 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 reflect a variety of functional and non-functional software testing scenarios.
With production data fragmented across multiple enterprise systems, ensuring complete and harmonized data for testing is a constant struggle. The need to mask data, as required by privacy regulations, and create synthetic data to augment the existing data set, add an additional layer of complexity.
For DevOps leaders and testing teams, delivering high-quality test data environments, at a rapid pace, is critical. This paper reviews the challenges faced on the journey to DevOps test data management, and the steps required to get there.
Catalyzed by the rapid growth in applications, software development has shifted gears, releasing smaller software deliverables in fast sprints. This agile approach – managed by DevOps teams – is characterized by much smaller-scope deliveries, which go live in weeks, as opposed to months.
Agile methodology allows for continuous design, development, testing, and deployment, throughout the SDL.
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. In this kind of CI/C model, all phases of the lifecycle – design, development, testing, deployment – go on simultaneously, in a continuous cycle.
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, which needs qualitative, consistent, and predictable data sets to run smoothly.
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 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.
Testing from the earliest stages of the development process increases efficiency and accelerates innovation.
Shift-left testing is common in agile development, where software development is divided into 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 examine the challenges related to test data in DevOps, and then review a practical solution for each of them.
Testing teams must contend with many data constraints, which typically slow down software delivery, while hindering quality, and agility.
Testing teams sometimes lack access to the necessary data, or the tools to extract it. Enterprise data is typically fragmented across different data sources. For example, an individual customer's data might be stored in dozens of applications, including customer care (CRM), billing, ordering, ticketing, collections, campaign management, churn prediction, and more. To run functional tests that require customer data, would require provisioning data from all relevant source systems.
Gathering enough production data to cover the required testing scenarios is often challenging.
For example, testers may require the data for 300 customers (across all systems), that meet a certain criteria set, to complete a test scenario, but only 200 production samples are actually available.
Test data management tools need to be able to synthesize (generate) 100 data samples, based on the production samples, while maintaining data integrity across all systems.
In many cases, the data may be available, but it fails to meet the required quality standards for the following reasons:
Data masking is used to disguise personally identifiable information.
Adopting a proven test data management strategy enables enterprises to accelerate test data provisioning and increase the quality of software delivery.
Here are the steps companies should use on the road to delivering agile test data at enterprise complexity and scale.
Start by determining clear criteria upon which the test data collection process will be based. These define the data subsets that should be used in testing the use cases, including the required business entities to cover the testing scenarios, the volume of data required for testing, its sources, its freshness, and more. Teams can make use of an automated data catalog to inventory and classify test data assets, and visually map information supply chains.
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.
A TDM system should be adaptable, easy to sync to sources, and capable of rolling back test data on demand
Testing is an iterative process. When bugs are discovered and fixed, testing should be repeated to ensure quality (regression testing). 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 should seek a test data management tool that is adaptable, easy to sync with source systems, and capable of rolling back data on demand.
Any test data management strategy is incomplete without ensuring adequate privacy and security measures via data masking. When dealing with production data, the mission is to ensure data privacy, while maintaining the data’s integrity and keeping it secure. Centralizing the test data from multiple sources into a test data warehouse, leveraging data masking tools to protect it, and securing it along the way, creates a simple and efficient process for meeting data compliance and security requirements.
Synthetic data is another method for protecting sensitive information besides masking. In cases where test teams cannot extract enough production data for testing, or if new software functionality needs to be tested that lacks production data, test teams need to generate test data to complete the testing. A test data management strategy should include the means to easily generate synthetic data on demand.
After acquiring the necessary test data, generating missing data, and masking PII as required, it’s time to move it to the target test environments. Test data management tools should offer a fast and seamless path from multiple source systems to multiple environments. Testers should be able to upload, adjust, and remove test data sets either manually or in an automated manner using CI/CD integration.
When we ask, “What is test data management?”, what we are really asking is, “Which advantages will we gain by building the right process around it?”
The effectiveness of both the testing process, and the delivered software product, rises significantly when proper test data management tools and methods are applied. Provisioning high-quality test data in minutes, enables development teams to increase test coverage, accelerate delivery, and improve the organization’s agility.
By quickly provisioning the needed test data, teams are able to detect bugs early on in the software development process, and therefore fix them at a much lower cost. In addition, not having to work hard to produce relevant data frees development teams to focus on innovation and move the organization forward.
When test data management is both safe and of the highest quality, teams are able to adhere to privacy regulations, preventing damage to the company's reputation. Reducing production defects and avoiding data breaches increase user trust levels, helping companies stay one step ahead of the competition.
The move to agile software development, with high-performance test data environments, saves enterprises millions of dollars. Test data management can improve compliance, reduce testing costs, and enhance the end-user experience. The challenge is, to find the most suitable test data management tool for your organization.
The latest innovation in test data management tools employs a business entity approach – where an entity may be a specific customer, product, order, or any other business object that’s integral to the application being tested.
Test data is collected from the source systems by business entity, unified and masked as an entity, and then provisioned to the target test systems – by business entity.
This method simplifies the test data management process, and ensures referential integrity of the test data, TDM efficiency, and complete control of the TDM process.
Further, data for business entities – both structured and unstructured – is ingested and compressed into a centralized test data warehouse, allowing testing teams to apply selection criteria to the entities, in order to subset the data and provisioning it accordingly.
The test data warehouse supports data versioning, to enable segregation of test data by testers, as well as test data rollbacks. Data in the test data warehouse is masked in flight, before being stored. This includes the personal identifiable information (PII) that is stored in various unstructured data constructs: check images, PDF documents, chat scripts, audio files, XML documents, and more.
Read more about entity-based test data management tools.
Download the whitepaper to learn about K2View's revolutionary Test Data Management platform.
Get a live demo of the K2View platform to assess its fit for your use cases.
Experience the power and flexibility of the K2View platform with a 30-day trial.
Experience the power and flexibility of the K2View platform with a 30-day trial.