Testware for Free
Testware for Free
Adventures of a Freeware Explorer
Want the 4-1-1 on freeware but don't know where to start? A virtual cornucopia of programs awaits your discovery. In this week's column, Danny Faught details some of the testware he has researched, and explains why it's important to have freeware in your testing tool bag of tricks.
There's gold in them thar hills! For the past several months, I've been wandering the wild frontiers of free test tools, panning for tools that are free to anyone adventurous enough to search them out. I've found a few nuggets, plus a lot of stuff I've put back into the stream. My adventure has barely begun, but I can share with you some of what I've discovered so far.
What is freeware?
That's what I call any tool, software library, or web-based service that is free to set up and use, and that doesn't have unreasonable license restrictions like limiting the number of users, the amount of data it can process, or the amount of time you can use it. This includes Open Source software, public domain software, and some free binary distributions.
When I write about freeware test tools for Open Testware Reviews, I make sure to add them to the tools list on testingfaqs.org. I've done broad surveys of three categories so far-test drivers, defect tracking tools, and unit test tools-so these are where you'll find the most up-to-date entries for freeware. There are nine freeware entries for test drivers/test management tools, each solving a roughly similar problem in a different way. There are thirteen defect tracking tools listed. I'm amazed at how many defect tracking tools that the market continues to support, both commercial and free. For unit test tools-drum roll please-I've found forty-three tools worth listing, but that's only a sampling of what's out there. The unit test tools cover a broad range of programming languages, but there are only a few to choose from for each language.
Where will my adventures take me next?
Scouts tell me there are dozens of free load test tools out there. In that category, I've explored OpenSTA, which many people rave about, though your mileage may vary. I also have my own entry in this category, the stress_driver.
Tools that I classify as "test implementation tools" also promise to give us a few valuable nuggets. These tools help out while tests are running, and the category includes free memory allocation debug libraries like dmalloc, and data comparators like MDBDiff. I'll be cataloging many more in the near future.
Another type of treasure I'm hot on the trail of is static analysis tools. This category includes tools that pore over your source code looking for bugs, such as Jlint,tools that count lines of code and other metrics like sclc, and html link checkers like Xenu's Link Sleuth.
There are some places where the choices are fewer, but there are still some gems. A good example of a test design tool is ALLPAIRS. There are a handful of free GUI test tools, like Perl's Win32::GuiTest library. ATAC is a representative of the test coverage tool category. In the dreaded "miscellaneous" category is Codestriker, a tool that supports collaborative code reviews.
Further on the horizon is exploring territories never before covered by testingfaqs.org. This may include canned test suites, scripting languages and environments, and if I can summon the courage, security testing tools. There's plenty to be discovered in those areas.
Free Tooling: When are they most useful?
The freeware test tool territory is still wild and woolly. There are few free tools that rival their commercial counterparts in terms of features, reliability, and support. But they still have a place in your chuck wagon. Here's why.
You may not be sure that you need a particular tool, for example, a GUI capture/replay tool. You may have to invest a lot of time and money to pilot a project using one of the big-name commercial GUI tools. But if you recognize that you're going to have to do some programming even with a capture/replay tool, you may choose to skip the capture feature and code your tests directly using one of the free GUI test libraries.
You may decide that's all you need, and you'll have saved a lot of money and hassle. Or you may find yourself wishing you had features that are only available in a commercial tool, and then you'll approach the tool purchase decision much wiser. Or maybe you need to do some rudimentary link checking on your web site. There are several freeware tools that are up to the challenge. Most commercial web test tools offer many more features than link checking, and you can step up to them if your needs expand.
Maybe you're testing on a platform that is not well supported by the commercial tool vendors. I recently worked on a platform that was not supported by a single commercial tool vendor. If you have an open source test tool, you're free to apply the resources necessary to port a tool to your platform, without being at the mercy of the whims of your tool vendor.
One more argument in favor of freeware tools is the educational factor. You can make yourself more attractive on the job market by learning a new type of tool. It may be difficult to get licenses for a commercial tool just to play with it, but with freeware you can be up and running in minutes. Freeware is also well-suited for the classroom, and in fact, the open source culture has its roots in the academic research environment. I'm setting up a class to teach kids how to program, and I'm using an open source language so that my students won't have to spend any more money to be able to practice at home between classes.
There's room for both freeware and commercial tools in your arsenal. Because the freeware tools arena doesn't tend to have a big advertising budget, it's harder to get the word out about them. It's all about people telling people which ones worked best for them.