Performance in web applications is clearly very important. The web potentially allows millions of users to access your application simultaneously. How is your application going to cope with such a load? How much hardware do you need to ensure it can handle the required number of users? What happens to your application when its peak capacity is exceeded? These are questions that really need to be answered.
As a business, I want to know that the applications supporting my commercial endeavors can cope with the size and usage patterns of my customer base. I also want to make accurate estimations around the amount of infrastructure required to support my current customer base, and what infrastructure is going to be required to support my future customers, based on a projected growth factor. All this can apply to both intranet and broader Internet applications.
As solution developers, we try to write software that is fast, responsive, and scalable; but until we can measure and quantify these factors, we can really only make guesses based on the technology and techniques used, and the environment that the application must operate in.
Effective performance, load, and stress testing can be used to answer all these questions. It removes the vague assumptions around an application’s performance and provides a level of confidence about what the application can do in a given scenario. But what do we mean by performance testing, load testing, and stress testing? Often, these terms will be used interchangeably, but they actually refer to slightly different aspects of an overall process.