Testing tools are like screwdrivers

It occurred to me while I was at AWTA over the weekend that testing tools are like screwdrivers. There are different types for different problems (Philips and Standard or Performance Testing and Functional Testing), they come in all sorts of different sizes, and they all cost different amounts.

If you think of your average enterprise level automation tool, it’s similar to a mutlihead screwdriver. These tools offer everything under the sun (performance testing, functional testing, test management, defect tracking, data-driven technology, etc…) all you have to do is purchase the tool and start recording! They have a screwdriver bit for every type of testing you might want and several of the bits come in different sizes.

If you look at an open source tool, it’s more like a plain old screwdriver . It only has one head – so it only performs one specific task (like functional testing); and it only comes in one size (so it may only work with a specific technology like Java, .NET, or Internet Explorer). These limitations are often offset by the lower cost (notice I did not say free, someone still has to learn how to use the tool).

Now think about some of the problems you can encounter when using screwdrivers. The most common problem I encounter it that I don’t have the right size screwdriver the job at hand. Sometimes if I use a screwdriver, it’s to small and I can’t exert the force necessary to loosen the screw (common problem with open source tools). Other times it may be too big and I might strip the head of the screw (common problem with enterprise tools). If I own a multiheaded screwdriver, I might lose some of the bits (many companies don’t take the time to learn about all the things their tools can really do for them and thus invest in shelfware).

With this analogy in mind, think about the types of testing you do with your automation tools. Do you need a multiheaded screwdriver or just one right-sized screwdriver? I have been in situations where I’ve needed both. My last project needed a multiheaded screwdriver because I needed to provide and coordinate performance testing and functional testing for multiple platforms using multiple technologies. My current project only needs one or maybe two screwdrivers. We only use one technology an only support one browser.

What kind of screwdriver do you need?