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.
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.
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.
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 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.
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.
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. 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.
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.
In many cases, the data may be available, but it fails to meet the required quality standards for the following reasons:
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.
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.
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.
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.
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.
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.
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.
When we ask, “What is test data management?”, what we are really asking is, “Which advantages will we receive by building the right test process around it?”
The effectiveness of both the testing process, and the complete product, rises significantly when proper test data management tools and methods are applied. Gathering relevant high-quality data, in a relatively short amount of time, 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 look for 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 prevent corruption and privacy compliance problems that can negatively affect the organization’s overall reputation. Reducing production defects and avoiding data breaches increase user trust levels, helping companies stay one step ahead of the competition.
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.