Load Testing in the Cloud

Stress Testing: T-Rex the Guy in the Outhouse

I'm reading the classic book The Art of Software Testing by Glenford Myers. While it may be old (copyright 1979), it is still full of golden nuggets. Myers uses real examples from the ancient days of software development to demonstrate the practical side of testing.

One of my favorites is his definition of stress testing.

"Stress testing is the process of evaluating failure points in a web application by introducing adverse conditions into the runtime environment."

Normally I think of stress testing as overloading a web application with large volumes of users. Many people stress out their website that way. This form of testing isn't limited to web, it could be an iPhone app or a Windows spreadsheet or even a laser printer, because there are other forms of stress and other types of system that aren't web.

My definition:

Stress testing is doing anything you can to cause the system to fail.

A tester may remove a web server from the load balancing pool to see if the system degrades gracefully. Other resources such as disk drives, database servers, or network bandwidth may be restricted in stress testing because the engineer needs to know if the consequences will be painful for end users.

Wikipedia defines it thus:

"In software testing, stress test refers to tests that put a greater emphasis on robustness, availability, and error handling under a heavy load, rather than on what would be considered correct behavior under normal circumstances. In particular, the goals of such tests may be to ensure the software doesn't crash in conditions of insufficient computational resources (such as memory or disk space), unusually high concurrency, or denial of service attacks."

It is true that in a general sense stress testing is experimenting with conditions to break a system or device. For my purposes, I will stick to websites and applications. LoadStorm's style of stress testing tries to break the application by increasing the number of virtual users over a period of time until the application fails.

I've received emails or read about many terms for this failure:

  • Meltdown
  • Knocked the system over
  • Sucked the blood out of the database
  • Sank the tank
  • Tossed the ring in the fire
  • Put the baby to bed
  • Disconnected HAL
  • Michael is now the Don Corleone
  • Killed it
  • Hammered the server to the ground
  • Brought the Klingons up in here
  • Blew it up
  • Smackdown
  • T-Rexed the guy in the outhouse*
  • Pitched a Vader fit
  • Gave it a lethal injection
  • Overrun with traffic
  • Put it in stasis
  • Brought it to its knees
  • Unplugged it from the Matrix
  • Bit the poison apple
  • Overloaded its capabilities
  • Drained the system's life
  • Uncovered the Kryptonite
  • Congested with requests
  • Server got pregnant
  • Ran out of gas
  • Fried the circuits
  • Tricked the Joker
  • Inundated with volume
  • Made it an offer it couldn't refuse
  • Flooded out the site
  • Sent ET home
  • Crashed the server
  • Needed life support
  • Cratered the app
  • Rode the dead horse
  • The Blade Runner arrived
  • Danced on its grave
  • Squashed the cahunas
  • Took the black train
  • Brought the agents to the party
  • Pulled a Freddy Krueger
  • Gave up the ghost
  • Shutdown brother Lore

I bet you can add to this list. Just put them in the comments.

By stress testing your website or web application, you can determine what your users/buyers will experience in times of extreme load. Also, you can find the points of failure in order to tune your application. Perhaps you realize that your web app becomes database bound after about 500 concurrent users. This knowledge allows you to make some appropriate adjustments to your infrastructure or architecture. You then run another stress test and find that your web app doesn't fail again until you reach 5,000 users.

Myers states in his book that 50% of the time and cost related to a typical software development project are expended in testing. Maybe this basic dynamic of development is different now. After all, we have web applications running on ubiquitous Linux boxes rather than COBOL programs running on VMS 370. Furthermore, we have Agile development methodologies instead of the antiquated waterfall approach. Regardless, I bet he never T-Rexed the guy in the outhouse*!

*pop culture reference to Jurassic Park

Improve Performance

Looking for a simple way to speed up your site? We found a cool performance solution that can deliver HUGE improvement without rewriting your web application. aiCache web application acceleration is a new partner with LoadStorm because they can help our clients where we cannot. It's a great alternative to buying biggers servers, implementing load balancers, or re-architecting your app.

Placing aiCache in front of your web servers increases the number of requests per second and concurrent users you can sustain by orders of magnitude - delivers in excess of 250,000 HTTP requests per second while managing hundreds of thousands of connected clients.

Woot.com uses LoadStorm for performance testing and aiCache to handle the crush of traffic. They have saved a bunch of money and eliminated time spent optimizing.

more information

New Pricing Model

Storm on Demand Users Cost
250 $9.97
500 $19.95
1,000 $39.90
5,000 $199.50
10,000 $399.00
25,000 $997.50
50,000 $1,995.00

To See All Plans & Pricing Details

Web Developers Like Us!

“I deeply resent every second of my life I waste by thinking about load testing. All I ask is that our site be tested with a lot of traffic and without a bunch of BS for me to deal with. Thanks to LoadStorm, I need never again lose another moment to this insufferably tedious aspect of my job. I can feel the rage melting away.” - Shawn Miller, Web Developer, Woot.com

"I am definitely a fan of LoadStorm. I like its ease-of-use and the way in which the solution scales." - Darin Creason, Sr. Software Engineer, TransCore Corp

"LoadStorm is a great product at a great price with fantastic support. Setup time is minimal and the learning curve is low which was essential for us. I couldn't be happier with LoadStorm! Thanks again for your excellent support and product. - Nate Woolls, Director of Software Technology, InstallerNet, Inc.

"You guys are the best. Great customer service." - Melinda Keedy, Windstream Communications