Performance Testing.
It’s simple and effective. Just like an automobile or a medical equipment a software too combination of different components that has to work in unison. So the software has to go through rigorous performance testing, load testing and stress testing before it is installed and goes into final production at the clients end.
So you create an environment that matches the client hardware and other specification and then get the software to run under this condition. You check the behaviour of the system under variable loads, spike up the load every now and then to check its reaction to sudden spikes in load, keep a tab on how the software responds when the load increases to levels beyond its predetermined capacity and finally check how far the software can endure under condition of overloading.
Simply stated, that envelops the four major components of performance testing. The Load, Spike, endurance and stress testing being the components. A software system could have a frontend application and database running in the background on a server somewhere across the world. These frontend applications carry the capability to access the database across the internet. Once these databases receive a request the relevant pack of information is sent back to the requested user. All these across the internet. So when you put the software through performance and load testing you are testing the data transfer rate, throughput and bandwidth.
How is all this done? Well, we use an enterprise performance and load testing tool to rigorously get the software tested before its launch. Tools like Httpperf, LoadView, LoadRunner, are able to identify the bottlenecks and areas of improvements to be worked upon. Think of an email server. It has a predefined capacity to handling capacity. So how does the email server respond when we stress the server beyond its capacity? It should be able to sustain itself and still be able to handle the situation.