Speed...The Missing Link in Usability Testing


Speed...The Missing Link in Usability Testing
The importance of load and stress testing as part of the Usability Process

By Susan Dorfman & Donald Doane

Businesses everywhere are launching internal and customer-focused applications on the World Wide Web, using them as channels to reach scores of employees and customers in a matter of seconds. Prior to launching such applications, many organizations hold a series of usability tests. Everything is tested: from the initial front-end interface, navigational structure, the information architecture, and overall ease of use. Often, though, companies forget to test the one thing that will assure them that their site or application is easy to use: speed.

To assure the "immediacy" of the Internet, web sites and web-based applications must demonstrate proven speed (performance), quality, and scalability. To do this, companies must test and measure how fast web-system components work together, to determine what kind of workload their web servers can withstand; how many simultaneous hits the web site can handle; how scalable their applications and hardware are; and how this affects quality and performance.

Getting accurate information about web-based application performance (to understand and manage the limits of any application within its given environment) is critical to the success of usability studies, development, deployment, management and growth of strategic business applications; and to the companies that deploy them. Sites that do not function efficiently under heavy loads are not usable to customers.

What is Load Testing?

A load test emulates user activity and analyzes the effect of the real-world user environment on an application. Load testing a web application throughout development lets companies identify problematic parts of the application before it is accessed by hundreds or thousands of users.

Simulating hundreds or thousands of users, load testing creates scripts that represent actual users and their daily, often disparate, operations. With a recorder (capture agent), load testing records user activities - including keystrokes, mouse movements, and HTTP requests - to create emulation scripts. Then, it plays back a mix of scripts representing a set of real users.

Load testing also charts the time a visitor to the site has to wait for browser responses. It finds hidden bugs and bottlenecks and gives developers the chance to correct them before the site goes into production. All hardware, software, and database vendors boast of the speed of their products, but load testing discloses how fast those products work within a unique environment, for primary transactions, during peak business hours.

Furthermore, load testing checks and maintains applications as workloads increase, so systems can be adjusted accordingly. As businesses grow and change, it is important to confirm a web site's ability to sustain growth. Developers can reuse scripts to alter usage levels, transaction mixes and rates, and application complexity. Load testing is the only way to verify the scalability of components working together.

In almost all cases, load testing uncovers fatal errors that likely would have lead to a system crash had deployment proceeded without testing.

Benefits of load testing

Increases uptime and availability of mission-critical Internet systems. Load testing increases your uptime of mission-critical systems by identifying bottlenecks in the systems under large user-stress scenarios before they happen in a production environment that affects real customers.

Avoids project failures by predicting site behavior under large user loads. It is a shame when much effort is put into building a web project only to realize that it won't scale after it has been deployed. IT projects are expensive. Protect IT investments by predicting scalability and performance in advance using load testing.

Measures and monitors the performance of your e-business infrastructure. Watch your system handle (or not) the load of thousands of concurrent users hitting your site before you deploy and launch it for all the world to visit.

What kind of problems could show up?

Most problems have to do with the bottlenecks that arise when different users depend on a common resource. For example, if your site depends on a single, common database, then data access could become an issue if your database queries aren't efficient. Incorrect use of multithreading in web server software is another common problem. Excessive disk access or memory leaks also cause problems.

By identifying these problems early, you can rewrite software, reconfigure hardware, or employ caching strategies to get order-of-magnitude performance increases.

Susan Dorfman
OpenDemand Systems, Inc.

Donald Doane
OpenDemand Systems, Inc.