You are expected to test a software application, but there is no data in the system? Not my idea of fun. To be frank, developers probably entered a few records. With all the names being something like 'aaaa' and all the numbers '1234'.
This doesn't help.
No human being can be expected to find all bugs in a report with rows and rows of such garbage data. So you start entering the data yourself. Which isn't easy at all. If data is to make sense, all business and data relationships have to match. So after a short while you focus only on that internal data logic. Hours and days of tedious and error prone work pass. You are so focused not to make too many errors while keying in data by hand, that you are exhausted. But you won/'t quit. You need that data. Nevertheless, you find yourself repeating five same names and addresses over and over again.
It won't do either.
You need real data. It would make sense if you requested this from your project manager. That your database get populated with a copy of live database. Of course, you can't demand the whole database. A small part of the database will have to do. And tests must cover every aspect of the system. So you would have to carefully examine the data for relevance. And define precise rules for selecting the parts to be copied. And after it'c copied you will have to test the test database itself. Again you visualize days of tedious work. For both you and the database admin.
And it's only if the production data exists.
If your system is brand new, there is no production data available. And if it replaces a legacy system, existing data would have to pass through number of data transformations and in a way 'forced' from old to new database. Or production database simply contains highly sensitive data. You wouldn't accept to be responsible for thousands of credit card numbers, I suppose. Or protecting privacy informations is an issue. What is more, compliance to current data protection regulations is to be taken into account. And even if you found a way, surely you won't be able to take production data home. Which means long evenings in the office, for days or even weeks.
No luck with copying production data either.
You could generate the fake data yourself, somehow. You could write scripts to generate quantity of sample data. But it's very time consuming. It would take days of your time. You would need to make sure all the formats were correct. And all foreign key relationships resolved. That all foreign keys had actual values in primary tables, and exact order of script execution is defined.
Not to mention that data should look realistic.
You would need to find list of names, surnames, streets, cities, company names. Phone numbers, for example, should be properly formatted to look like real phone numbers. And it's only the beginning. You realize how much of your effort it would take. You simply don't have that kind of time.
Or you simply don't have programming knowledge.
So if copying live data is a bad idea and generating data yourself means countless hours of tedious work, what remains? Use a specialized test data generator tool.
So if copying production data is a bad idea and generating data yourself means countless hours of tedious work, what remains?
Use a specialized test data generator tool.