Recently someone posted this question on the Test Driven Development mailing list:
What do you do about setting up test data for at system you don't own?
Here was my response:
For repeatability, I try to create tests that can create their own test data from scratch to depend on. This can be a lot of work and yield some large fixture classes. Upsides of this work: you may learn some interesting details of the system and the fixture classes themselves could grow up to become production classes. Downsides: you'll probably make some assumptions/shortcuts in your fixtures that restrict the coverage your tests.
To compensate for that last downside, it's good to also have some rigs (manually executed perhaps) that can load up lots and lots of real data (or copies of real data from production) and run that data through your production code to help flush out gaps in coverage in your automated test suite.
tags: ComputersAndTechnology