I attend a variety of software and quality user group meetings in the Denver area. One of my favorites is the monthly SQuAD (Software Quality Association of Denver) meeting. There’s always a lot of energy and networking opportunities and great speakers! This month was no exception. Scott Allman, a software quality consultant and my former Sun colleague, was there to discuss the tools he uses to make his job as a software test professional easier.
Though most people think of software automation as a record-and-playback type of tool for functional testing, it encompasses a variety of tools that can be used throughout the testing cycle from test preparation through result reporting. Scott pointed out some automated tools that are easy to use, can be downloaded in a matter of minutes — in some cases, seconds — and, best of all, are free.
XAMPP (X=Cross Platform, A=Apache HTTP Server, M=MySQL, P=PHP, P=Perl) automates the download and installation process for an open source set of Web development tools: Apache HTTP Server, MySQL, PHP and Perl. Using these tools makes it easy to get a website set up on a single computer and test web code before large distribution.
OpenOffice, formally StarOffice, is an open source productivity suite of tools, arguably comparable to Microsoft Office. As a former Sun employee, myself, I’m very familiar with these tools, which offer full functionality for word processing, spreadsheets, presentations and more. As Allman pointed out, spreadsheets can be used for planning, integrating test data, recording results and a variety of other tasks. If you only could use one of the tool he covered during the meeting, Allman said, use this spreadsheet tool.
FitNesse is an Acceptance Testing Framework which makes testing as easy as defining your input data and your expected output data into tables. This allows even those people with absolutely no programming experience to create automated tests. FitNesse is popular in agile environments, as it encourages early user involvement and collaboration.
For more information on Fitness, check out the TwoMinuteExample and this article on using FitNesse and other tools when <a href=running user interface, unit and integration tests.
In the video below, Allman shows a user how to connect FitNesse to Java code.
FindBugs is a tool that will analyze Java bytecode and find hundreds of different potential types of bugs. This would be an excellent tool for software developers to use in their unit test efforts, Allman said. If the developers don’t know about the tool, testers can play the hero and run the code through the tool, coming up with a long list of potential issues for the team to explore. Yes, the team will eventually catch on that you’re using a tool, but, at least for the first pass, you might be able to pull off that you’re super-human.
Chainsaw is an open source GUI tool, developed by Apache Software Foundation, that lets you view and analyze log files. This tool uses color-coding techniques to help you filter through logs, preventing you from ever being “stumped” by a problem in your code, Allman said.
One tool that every tester must have in order to document unexpected behavior is a ScreenShot tool. Allman thinks many of the Yahoo! Widgets are nifty for the tester’s toolkit. He gave us a quick demo of ScreenShooter, which allows you to copy a full screen, a window or any portion of a screen and quickly create an image file.
TestLink is a Test Management System that gives you a full repository for all your test documentation and results on the Web. The tools is Web-based so all your data can be accessed by logging into the system from any computer that has Internet access. The tool has reporting capabilities as well and if you’re the type that really likes hard-copy documentation, you can print your reports in a variety of formats.
Emma is a Java code coverage analyzer. This tool allows you to discover which code paths have been exercised by your test efforts. Another tool that would be extremely useful for white-box testing of Java, Emma will measure and report on Java code, including large-scale enterprise software development projects.
I caught up with Allman at the end of his presentation to ask him about his favorite tool. Listen to what he told me what tool he thinks is most important and why.