Testing against an exact copy of a live site is essential to successful Drupal deployments. This, unfortunately, can be both time consuming and mind-numbingly tedious. If, for example, something goes wrong with an update script that changes the database schema you need to fix the issue, rebuild the database, and test again. A potentially laborious task.
The process involves some variation of the following: