Software testing tricky but vital part of process


POSTED: Sunday, September 13, 2009

As most know, when evaluating or developing software, putting it through its paces under real-world conditions is a critical yet often overlooked step. The key phrase here being “;real-world conditions.”; Many times, testing plans are developed and implemented but do not take into account the size or technical savvy of the intended user community.

We were once called in to help solve a bug that the software developer simply could not track down. This bug only occurred in the user community, and the seasoned testing team struggled to reproduce it, despite fervent efforts.

Finally, one of the junior members of the testing team was able to re-create the bug. After some observation, it was determined that the problem was caused by double-clicking an icon more than once. It turned out that the testers, being more experienced, never double-clicked multiple times. Obviously, some in the user community were also prone to double-click multiple times, in an impatient bid to get the software running.

The lesson: Test your software in ways that actual users will work with it. This is often accomplished by enlisting actual members of the user community to test the software.

Another issue we run into is that of “;load.”; Simply put, load is the number of people who are using a computer system at any one time (concurrent users). Many times during the software testing process, you're looking at a handful of folks running the software. While a group of this size is usually sufficient to uncover most functional bugs, it simply cannot simulate a large number of users on the system.

If the number of concurrent users is relatively small, one way to test load is to simply get that many people to use the software at the same time.

But typically the number of concurrent users is more than any one organization can dedicate to the testing process. Under such circumstances, load-testing software can be employed. Load-testing software simulates concurrent users of a computer system.

A few years ago the only type of load-testing software available was relatively expensive and made by only a handful of companies. Today there are a plethora of low-cost solutions, many of which are open-source. Try www. for a pretty good list of available open-source load-testing tools.

Regardless of the tool of choice, it is always a good idea to use real live humans at the same time. This will give you a good feel for true system response under heavy load.