Remember comic book and cartoon heroes who scaled tall buildings, had x-ray vision, and could turn back time? Software test expert James Bach sees some parallels in what testers need to do to root out bugs. In this week's column James shares some "secret tools" that will extend your testing powers!
When I was three, my favorite cartoon was The Fantastic Four. When my mom discovered this, she changed the channel and forbade me to watch it again. I guess she thought it was too violent. She forced me to watch Mr. Rogers instead-as an antidote, I suppose-but my psyche was already too far poisoned. Though I patiently attended the adventures of the Sweatered One, "It's clobberin' time" remained my favorite phrase for months.
A few days ago, I realized that when I test, I feel like a superhero. The seed planted in 1969 has come to full flower. What I like most about exploratory testing is how I feel when I am flying over a product, using my x-ray vision to spot bugs. I can be like Clark Kent, posing as a normal user, but I can also leap over tall buildings when needed. Having bionic ears, super strength, and the ability to warp time and control natural forces helps too.
What gives me these fantastic powers, beyond that of the mortal tester? An array of special tools. Which tools? Well, they aren't on Marick and Faught's otherwise fine list of test tools ( www.testingfaqs.org/tools.htm). The tools I'm talking about are not even sold as test tools. But the power they give you is great.
X-Ray Vision, Super Strength, and Time Control
Some tools let you see the invisible.
Place a transistor radio within about six inches of your processor, tune it to about 975 on the AM dial, and you can actually hear the chip working. This comes in handy when you want to know if a program that appears to be hung is really stuck or just deep in thought. (I learned that trick from Greg Pope.)
Run Restorator (shareware, $60) which can extract every resource from an application, including all dialog boxes, menu text, and error messages stored in string resources. This tool is handy not only when you're learning all the features of an application and making your test outlines; it's also great for taking snapshots of an application from build to build and identifying how/whether the resources have changed.
Use InCtrl5 (freeware) if you want to know which files and registry entries change between two points in time. Use it for installation testing or just to discover how a running application modifies files. If you want to monitor these things in real time, Winternals makes a line of inexpensive system-monitoring tools such as Filemon, and Regmon, which monitor all file system activity and registry changes, respectively.
Other tools let you do things a normal user can't do. For example, EZ Macros ($30) lets you do light record and playback. It's a highly portable and inexpensive alternative to a full featured GUI test tool. Also, Kleptomania ($50) can copy text from dialog boxes, graphic displays, and error messages that normally don't allow copying, and Print Key Pro ($20) gives you precision screenshots.
One of my favorite tools is Spector ($75), which takes snapshots of the screen every second while I test. This tool is relatively unintrusive, and it's invaluable for answering the question "what was I just doing?" because its VCR-like interface lets me review exactly what was on the screen at any time. I once accidentally recorded a week's worth of my personal computer use. I only noticed it was recording when I noticed strange, huge data files in the Windows directory.
My absolute favorite test tool is Perl. If you have any aptitude for programming at all, consider learning Perl. It's a remarkably powerful language for manipulating data (such as when you need