It’s simple. 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 (with tools like LoadView), 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. Some tools allow you to test a variety of parameters like Load-View, but other free tools like Apache’s JMeter do not.
How is all this done? Well, to start with, you can read more about it on loadtesting.co, but after that, we use an enterprise performance and load testing tool to rigorously get the software tested before its launch. These tools will be 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. The importance of performance and stress testing is the most important aspect of system development cycle