The importance of test data management is inherent in the Software Development Life Cycle (SDLC).
Table of Contents
SDLC History in Brief
Traditional software development follows a basic pattern, such as:
Unit Testing (in a series)
Progression Testing (of the new features)
Regression Testing (of the impact of the new features on the existing ones)
In a timeline spanning months, these steps follow a “waterfall” progression, one after the other, as seen below. Note that the testing cycles (pictured in orange) take up the bulk of the time in the lifecycle.
Using traditional waterfall progression, deployment only occurs at the end of the project.
Catalyzed by the rapid growth in applications, software development recently began moving to extreme programming, in short sprints. This agile approach – managed by emerging Development Operations (DevOps) teams – is characterized by much smaller-scope development project segments, which go live in weeks, as opposed to months.
The best way to illustrate this phenomenon is to use the same timeline as above, but to emphasize the importance of test data management – especially in the context of shifting all the testing cycles to the left of the chart, hence the name “Shift-Left Testing”.
Short agile sprints enable incremental deployment throughout the development lifecycle.
The Importance of Agile Development Methodology
Agile development methodology actually divides the 12-month project into smaller “sprints”. The logic is to get software increments into production as soon as possible – instead of waiting a year 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 Continuous Integration / Continuous Development (CI/CD) model, all phases of the lifecycle – Design, Development, Testing, Deployment – go on simultaneously, in a continuous cycle.
Agile methodology allows for continuous design, development, testing, and deployment, throughout the SDL.
The Importance of Production-Grade Test Data
Now imagine not one, but dozens, of sprints happening all the time. Today’s DevOps teams are constantly challenged with “feeding the monster” (provisioning test environments on demand) with fresh, high-quality test data. Where better than to get that data, but directly from production. That’s a good start, but for real data to become test data, it must be:
Complete, trusted, and up to date
Masked, by redacting any, and all, sensitive information
Sufficiently populated, to meet the DevOps needs for each, and every, development project
Synthesized, in the case where additional test data is required
Compliant, with data privacy regulations
Effective Test Data Management
The data derived from production is actually fragmented across many different applications, environments, concurrent projects, offshore/distributed testing teams, and levels of compliance. Preparing the data for testing requires a huge effort in “levelling the playing field”, so that the information can be used quickly, safely, and effectively.
One of the main challenges in providing real data to testing teams is that the data is often divided between different sources. For example, customer data may be broken up between customer care, billing, ordering, ticketing, and collection systems. To run functional tests on a segment of customers in an integrative testing environment, their data must first be extracted from all relevant source systems.
Needless to say, any breach in the data (identifying individuals, or compromising their data) would have serious consequences.
A new breed of test data management software does all of the above, automatically, enabling testers to provision test data on demand, in minutes.
The Importance of Test Data Management on the Bottom Line
In the end of the day, the move to agile development, requiring high-performance test data environments, saves enterprises millions of dollars. The waterfall approach shows the incredible drain of time, and resources, associated with waiting until the end of long-term projects to deploy. The bottom line is that proper test data management practices reduce time, cost, and risk, in software delivery.