<p>I'm aware of some of the test data generators out there, but most seem to just fill name and address style databases [feel free to correct me].</p>

<p>We have a large integrated and normalised application - e.g. invoices have part numbers linked to stocking tables, customer numbers linked to customer tables, change logs linked to audit information, etc which are obviously difficult to fill randomly. Currently we obfuscate real life data to get test data (but not very well).</p>

<p>What tools\methods do you use to create large volumes of data to test with?</p>

[{'answer_id': 16336, 'author': 'Pascal Paradis', 'author_id': 1291, 'author_profile': 'https://Stackoverflow.com/users/1291', 'pm_score': 3, 'selected': False, 'text': '<p>Where I work we use <a href="http://www.red-gate.com/products/SQL_Data_Generator/index.htm" rel="nofollow noreferrer">RedGate Data Generator</a> to generate test data.</p>\n\n<p>Since we work in the banking domain. When we have to work with nominative data (Credit card numbers, personnal ID, phone numbers) we developed an application that can <em>mask</em> these database fields so we can work with them as real data.</p>\n\n<p>I can say with Redgate you can get close to what your real data can look like on a production server since you can customize every field of every table in your BD.</p>\n'}, {'answer_id': 16353, 'author': 'Eugene Katz', 'author_id': 1533, 'author_profile': 'https://Stackoverflow.com/users/1533', 'pm_score': 0, 'selected': False, 'text': '<p>Joel also mentioned RedGate in <a href="https://blog.stackoverflow.com/2008/06/podcast-11/">podcast #11</a></p>\n'}, {'answer_id': 16560, 'author': 'Webjedi', 'author_id': 1975, 'author_profile': 'https://Stackoverflow.com/users/1975', 'pm_score': 1, 'selected': False, 'text': "<p>The Red Gate product is good...but not perfect.</p>\n\n<p>I found that I did better when I wrote my own tools to generate the data.  I use it when I want to generate say Customers...but it's not great if you wanted to simulate randomness that customers might engage in like creating orders...some with one item some with multiple items.</p>\n\n<p>Homegrown tools will provide the most 'realistic' data I think.</p>\n"}, {'answer_id': 16760, 'author': 'vzczc', 'author_id': 224, 'author_profile': 'https://Stackoverflow.com/users/224', 'pm_score': 2, 'selected': False, 'text': '<p>You can generate data plans with VSTS Database Edition (with the latest 2008 Power tools).  </p>\n\n<p>It includes a Data Generation Wizard which allows automated data generation by pointing to an existing database so you get something that is realistic but contains entirely different data</p>\n'}, {'answer_id': 157877, 'author': 'Patrick Cuff', 'author_id': 7903, 'author_profile': 'https://Stackoverflow.com/users/7903', 'pm_score': 2, 'selected': False, 'text': '<p>I just completed a project creating 3,500,000+ health insurance claim lines. Due to HIPPA and PHI restrictions, using even scrubbed real data is a PITA. I used a tool called Datatect for this (<a href="http://www.datatect.com/" rel="nofollow noreferrer">http://www.datatect.com/</a>).</p>\n\n<p>Some of the things I like about this tool:</p>\n\n<ol>\n<li>Uses ODBC so you can generate data into any ODBC data source. I\'ve used this for Oracle, SQL and MS Access databases, flat files, and Excel spreadsheets. </li>\n<li>Extensible via VBScript. You can write hooks at various parts of the data generation workflow to extend the abilities of the tool. I used this feature to "sync up" dependent columns in the database, and to control the frequency distribution of values to align with real world observed frequencies.</li>\n<li>Referentially aware. When populating foreign key columns, pulls valid keys from parent table. </li>\n</ol>\n'}, {'answer_id': 235992, 'author': 'Goran', 'author_id': 23164, 'author_profile': 'https://Stackoverflow.com/users/23164', 'pm_score': 2, 'selected': False, 'text': '<p>I\'ve rolled my own data generator that generates random data conforming to regular expressions. The basic idea is to use validation rules twice. First you use them to generate valid random data and then you use them to validate new input in production.\nI\'ve stated a rewrite of the utility as it seems like a nice learning project. It\'s available at <a href="http://code.google.com/p/rxrdg/" rel="nofollow noreferrer">googlecode</a>.</p>\n'}]
['https://Stackoverflow.com/questions/16317', 'https://Stackoverflow.com', 'https://Stackoverflow.com/users/1223/']