Automated testing is a crucial part of the software development process. You execute a set of unit, integration, and system tests to verify that your software is functioning as expected and can be safely deployed. Software teams use test data to verify their applications during development. The data should be realistic. This ensures that it is validating real-world use cases under near-production conditions.
Test data is important because it is required by all tests - both manual and automated. A good set lets you validate frequent use cases and edge conditions and helps you reproduce defects.
It is challenging to use data effectively. If you define it outside your test cases, the tests may become unreliable. It can introduce delays and affect test performance. Using a copy of production data is a risky option if it contains sensitive information. Having a good test data strategy is key to successful testing. Here are some principles you need to keep in mind when managing it:
- The test data should allow you to run all automated tests.
- You should be able to acquire test data when needed.
- The test data should not be a limiting factor for running tests.
Keeping these points in mind will enable effective test execution.
Engineers make some common mistakes in managing test data. Do not:
- rely too much on data. Unit tests should not use external data.
- use a full copy of the production data. Use only relevant parts.
- expose sensitive data - mask it.
- use irrelevant or outdated data.
Test Data Generation Tools
A good alternative is to use test generator tools to create test data sets. There exist lots of tools to generate test data that mimics production data. We will list some popular ones here.
GenerateData.com
This is an open-source project that is very user-friendly. Is a GNU-licensed open source web-tool written in PHP, JavaScript, and MySQL.
It allows you to quickly generate large volumes of custom data (up to 5,000 records at a time) in a variety of formats for use in testing software, populating databases, and so on.
DataMasque
DataMasque’s USP is that it safeguards your data while still keeping it usable. It is a masking and obfuscation solution designed for self-service automation with its API-first architecture.
Two important points have to be highlighted here:
- DataMasque replaces sensitive data with realistic and functional masked values that enable effective development, testing, analytics, and training.
- It works with Amazon AWS, so it's quite easy to deploy and manage an instance.
Mockaroo
Mockaroo lets you download large amounts of randomly generated data based on your own specifications in a no-code way, which you can then load directly into your test environment using CSV or SQL formats.
You can download random data programmatically by saving your schemas and using curl to download data in a shell script via a RESTful URL. It supports Base64 image URL types and repeating XML elements. Moreover, you can apply the formula to any data type, custom frequencies for lists, restrict locations to specific countries, and more.
Choosing a Test Data Generator
The best tool is the one that matches the test workload. That is the reason we don't advise a specific tool to you. Each tool has its own unique strengths and limitations. Analyze a few of them before making your selection.
And remember, it is important to not only run your tests but control, share and get insight!