Test Data Management Vs Test Data Generation by Hycel Taylor on Feb 03, 2016
There’s a lot of discussion these days about the need for better Test Data Management as demand increases for more test data sets with more conditions to match DevOp’s needs for better software testing while doing continuous integration. At GenRocket we dismiss the concept of having to “manage” and store static test data. Static test data sets are normally files that are created by pruning/obfuscating production data or are files that are created by hand. I call the test data “static” because it’s not test data that is created in real time or at least immediately available before the test data is to be used. Stored (“managed”) test data files have many limitations when it comes to using the test data for real time integration testing, full functional testing or intelligent load testing. Here are four key drawbacks of static test data files that come from production data.
- It is usually not conditioned test data because the data is coming from production that is not conditioned by its nature. Conditioned test data is needed for full functional testing and for intelligent load tests that test not only the front end but also the back end, business logic, database and hardware.
- It takes too long to create test data It takes time to retrieve the data from production, prune the test data and turn the test data into usable test data sets.
- Test data can quickly become “stale.” I talked to the head of QA for a Fortune 500 company and he said that it was taking them a couple months to build usable test data sets from production and by the time they had built the test data they were already out of date and they needed to start again.
- It’s hard to use test data files in real time integration tests. To fully test all of your business logic and back end services you need each autonomous test to have its own test data set generated in real time with valid parent-child relationships – this is close to impossible to do with static test data files from production.
- Generated the Scenarios that contain instructions to generate the test data
- Generated the code to load the test data
- Generated the code to save the test data in the database
- Generated the code that guarantees that the test data is loaded with valid parent-child relationships
- And generated the CRUD test cases