What Wikipedia can’t tell you about Performance Testing in Production
Certainly, a realistic production test setting is not for free. Due to the high costs involved some companies skip real user load scenarios entirely while others simulate such load tests on production stage. In this post, I will share now advantages and also flipsides related to performance testing in production.
Why companies should consider performance testing in production
First of all, they can save money by using production infrastructure for load testing. Especially if applications consist of many components, a realistic testing environment could be a massive investment which won’t be required.
Secondly, they can verify the reliability of their new production stage under realistic conditions. A performance test in this brand new environment also gives them more confidence regarding correct sizing, configuration, and production readiness.
Finally, real production tests require actual production data. A small data set can lead to incorrect load testing results. Therefore, performance tests in production with realistic data will lead to meaningful test results.
Why companies should avoid performance testing in production
Early detection of performance issues is essential. Bottlenecks such as chatty behavior require an application redesign which is time-consuming. If they were too late identified the bugfix would be both, expensive and time intensive.
Another reason against performance test on production is that cleanup of experimental data at production can become a real challenge. Mass load tests will require thousands input data sets which must be removed after the trial run completed.
The simulation of realistic load on production can also have an impact on other business applications and in worst case also on your customers. Users are very sensitive when it comes to response time degradations, and they often never forget slow running applications. In worst cases, the system under test crashes during your performance test.
On the one hand risks related to performance tests in productions are quite high, but on the contrary, there are also good reasons why companies should consider this test setting. In my opinion, early detection of bottlenecks or design failures is essential which is contrary to performance testing on production.
Did you find some great strategies for your non-functional testing environment? What are the exciting ideas dealing with performance test stages – and how are you implementing them?