Posted on March 11th, 2009 in
Software Testing Trends by Stanton Champion
Like many Americans, I’ve been watching housing prices very intently. While looking at data on the website for the Massachusetts Association of Realtors, I came across a very common and ordinary web bug: a broken link.

(Click the thumbnail for a full sized version.)
Now broken links are incredibly common, and anyone with a website has had one happen to them at some point. But I want to dig a little deeper. Take a look at that screen shot and think about how many bugs do you see?
By my count, I see three very real bugs:
- There’s the broken link. Looking at this error, I think this is a convoluted way of saying that the file I wanted wasn’t found. Whoever uploaded the file didn’t set a folder correctly.
- The Folder is not set exception didn’t get handled. Ideally, some kind of exception handler should have caught this exception and provided the user with a more coherent error message.
- The user was shown an incoherent error message. An end user should never see this kind of error message in the first place. It reveals information about the underlying system configuration that could be dangerous. At the same time the user doesn’t receive any kind of friendly help about why the error occurred or how to resolve it.
Each of these is a very real bug, but each one is also more difficult to fix than the previous. For example, fixing a broken link may be as simple as changing a file location in the content management system. The person responsible for posting the content could take care of that.
Correcting the next bug requires help from the developers to write a proper exception handler to catch this exception. While fixing a broken link is something that could be handled in the field, writing a new exception handler usually has to be done during the development process. This, of course, requires a solid QA process to be in place during development.
For most projects, the last bug is the most challenging to fix. It usually requires careful planning from the earliest stages by product management, development, and QA to agree that reducing the complexity of bugs is both important and feasible. Software testers will have to be involved early in the process so that they can understand how to discover and interpret bugs that are designed to be customer friendly or even invisible.
Even simple bugs, like broken links, can lead to deeper questions for testing and development teams. Not every bug has to be fixed, but make sure to keep your customers and users in mind when planning your project. Good planning could turn a boring broken link into something that’s both apologetic and helpful.