Load Testing answers the question “At what point does my application become too slow to be usable?”
Performance Testing answers the question “Where are the bottlenecks in my software application?”
We make this distinction because most Load Testing problems can be easily solved by simply adding more computing resources – bandwidth, CPU, etc. This is largely based on the fact that most software today is cloud-based and provisioning more computing resources is a simple “flick of the switch”.
Load and performance testing are niche areas in software QA. They require many years of training and expertise to do right and do well. Because of the scarcity of talent to implement successful load and performance testing project, software QA outsourcing is a very good approach to solve this scarcity of talent and insure project success.
Most Performance Testing problems tend to be much more thorny, detailed and hard to clearly distinguish. They are also generally harder to solve once discovered. But, there are still many, many non-cloud-based software applications (remember Enterprise Software?) still in production and daily use today.
Performance problems in Enterprise-class software tend to be more complex, require detailed engineering analysis and can seldom be solved by just adding additional computing resources. In fact, a lot of performance testing issues occur and can be solved with a slight change of the configuration of one of the system components – think adjusting the count or size of a database connection pool.
Building automated performance tests looks very much like building automated load tests but the outputs from those tests are designed to answer very different questions.
We’ve learned to spend a little more time asking questions about the specific questions, answers and business case for automated load and performance testing so that solve the right problem and answer the right question the first time.