Information Systems Education Journal (ISEDJ) 9 (3)
August 2011
©
2011 EDSIG (Education Special Interest Group of the AITP) Page 69
www.aitp-edsig.org /www.isedj.org
and making use of realistic commercial testing
tools. Otherwise, the skills that students acquire
in such courses will not enable them to be ready
to test large-scale industrial software systems
after graduation.” (2010, p.91)
Garousi & Mathur (2010) found that of seven
randomly-selected North America universities,
just two use any commercial testing software:
the University of Alberta, which uses IBM
Rational Functional Tester (IBM, 2010); and
Purdue, which uses Telcordia AETG Web Service
(Telcordia, 2010). (Both universities also use
open-source testing tools.) Of the seven
universities in the survey, five use JUnit, usually
along with other tools.
Buchmann, Arba, and Mocean (2009) used
AutoIt to develop an elegant GUI test case
execution program that reads test case
information from a text file. For each test case,
the program executes a user-defined AutoIt
function to manipulate the SUT, and then
compares the SUT with expected behavior. The
program can check standard Window GUI
controls and even images.
3. Evaluation
Evaluation Criteria
We try to give students a QA system-testing
experience that is as close to the “real thing” as
using JUnit is for unit testing. Ideally, we would
use a popular commercial-quality tool such as
HP QuickTest Pro (Hewlett-Packard Development
Company, 2010) for system testing, but the per-
student licensing costs are too high. (We briefly
considered licensing commercial software for a
lab, but nearly all our students have their own
computers and prefer to use them for their
assignments.) Therefore, we needed a free,
Windows-based tool with these features of
commercial-quality tools:
Record/playback: The tool should be able to
record keyboard and mouse activity into a script
for later playback, so students become familiar
with the advantages and disadvantages of this
simple technique.
Programmability: The tool should use an easy-
to-learn, high-level, interpreted language. This
capability allows students to move beyond
record/playback, building high-level functions for
interacting with the SUT, and to construct their
own test frameworks.
Desktop GUI and web application support: The
tool should be able to test both major
application areas: desktop applications
(Windows GUIs) and web-based applications.
External resource access: The tool should be
able to access files, databases, spreadsheets,
and other resources, so that students can store
test data in these places and so they can verify
application activity.
Control information: The tool should include the
ability to find input and output controls and
provide information about them. This capability
allows students to write higher-level functions to
test the SUT.
Integrated development environment (IDE): The
tool should include an easy-to-use environment
for building and running tests.
Support: The tool should include complete, well
written, and well-organized documentation.
Over the past few semesters, we have tried
JUnit, Badboy (Badboy Software, 2010), and
Selenium (Selenium Project, 2010) for system
testing. In Spring 2010, we decided to examine
AutoIt and AutoHotKey (AutoHotKey, 2010).
This section compares the relative merits of each
of these tools.
JUnit
JUnit was originally designed for unit testing, so
it is unsuitable for system testing by itself.
However, several third-party utilities add
system-testing capabilities to JUnit. For
example, we have used HttpUnit (Gold, 2010)
and HtmlUnit (Gargoyle Software Inc., 2010) for
web testing with JUnit, and Abbot (Wall, 2008)
for GUI testing.
We have had some success with these third-
party tools, but we have found that both
HttpUnit and HtmlUnit execute slowly.
Furthermore, neither includes record/playback
capabilities. Although Abbot does include
record/playback for desktop GUIs, it works only
with Java Swing and AWT. These drawbacks
motivated us to consider other approaches.
Badboy
Figure 1 shows Badboy, a web-testing tool that
includes a script editor and an integrated web
browser. Of all the tools mentioned, Badboy is
by far the easiest to get started with, because it
installs easily and excels at record/playback.