Test data generation is the process of creating a set of data for testing a software application. It is quite a complex problem and many solutions have come forth, most of them are limited to toy programs. We could use the actual data that has been taken from similar old programs or it could be artificial data created for the sole purpose of testing every path in the program.
Why do you need to generate test data?
- No existing data available
- Test unusual cases
- Data without privacy concerns
- Test without modifying real company data
- Stress test with large amount of data before deploying applications
- Start tests from a known state, and be able to revert to this state
- No need to enter all data manually
By using genetic algorithms, we can generate the data for software that use dynamic memory allocation. In order to save your time in testing phase, we have collected a few test data generation tools, which are aimed at providing a better test coverage and helps you deal efficiently with edge cases.
The site also has an online demo where you can tinker around to get a sense of what the script does, what features it offers and how it works. Once you have whet your appetite, there is a free, fully functional GNU-licensed version available for download.
14. Yan Data Ellan
Yan Data Ellan creates test data in various domains within a wide range of formats. Here you can generate up to 10,000 rows of real and valid data in different formats such as Excel, JSON, HTML, XML, SQL and CSV. The website provides these services for free.
13. Spawner Data Generator
Spawner is a simple tool that generates sample data for databases. It be easily configured to output delimited text or SQL insert statements. You can insert directly into MySQL 5.x database. It has several field types, most of which are configurable. The software is distributed under GNU General Public License version 2.0 (GPLv2).
12. IBM DB2 Test Database Generator
DB2 test database generator is an add-on for DB2, which allows developers to quickly create test data either from scratch or from existing one. It supports referential integrity and batch creation of test data. Test data can be created in different formats, including CSV, SQL and XML.
The program supports several different types of rules that can be used when creating test data. For example, “static rule” defines the constant values for all columns, “mask rule” modifies values by replacing positions within a value with a pattern value or a static value. All rules have one of the following action – preface, replace or append.
11. GS Data Generator
GS Data Generator is an automated testing and data generation tool that lets you produce test data for software quality assurance testing, usability testing, database load testing and performance testing. It is designed to create random test data and business intelligence test data for system integration testing, CRM, software marketing, ERP and data warehouse development.
The data generated are based on types and referential integrity constraints. The tool protects anonymity of crucial data elements, allowing risk-free access to production data to offshore development team. Moreover, it supports projects of any level of complexity, generating random data that is indistinguishable from production data.
10. EMS Data Generator
EMS Data generator helps you simulate the database production environment and allows you to populate different database tables with test data simultaneously, define tables and fields, for creating data, set value ranges, generate char fields by mask, define lists of values manually or select them from SQL queries, and set generation parameters for each field type.
The tool comes in separate editions for each of the most widely used DBMS servers such as SQL server, Oracle, MySQL, InterBase, DB2 and PostgreSQL. All of them support automatic control over referential integrity for linked tables and a variety of options for customizing the data generation process.
9. Upscene Advanced Data Generator
Upscene advanced data generator allows you to produce sensible data that looks real, thanks to the included data libraries and documentation on how to create specific types of data. It is capable of generating complex data over multiple tables related to each other.
The tool supports a wide range of data types, including large text, binary, integers, real numbers, date and time, boolean and GUIDs. Each of these types has different data setting like “random value” or “random file from folder”. You can create templates for most of these types in order to reuse over different projects.
8. Datanamic Data Generator MultiDB
Datanamic Data Generator MultiDB lets you easily populate databases with thousands of rows of syntactically correct data for database testing purposes. It reads your database and shows tables and columns with their data generation settings. Only a few simple entries are required to create comprehensive test data. You can use it to produce test data either from scratch or from existing data.
The tool is packed with a large collection of inbuilt generator that are country or language specific. It provides direct access to Microsoft SQL server, Azure, MS Access, Oracle and MySQL.
7. ApexSQL Generate
ApexSQL Generate can emulate real world test data and export it in several different formats. It lets you create SQL test data for specified tables, generating millions of rows quickly. You are free to customize test data plan with detailed options and select from multiple generators. There are over 150 predefined generators for realistic data, such as name, credit card number, address, password, social security number, and more.
The tool supports full range of SQL data types, command line interface, and foreign key in order to retain data consistency. The GUI notifies errors, warnings and displays messages in a tree view. It also has a preview panel for wrong generator settings, constraint violations, circular dependencies and more.
Most frameworks (like Ruby on Rails) have great data mocking libraries, but not everyone is a programmer or has time to learn frameworks. Mockaroo lets you download large amounts of randomly generated test data based on your own specifications which you can then load directly into your test environment using CSV or SQL formats. No programming required.
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 type and repeating XML elements. Moreover, you can apply formula to any data type, custom frequencies for lists, restrict locations to specific countries, and more.
5. dbForge Test Data Generator
The dbForge Data Generator for SQL server is an impressive GUI tool for a fast generation of meaningful test data. It is packed with over 200 built-in generators with a sensible configuration that allows to emulate column-intelligent real world test data. All you need to do is select tables to generate data for, choose a generator and adjust generation properties, and click the populate button to get the results.
The program supports foreign keys for generation of consistent data across multiple tables, and check constraint for generation of consistent data across a single column or multiple columns of a table. It also allows disabling triggers and constraints to avoid interference with database logic.
4. GEDIS Studio
GEDIS Studio is a free test data generator available online to create data sets without having to install any application on your machine. It offers unique features to produce realistic datasets by combining 30 generation rules. You can control distribution and correlation of values between columns of a same record.
Once registered, they will provide you a private workspace along with the sample projects and reference data you can import into your workspace to learn how to design your own generators. It has been successfully used to create large data sets exposing advanced profiles of behavior of data. Overall, this is a perfect tool for realistic testing and big data simulation.
3. Visual Studio (Premium) Data Generator
You can use Microsoft Visual Studio Premium to produce test data that are appropriate for the schema of the database but unrelated to the production data. All you need to do is define a data generation plan that specifies the details of how you want data to be generated for specific tables and columns. For each column, you have to specify a data generator which creates data of a particular type.
The Visual Studio Premium comes with many built-in data generators for creating different kinds of data. For example, the integer generator provides random integer values and string generator provides random strings.
You can also create custom generators if the built-in data generators don’t provide what you really want. For instance, you might want to create a custom generator if the database contains a column that has a check constraint that references another column.
2. Redgate SQL Data Generator
SQL data generator by Redgate is a simple tool for creating large volumes of realistic data within in a couple of clicks. It quickly provides generators based on table and column names, data types, field length and other existing constraints. It offers greater flexibility and manual control for creating foreign key data.
The seeded random data generation allows you to create the same collection of data every time. You can import data from existing sources, and optionally disable triggers and constraints to avoid interfering with database logic. Moreover, the tool support inter-column dependency, command line data generation, and automatic data conversion when the sources have different data types.
1. DTM Data Generator
DTM Data Generator produces data rows and schema objects for testing. It is developed to provide high quality and realistic test arrays. The tool automatically creates data values and optional schema objects such as views, procedures, tables and triggers.
The tool supports all popular database systems, including IBM DB2, MySQL, Firebird, Oracle and Microsoft SQL server. It has 15 methods to fill in the fields with random and repeatable data making models.
The data generation engine has 70 built-in functions and expression processor that lets you define complex test data with dependencies, relationships and internal structure. Moreover, the intelligent schema analyzer makes data realistic without any extra project modification and “data by example” feature makes data more realistic without extra efforts.