This post aims to answer a simple question. Namely, what is data provisioning in the context of Test Data Management (TDM.)
Socrata’s glossary of technical terms defines data provisioning as:
The process of making data available in an orderly and secure way to users, application developers, and applications that need it.
But remember what we want here is to understand what data provisioning is in TDM. While the question itself is—seemingly—simple, you’ll see that it can quickly generate a lot of other questions that need answering if we are to see the big picture.
We start by taking a look at the current state of affairs in the software development world. You’ll understand why applying automation to the software development process is vital for modern organizations and what roles the automated testing plays in this scenario.
We then give an overview of TDM. You’ll learn what Test Data Management is and why it is essential for a healthy testing strategy.
With all of that out of the way, it’ll be time for the main section of the post, where we’ll see what data provisioning is and how it fits into the TDM puzzle.
Let’s get started.
Welcome to the Brave New World
As promised, let’s start by first taking a look at the current state of software development.
It All Starts With Automation
The software industry underwent many dramatic changes over the last ten to fifteen years. What are these transformations due to?
In one word: automation.
In slightly more words: the widespread and large scale application of automation techniques to the software development process itself.
Software professionals live and breathe automation. We make our livings out of it. We use it to make all kinds of processes more efficient, simpler, and cheaper. But why haven’t we applied automation to our own work in order to improve it?
Sure, software developers and other professionals have been applying automation in some capacity to their own jobs for decades. However, it was only recently that we started to leverage its full potential to make the software development process better. Particularly in the last decade or so, professionals and organizations around the world started to adopt automation at an unprecedented level. This trend can be seen in the rise of concepts like DevOps.
Another area where automation left its mark? Testing.
Automated Testing Is Indispensable. Understand Why.
We can’t understand why automated testing plays such a vital role in today’s software development process until we really appreciate the speed at which the industry evolves. In the blink of an eye, new technologies, processes, and even professions arise and disappear. It’s becoming increasingly hard for software organizations around the world to remain competitive. In order to keep up, they need to adapt and go with the flow, adopting shorter and shorter cycles of development, deployment to production more often than ever before, while simultaneously maintaining the quality as high as possible.
To make things harder, what these companies produce is software, which is highly susceptible to regressions. That means that every time a developer makes a change to an application, they could inadvertently introduce a bug. What’s the implication of that? Simple. In order to ensure at least some degree of confidence in the quality of the released software, you’d have to completely retest it, every time someone makes a change to it.
Sounds impossible? Or at least terribly impractical? That’s because it is. And that’s why automated testing is a must.
Test Data Management Fundamentals
Having established how automation changed the software industry landscape and also how crucial automated testing is for any software organization, we’re now ready to cover TDM. What are the reasons to use Test Data Management in software development? Why do we need it?
TDM Ensures Test Quality
Test Data Management is essential if you want to achieve high-quality test data and high quality tests. As they say, “garbage in, garbage out.” Give a world-class chef terrible ingredients, and the resulting meal will probably not be stellar.
At the end of the day, having a good system in place is just the first step. It’s equally important to feed it quality input; otherwise, the output will inevitably be faulty.
When it comes to testing, everything you’ve seen above also applies. The conclusion is that quality test data is essential. You can have the most effective test process imaginable. You might have brilliant professionals staffing your QA department. The best hardware money can buy? You’ve got it as well.
But none of those things will matter if you don’t take good care of your test data. It will be all a giant waste of money.
TDM Ensures Test Availability
Test quality is essential, as we’ve just seen, but it’s far from being the only TDM responsibility. Availability is just as important.
If the data isn’t ready for you when you need it, its quality is irrelevant. It might have been the most excellent set of test data possible, but it doesn’t do you any good at all. On the other hand, awful data promptly available is certainly even worse.
The takeaway is this: we can’t compromise on both data quality and availability. We need to have both.
Automated Test Data Management to the Rescue
A possibility that might have crossed your mind is to manage test data manually, that is, without the need for automation. That’s an approach we don’t really recommend.
Besides being slow and error-prone, you’d also incur other risks, such as failing to properly mask client data replicated from production. That could land you serious financial and legal problems (GDPR comes to mind.)
That’s why a sane automated testing strategy should adopt Test Data Management tools.
Data Provisioning in TDM: Bringing It All Together
We’ve started the post with a general definition of “Data Provisioning.” Then we set off on a journey to understand why automated testing is vital for modern software development and why TDM, in its turn, is crucial for automated testing.
We’re now ready to reevaluate the initial definition of data provisioning in the context of Test Data Management. Here’s the updated version:
The process of making data available in an orderly and secure way to users, application developers, and applications that need it.
In other words, we could say that data provisioning is the component responsible for delivering the “availability” part of the TDM promise.
That’s All for Today
Data Management, for testing or other purposes, is quite a challenge for modern software organizations. Test Data Management, specifically, is a complex, comprehensive, and essential process in a modern software testing approach. As we’ve seen, there’s no way to ensure at least the minimum level of quality in an application without adopting a proper testing strategy. You’ve also seen that, without high-quality, readily available test data, even excellent testing processes fall short.
That’s where data provisioning comes in helpful. Since it’s a process to ensure the data gets where it needs to do, data provisioning is essential for a sound TDM strategy.
Having proper data provisioning in place is one the most important steps to ensure you have a solid TDM approach, so your organization can reap its benefits and remain competitive in this ever-changing scenario.
Thanks for reading.
This post was written by Carlos Schults. Carlos is a .NET software developer with experience in both desktop and web development, and he’s now trying his hand at mobile. He has a passion for writing clean and concise code, and he’s interested in practices that help you improve app health, such as code review, automated testing, and continuous build.