Test Data Generator
Definition - What does Test Data Generator mean?
A test data generator is a specialized software tool that generates false or mock data for use in testing software applications. The generated data may be either random or specifically chosen to create a desired result.
A test data generator is commonly used for testing databases and database management software (DBMS) as these systems generally require large amounts of data to sort and store before any of their limits can be reached.
Techopedia explains Test Data Generator
A test data generator can be used to create either random data or structured and formatted data. Structured data is generally more useful for databases because these systems often save data in tables and columns that contain specific types of information; random data is not suited for this purpose.
Test data generators follow a specific procedure:
- Program control flow graph construction
- Path selection
- Generation of test data
Once the path for the testing has been determined, the test data generator generates data that results in the execution of the selected path, with the aim of creating data meant to traverse the path chosen by the path selector. This is done through mathematical modeling.
There are different kinds of test data generators:
- Random test data generator - This is the simplest kind, which can be used to test many programs as it can just randomly generate a bit stream and have that be represented as the required data type.
- Goal-oriented generator - This one generates input for any path specified instead of just the usual way of generating input from the entry to the exit of the code. This type can find any input for any path and has little chance of generating infeasible paths.
- Pathwise test data generator - This generator is assigned a specific path to follow instead of giving it a choice among many paths. This leads to a greater path knowledge and prediction of coverage. It is similar to the goal-oriented generator.
- Intelligent test data generator - This type depends on sophisticated analysis of the code to be tested in order for it to guide the search for test data. This may generate test data more quickly but the analysis portion requires great insight in order to anticipate the different situations that may arise.