AMA: performance vs load testing (rubber bands vs watermelon)

Leo Gallucci asks…

What’s the diff or relation between Performance and Load testing?

My response…

My understanding is that performance testing is a whole category of different types of testing activities that measure the performance of a system.

Two of the most common performance testing activities are load testing and stress testing.

Load testing is making sure that a system can handle an expected load: a somewhat arbitrary number of ‘expected’ users. So for an internal-use system for company with 200 staff you may want to test how the system performs when you have 200 users actively using it. Are pages still responsive? How long do pages take to load compared to 100 concurrent users etc.

Stress testing is finding out where the breaking point of your system is by putting it under stress. So if you have the same application and you ramp up the number of concurrent users and it breaks at 301, then you know you can only grow your company by 101 people before you’ll need to r-architect or reimplement your system (or at least buy some new hardware). With systems built to automatically scale using cloud technology this is less of an issue, but it may be useful to know future expected load beyond immediate expected load.

This reminds me of a great video I watched of some people stress testing a watermelon using rubber bands: how many rubber bands does it take to break a watermelon? The result will probably surprise you, as it did me. (That’s the original Korean clip, it’s since been copied many times on YouTube)

So that watermelon can handle a load test of 500 rubber bands, but a stress test reveals a single additional band will destroy it 😆

Author: Alister Scott

Alister is an Excellence Wrangler for Automattic.