Over a million developers have joined DZone.
{{announcement.body}}
{{announcement.title}}

4 Keys to Better Test Data Management

DZone's Guide to

4 Keys to Better Test Data Management

Some companies take a haphazard approach to collecting and consuming test data. The result is inadequate testing that leads to more defects and poor software. This is where test data management can make a big difference.

· Agile Zone
Free Resource

See how three solutions work together to help your teams have the tools they need to deliver quality software quickly. Brought to you in partnership with CA Technologies

Image title

Remember the old excuse “The dog ate my homework”? It was a humorous way of telling our teachers that we had lost (or never completed) a homework assignment. Sometimes we feel the same way when we can’t find test data! Perhaps we can’t find the right test data to match test cases. Other times we discover that the test data we needed for an immediate test has already been consumed. Either way, missing test data causes delays and frustrations in the delivery of quality software.

With today’s “always on” and mobile-enabled world, users are pushing applications to their limits. Constant feature updates and higher application standards mean that testing is no longer a spectator sport. Rigorous and continuous testing requires immediate test data matched to specific test cases during the entire development process. There’s no more time for excuses. We need our test data, and we need it now!

By definition, test data can be considered any kind of information fed into the application being tested. Test data may consist of names, account numbers, addresses, and so on. Having the right data is critical to achieving comprehensive and successful testing results. The right data includes “happy path” data, out-of-range data, and negative data. The more representative the data, the more thorough your tests will be.

Some companies take a haphazard approach to collecting and consuming test data. The result is inadequate testing that leads to more defects and poor software. This is where test data management can make a big difference.

Why Test Data Management?

To build and test applications quickly, you need to procure test data quickly. Many companies are establishing a centralized test data management team to serve the needs of all developers and testers. They are streamlining the entire process of acquiring, securing, and provisioning test data. This group, using a test data management solution, addresses common challenges that keep companies from achieving their continuous testing goals, including:

  • Test Data Compliance. Many organizations routinely generate multiple copies of production data for testing purposes. They may mask the sensitive data, but not always. When developers are in a rush to get an application completed, they will cut corners. This usually means grabbing test data from wherever they can get it.
  • Test Data Availability. As much as 50% [1] of a tester’s time can be spent waiting for test data. The unavailability of test data is perhaps one of the biggest bottlenecks to achieving continuous testing goals. Some organizations can spend days or weeks locating and/or building test data.
  • Test Data Freshness. In many instances, data must be refreshed for each successive test. Without a test data management solution, resetting used test data must be done manually. This introduces lots of delay into the testing cycle. Resetting test data can be as painful as creating the original test data.

Getting a handle on managing test data is a big challenge, especially when your company may be used to doing it on an ad hoc basis. A test data management solution, combined with a practical strategy, will help your dev and test teams be more productive. You’ll be able to measure your success (in part) by seeing how much sooner applications are delivered and whether they incur fewer defects. There are four keys areas to look for when deploying a test data management solution.

4 Keys to Better Test Data Management

Image title

Key #1: Discover and Analyze Test Data

The first task in having a test data management plan is to do an inventory of the data you have on hand. You’re almost certain to have data scattered across multiple systems and in different formats. You should identify the data needed based on your test cases. This really means you must use a tool that considers the end-to-end business requirements of an application and can link the right data to those tests. Manually locating test data is a time-consuming and error-prone process. A test data management solution that provides complex coverage analysis and data visualization is a better approach.

Key #2: Protect Sensitive Data

Comprehensive testing of applications requires the use of real data. This data is culled from production databases and then masked to help secure sensitive parts of the data. Ongoing and new regulations such as GDPR are raising the bar on protecting sensitive data, especially when it’s being used in testing environments. But having clean test data is not enough. You need to have inconsistent data to test for anomalies that are sure to occur with end users. Other approaches to building test data, such as synthetic data creation, should be used when gathering, securing, and consuming test data. Complex data can be created and simultaneously fed into multiple database types, including mainframe platforms.

Key #3: Deliver Test Data on Demand

Your data must be built for reusability. Data that can be shared from a central repository will maximize the value of work already done and will allow for new data to be built upon existing components. Data sets can be stored as reusable assets from a central repository and then provisioned to multiple test teams on demand. As the data is provisioned, it is cloned and fully versioned, allowing test teams to work from multiple versions in parallel. Bottlenecks are removed, and testers no longer waste time waiting for data or creating it by hand. They can request and receive test data in minutes using a web-based portal.

Key #4: Automate the Process

What if you could automate the entire processes of scripting, data masking, data generation, cloning, and provisioning? The world would indeed be a better place. With CA Test Data Manager and CA Agile Requirements Designer, you can move your teams closer to testing nirvana. Once the test data has been linked to specific tests, the tests can be fed directly into automated testing tools like CA Application Test and lifecycle management tools such as CA Agile Central. This stabilized automation framework guarantees that data will be provisioned in the right state when needed by your testers. Additionally, when test cases and data are linked, they become traceable to the requirements. When requirements change, the data can be updated automatically.

Don’t Go It Alone

There’s no more time for excuses when it comes to achieving continuous testing. Application development is moving at breakneck speed in this new model of continuous application delivery. Deploying a test data management solution is the only practical way to identify, secure, and manage your test data. With the right test data management solution, you can create a link between the requirements, test cases, test data, and virtual assets. And the next time someone asks you where to find their test data, you can tell them where to go...

How are your test data management initiatives going? Drop me a note.

[1] CA Technologies Customer Experience

Discover how TDM Is Essential To Achieving Quality At Speed For Agile, DevOps, And Continuous Delivery. Brought to you in partnership with CA Technologies

Topics:
software testing ,agile testing ,test automation ,agile

Published at DZone with permission of Jeffrey Hughes, DZone MVB. See the original article here.

Opinions expressed by DZone contributors are their own.

THE DZONE NEWSLETTER

Dev Resources & Solutions Straight to Your Inbox

Thanks for subscribing!

Awesome! Check your inbox to verify your email so you can start receiving the latest in tech news and resources.

X

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}