Things go wrong from time to time, however many tests are conducted. Updates don’t produce the desired result, software refuses to work the way it should, or adverse side-effects make their presence felt. Almost automatically a user will think in situations like this: “Why didn’t they test it?”
But thats precisely the problem. A test is a test, no more and no less. In most cases a test environment will never look exactly like the productive infrastructure. The resource requirements, the hardware deployment or the load on the systems alone will ensure this. In consequence, testing in this kind of infrastructure will never be able to cover all eventualities.
So if we consider all these factors together, testing on a productive system seems to be the best solution. But how is that meant to work?