Introduction
I am often asked about database development best practices. The foundation of best practices is simple: Create a copy of the production environment to be used for quality testing.
Business Case
"It doubles the infrastructure costs!" Really? How much will it cost if you deploy an untested change and it takes you offline for a day? How much does it cost if you corrupt your user's data? or your data warehouse's data? A good QA / Test environment is a combination of risk mitigation and insurance against these business disasters. You have insurance, don't you? Or do you not need insurance because you've "never used it"?
If you have a big ol' honkin' Production environment, it may not be worth duplicating the Production infrastructure. But you need to get as close as feasible to duplicating Production in some other environment. Will you need it for every change? Heck no. You will probably only need it for one change in one hundred. But that 1% will be worth all the time and effort "wasted" on the other 99%. I promise.
Conclusion
I believe there are two categories for database infrastructures: Those who have a test environment and those who will.
:{>