TurboData - Test Data Generator

What is Test Data?

Test Data is used for testing computer systems. It is not real data, production data or live data. It's purpose is to test or demonstrate how a system would work, then it can all be deleted. It is used on all platforms, such as relational databases, text files, binary files, etc. Test data often looks like meaningless garbage made up of random characters and numbers, but can also be made to look very realistic to simulate a live system as closely as possible. Indeed, test data is often an extract of production information, so screens and reports looks exactly how the final system will appear.

Why Generate Test Data?

Test Data is crucial to the success of any systems development project. If you don't test a system, you won't know if it works. The earlier bugs are found in a development life cycle, the cheaper they are to fix. If an error is propagated into a live system the cost could be in the millions! The two main reasons for automatic generation is to save time and money. Time can be saved by each developer on the project and each system tester on the project. Set up time for user demonstrations and proof of concept meetings can also be dramatically reduced. Money is saved due to the time saved by staff. If they are not hand crafting data, or creating it by other laborious methods, then they could be working much more efficiently and effectively on other activities that are crucial to the success of the project, or the business. Generated data can be used and reused by times, across multiple platforms by many developers and system testers.

How to Generate Test Data.

It's easy. Use TurboData to read in your database schema. An Insert SQL scenario will be automatically created that is ready to load directly onto your target platform at the click of a button. All foreign keys are resolved to keep your referential integrity intact. Use this, or create your own scenarios to assign real values to columns, such as name, city, country etc. Use the foreign key GUI to set up complicated parent/child/grandchild relationships. For example, generate 100 Customers, each with 10 Orders, each Order having 5 Order Lines, all for a specific Product!

Typically unit testing will implement a quick and dirty approach and just use default values, such as name1, name2, name3 and so on. System testing and user demonstrations will require a small amount of set up time to use real values, such as a random first name, a random last name, a realistic but made up Social Insurance Number etc. When users see a system demonstration with realistic data they can focus on the real issues of the business system, and not be confused or mislead by jumbled up meaningless numbers and characters on screens and reports.

TurboData consists of various other components, including a delete SQL statement generator, select SQL statement generator, update SQL statement generator, create table DDL generator, drop table DDL generator, batch runs of scenarios, grid view and editor and an SQL Builder.

How does this differ from other methods?

There are various other different methods;

These methods are all time consuming, difficult to maintain and very error prone. Mistakes are commonly made with the referential integrity. Errors often manifest themselves as program bugs, resulting in lost time by developers looking for bugs in the program code, when the errors are actually in the test data.

Further Reading

The Tao of Testing by Martin Burns
Software testing using an automatic generator of test data by Colin Burgess

 

TurboData - Home Page