Test data management is important to agile development in ensuring test accuracy and reliability, thus enhancing the effectiveness of the testing process.
SDLC History in Brief
Traditional software development follows a basic pattern, such as:
-
Requirements Definition
-
Design
-
Development
-
Unit Testing (in a series)
-
Integration Testing
-
Progression Testing (of the new features)
-
Regression Testing (of the impact of the new features on the existing ones)
-
Production Deployment
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 tools – 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” (having their test data generation tool provision 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, in order to redact any, and all, sensitive information
-
Populated, with enough test data to meet the needs of every DevOps 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 differentapplications, 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. It then needs to be integrated and protected using data masking best practices.
Needless to say, any breach in the data (identifying individuals, or compromising their data) would have serious consequences.
An entity-based test data management approach – 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.