You can prevent problems that will require recovery by implementing a comprehensive functional and system test plan.
In general, tests for deployed solutions can be categorized as follows:
Functional tests confirm that the functionality implemented in an application meets the stated business requirements. Functional tests are created by business users and application designers.
System tests are designed to verify performance, high availability and recovery service level agreements.
In a system test, it is important to combine aspects like performance testing and high availability testing to evaluate the recovery of a system in extreme production situations.
For both functional and system testing, automation is strongly recommended. Automated testing provides the organization with an efficient way to prevent regressions bugs from being introduced.