The BrowserMob Blog | All about browsers, performance testing, and load testing

Dec/08

11

Performance vs. load vs. stress testing

A common question we get here at BrowserMob and elsewhere in the open source and QA communities we’re involved in is: “what’s the difference between stress testing, load testing, and performance testing?”

The three types of tests are often used interchangeably, though they do actually have somewhat different meanings. Fortunately, a friend of ours, Grig Gheorghiu, wrote about this very topic a few years ago in two blog posts:

Both of his posts are extremely good reads and should do a great job of clarifying the differences between the three. In summary, Grig argues (and we tend to agree with Grig) that:

  • Performance testing is a process that focuses on testing individual components of the web app, such as databases, algorithms, network infrastructure, and cache layers.
  • Load testing is a process of determining how an application under specific volumes of load, usually a range of the upper and lower limits expected by the business.
  • Stress testing is a process of identifying when and how systems fail (and recover) under extreme levels of load.

BrowserMob can help with all three types of tests, though it’s best used for load testing and stress testing. Because it uses real browsers, BrowserMob is uniquely suited to assist with these two types of tests, since it is able to simulate the type of load that you would see from your real users.

In the case of performance testing, BrowserMob can assist, especially if you run low-level amounts of load (ie: 5-10 concurrent users) while also collecting performance metrics at various levels of your application. But there are other tools that can help too. Grig’s article provides a list of many tools he finds useful, but we’d also like to add one to his list: Firebug.

We’ll post a full blog entry on Firebug soon, but for know now that it is a “Swiss Army Knife” for web developers. It helps with CSS, HTML, and JavaScript development. But in addition to that, it also provides a simple ability to see the network timings of every object downloaded in a web page. When used in conjuction with clearing your cache (or clicking shift-reload), it can serve as a great way to see the HTTP performance of your application when there is no load on the system.

UPDATE: For another good list of definitions, check out Corey Goldberg’s Glossery of Terms for his Python-oriented testing tools.

[Post to Twitter] Tweet This Post 

No tags

No comments yet.

Leave a Reply

<< Open Source: You don’t have to hide from it

FAQ: How do you compare to Selenium? >>

Theme Design by devolux.nh2.me

Tweet This Post links powered by Tweet This v1.3.9, a WordPress plugin for Twitter.