Designing Logical Load Tests

[article]

connection routing cannot be tested with connections that are being established and terminated quickly, so we need to identify the persistence assumption.

Perhaps a more relevant example will be to outline the assumptions to validate the test goal, "To explore what happens when 10,000 people try to navigate our Web site's most popular path simultaneously." What are the assumptions?

  1. The most popular path of the Web site is: log on, navigate to Content…
  2. One "person" represents a single connection to a Web server, followed by actions that will navigate the user according to assumption 1.

Once you have your assumptions in place, you now have logically made the transition from a load goal to being able to actually test. You have identified the control and test parameters, and you have assumptions by which you will make calculations of actual values. This is where you fill in numbers and values for all parameters, both control and test, that you identified previously. You can then execute!

Make sure that as you prepare and run the load test, you jot down every step you took. You will want to be able to repeat your findings if necessary, especially if things go wrong. It may be that as the load test starts, the environment or test setup will require a tweak to get it going-make note of that. It may be that you realized halfway through that someone else was doing bandwidth-intensive work on the network-make note of that as well. Keep track of all your control parameters and alter your test parameter according to plan.

Document everything-starting with the initial steps of identifying your load test goal and defining assumptions, straight on through to your calculations and execution notes. All of it should be written down and documented somehow, whether in Notepad or a template in Microsoft Word. Not only will it make reproducing the test much easier, but when it comes to sharing results of the test, you will have at your fingertips all the information required to put together a good report.

Finally, make sure that you have defined a quantitatively clear stopping point for your load test, and that you run it to completion. A load test goal like "establish 10,000 connections to the load balancer and make sure they route properly to Web servers" is a goal with a clear definition of the stopping point: establishing 10,000 connections. On the other hand, a load test goal like "generate 50 percent load on the system" is unclear and has no definite stopping point.

Load and stress tests that are constructed in a logical manner, with up-front planning and strategy before execution, will yield meaningful results that you will be able to quantitatively convey.

Tags: 

About the author

Andrew Lance's picture Andrew Lance

Andrew Lance (andrew@centerspan.com) is a senior quality assurance engineer, technical lead for CenterSpan Communications, a company developing cutting-edge content delivery solutions based in Hillsboro, Oregon. Andrew has worked with test automation technologies for more than five years and has participated in every major phase of automated testing, from design and implementation to maintenance and support.

AgileConnection is one of the growing communities of the TechWell network.

Featuring fresh, insightful stories, TechWell.com is the place to go for what is happening in software development and delivery.  Join the conversation now!

Upcoming Events

Sep 24
Oct 12
Oct 15
Nov 09