The Importance of Test Data Management for Accelerating Agile Development

Ian Tick

Ian Tick

Head of Content, K2view

Test data management is important to agile development in ensuring test accuracy and reliability, thus enhancing the effectiveness of the testing process.

Table of Contents

SDLC History in Brief
The Importance of Agile Development Methodology
The Importance of Production-Grade Test Data
Effective Test Data Management
The Importance of Test Data Management on the Bottom Line

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.

Waterfall Software DevelopmentUsing 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”.

12-Month Project Divided Up into Short SprintsShort 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 Development MethodologyAgile 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 generator 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

  • 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 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, safelyand 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 individualsor 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 developmentrequiring 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.