Download as pdf or txt
Download as pdf or txt
You are on page 1of 6

A Guide to Tours to Take

On Your Next Test Project

By Michael Kelly

E
“ xploratory software testing is a powerful and fun
approach to testing,” says James Bach. “In some
situations, it can be orders of magnitude find useful when attempting to learn
more productive than scripted testing.” about the product. As you read this arti-
In his article “Exploratory Testing cle, remember that the touring concept
Explained,” Bach defines exploratory presented below is an approach to
testing as simultaneous learning, test exploratory modeling, but it’s not a bad
design and test execution. I find this to thing if you suspend the tour and actual-
be a useful definition, not only in prac- ly do some testing.
tice but in explaining how I perform my
exploratory testing. It divides my think- Getting Started
ing into three parts: how I learn about With Application Touring
the software I’m testing, how I generate Earlier this year, while learning from
test ideas and design my tests, and the Bach, I had a hard time getting started
mechanics of how I execute my testing. I with a sample application he had given
find this division useful because it makes me to test. When he saw me struggling
exploratory testing easier to explain, but with where to start, he offered me some
also easier to practice and learn. simple techniques for getting familiar
In this article, the focus is on the with the product. He referred to the
“simultaneous learning” part of the techniques as “tours” of the application.
exploratory testing equation. I find that
there are many articles and books avail- Michael Kelly is an independent consultant
able on test design and test execution, who focuses on test automation and explorato-
but few that focus on the problem of ry testing. He’s a director at large for the
how we actually learn what the product Association for Software Testing and is the
does. This is an important step in the director of programs for the Indianapolis
Quality Assurance Association. You can e-mail
testing process, and in this article I will
him at Mike@MichaelDKelly.com.
share an application touring heuristic I

20 • Software Test & Performance


EXPLORATORY TESTING

They are called FIG 1. MICROSOFT MAGNIFIER INITIAL DIALOG the information in
tours because you the product that
are not necessarily tells you what the
looking for prob- product does. This
lems. You are simply is helpful in check-
learning the prod- ing for product con-
uct. For a tour to sistency. A product
become a test, you can be inconsistent
would have to have with explicit or
an oracle (the prin- implicit product
ciple or mechanism claims.
by which we recog- Explicit claims
nize a problem) of can often be found
some sort. in help material,
The first tour he marketing material,
suggested was the training material,
feature tour. In the tool tips or even
feature tour, you move through the appli- ing overwhelmed. As I toured the appli- magazine articles (such as reviews of
cation, getting familiar with all the con- cation I was able to learn about how it your product). An implicit claim can be
trols and features you come across. You worked, I started identifying and priori- found when your product uses industry
ask simple questions like, “What’s this tizing risks, and I was ultimately able to terminology, has a common look-and-
and what does it do?” and “How would I start identifying and designing tests. feel, executes common and well-under-
know if this feature is working?” You look stood functionality, or has a feature set
for interactions, calculations, transforma- Developing Additional Tours that is considered to be well-understood.
tions, multimedia and error handling. Since the time I spent working with In the claims tour, you are looking
When taking a feature tour, it can be Bach, I’ve identified other types of tours not only to identify what the claims are,
helpful to look at one factor at a time. that I’ve found helpful. All of these tours but also to attempt to identify which
The second tour was the variability are based on the information in his claims are vague, possibly incomplete or
tour. In the variability tour, you look for “Heuristic Test Strategy Model.” Each even inconsistent. While that’s actually
things you can change in the product— one reminds me to learn about a specif- testing, don’t forget that with explorato-
and then you try to change them. Click ic aspect of the product that I might oth- ry testing we are learning, designing and
buttons, select values, change settings erwise ignore, and in the process of exe- executing our tests all at the same time.
and so forth. The goal is to try to get a cuting all the tours, I find that I visit the Make sure you do not have too much
feel for how things work and what pos- same functionality multiple times and tunnel vision while you’re touring.
sible values might be. look at it from different perspectives The next tour I take is the structure
For excellent examples of applica- with a different concept of risk. That jux- tour. In this tour, you attempt to learn
tions that have a high degree of vari- taposition of different risks and features everything you can about what consti-
ability, check out James Lyndsay’s helps me build a better internal model tutes the physical product. That can
black-box testing machines at www of the product I’m testing. include the code, hardware, multime-
.workroom-productions.com. At one The first tour I try to take is a claims dia files or databases. I often look at the
point in my training, Bach had me tour tour. In this tour, you attempt to find all source and unit tests for languages I’m
Puzzle 1 (one of the black-box testing familiar with. I also try to get a look at
FIG 2 . MAGNIFIER SETTINGS
machines made up of five buttons and DIALOG the database or the schema(s) if XML is
three sliders). At the end of the tour, involved. When performance testing,
Lyndsay asked me to explain—in understanding the application architec-
detail—the machine’s behavior. If you ture and the hardware being used and
can do that (and I struggled), you under- how it’s configured are also priorities.
stand variability. Puzzle 5 seems especial- The next two tours focus on the
ly diabolical, if you ask me. product’s users. The first is the user
The third tour Bach suggested was tour. In this tour, you attempt to imag-
the complexity tour. In this tour, one ine five users for the product and the
attempts to find the five most complex information they would want from the
things about the product. Complexity product or the major features they
can exist around features or data. would be interested in. The second tour
Complex features can be the most com- is the scenario tour. Here, try to imag-
mon features in an application (the ine five realistic scenarios for how the
algorithm behind Google search) or users identified in the user tour would
they might be rarely used—hidden away use this product.
waiting to cause problems (end-of-year When I’m attempting to imagine
processing for an accounting system). users for the product, I find it helpful to
These three tours enabled me to think not only about what users will do,
jump into the product without becom- but what they value. I also look to see if

22 • Software Test & Performance FEBRUARY 2006


EXPLORATORY TESTING

there is real user data available in the cation interact with?” “How well does it The main testability features I look for
application I’m testing. Test data is work with external components and when taking this tour are scriptable inter-
good, but real data offers a different configurations?” and “What does it faces, test harness and stubs, log files and
insight into how an actual user will pos- depend on to function properly?” I diagnostic utilities. For example, I often
sibly use the system. As you’re attempt- recently worked on a project that expe- look for WSDL interfaces for Web servic-
ing to identify your users, don’t forget rienced less than 75 percent uptime in es, JUnit test harnesses for Java applica-
about users you may not want, such as its test environment for the entire test tions and log files for Web application
hackers and other malcontents; users cycle due to all the environmental prob- servers. An excellent example of leverag-
who don’t know what they really need lems we had and all the external servic- ing a scriptable interface can be found in
to do or how to do it; or users who es the application relied on. Brian Marick’s article “Bypassing the
attempt to do too much with the prod- During this tour, determine which GUI.” In addition, attempt to identify
uct at one time. applications, operating systems, hard- modules or layers of the application that
It’s helpful to think about the envi- ware and services the product needs to can be tested independently. Many sys-
ronments in which those users will oper- function. Does it need any special plug- tems I’ve tested have had some level of
ate, the access rights they will have, and ins, drivers, fonts or language runtimes diagnostic utilities associated with them
the common patterns they will follow. (Java, Ruby, etc.) to operate correctly? A (especially those that used external Web
Once you know who the users are, think tip-off that you might be interfacing services). The easiest way to find those is
about compelling stories of how they use
the product. What inputs do they have, FIG 3. MAGNIFIER HELP DIALOG
and what outputs do they care about?
The scenarios you want to identify will be
compelling stories of how someone who
matters might do something that matters
with the product.
Depending on the product, I might
take a data tour. In this tour, you identi-
fy the major data elements of the appli-
cation: what they are, where they are,
where they go and where they come
from. I recently worked on a Web serv-
ice where the data tour was the most
informative tour I took. Since there was
no graphic user interface, little docu-
mentation on the service interface and
only one defined user, the data became
the main source for my test design.
When taking your data tour, don’t
just identify application inputs and out-
puts, look for default values, configura-
tion files, options settings and temporal
data (that is, data that has relationships
with time). Note the size and structure of
the data you find, especially if it’s repre-
sentative of production data. Look for
possible ways to corrupt data or for ways with an external service may be the to ask developers, but you can sometimes
data can get into the system that devel- appearance of data that you (the user) find them lying around in admin con-
opers may not have anticipated. Attempt didn’t enter. In addition, degradation soles if you are lucky enough to know
to identify how the data can be created, in performance can sometimes be a where to find them.
accessed, modified and deleted. clue that there is something happening When looking for test tools, I look
Directly related to the data tour is in the background. for both open-source tools and the
the configuration tour. This tour is sim- Finally, take a testability tour. Try to commercial tools that I have available.
ilar to the variability tour and the data find all the features you can use as testa- Depending on the software I’m testing,
tour, but this time we are looking specif- bility features and identify the tools you I’ll look for any of the following:
ically for persistence and how it affects have available that you can use to help Scripting languages
product features. Attempt to find all the in your testing. Take a look at James Disk imaging tools
ways you can change settings in the Bach’s “Heuristics of Software Test- File scanners
product in such a way that the applica- ability.” Thanks to my automation back- Network analyzers
tion retains those settings. ground, this is my favorite tour. A testa- Macro tools
Another important tour is the inter- bility feature is a feature of the product Debuggers
operability (or compatibility) tour. On that gives us more visibility into the Data generators
this tour, you attempt to answer the fol- inner works of the product or more Runtime analysis tools
lowing questions: “What does this appli- control over the state of the product. Static and dynamic analyzers

FEBRUARY 2006 www.stpmag.com • 23


EXPLORATORY TESTING

make on my notepad. Remember that also seems very complex, so I note it so I can
COMING UP WITH A these are heuristics, which means they think of meaningful tests later.
HEURISTIC THAT are fallible. Different people may find I click each of the checkboxes, one
WORKS different things while doing the same at a time. I note their functionality and
Now that I have all these tours, I need a
tour(s). any behavior I notice as I do so. Finally,
way to remember to use them. For me, To get things started, I’ll just launch I click Exit.
the easiest way to do that is with a the application. I won’t yet actively think
mnemonic. of my heuristic; I’ll just click around until Using My Heuristic
James Bach suggests these general I run out of ideas. I also will limit my It’s at this point that I start to run out
guidelines to use when developing a touring to half an hour. That includes of ideas. Now I recall my touring
heuristic:
both my interaction with the application mnemonic (see sidebar “Coming Up
• Attempt to solve a problem.
• Conceive of a need or desire to add and my analysis following that interaction With a Heuristic That Works”) and work
structure to that attempt OR notice where I review my heuristics. through each type of tour.
a pattern. As soon as I start the application I’m Feature tour: I think I’ve noted all
• Look for a pattern in the problem given a claim about the application’s func- the features, but I might start up the
you are solving. tionality. application again and double check to
• Try to understand the pattern as Figure 1. I also see three pieces of see if I missed anything. I think I
best you can.
functionality a link to Microsoft’s Web site, a understood everything. If I was unsure
What’s the essence of this
pattern? checkbox (which also shows persistent about what a feature did, I would make
How can I simplify this pattern? data—it should save my settings if I click the a note of it and be sure to talk to a
• Label it. box), and the OK and “X” buttons to developer about it.
• Try it (experiment with it). close the dialog. From this dialog, I also Complexity tour: I noted two features I
Be a skeptic. can identify a user for this application— think are complex. As I think about
Vary your label.
someone with slight visual impairments. If I other types of complexity, it occurs to
See if you actually remember
your heuristic when you need it.
were actually doing exploratory testing, I me that screen resolution might add
The following is the heuristic I came would go ahead and execute some tests another dimension to the complexity of
up with for application touring: FCC at this point for the simple pieces of my testing. I will need test cases that
CUTS VIDS. The mnemonic stands for functionality like the “X” button and the account for that. I’ll also need to think
the following: OK button, but for right about dual monitors, dif-
Feature tour now I’ll just keep touring. ferent video cards (possi-


Complexity tour
If I click OK, the dialog bly) and different modes
Claims tour
Configuration tour closes and I’m left with the of output, like output to a
User tour Magnifier Settings dialog. projector.
Testability tour Figure 2. I see 11 pieces Claims tour: I noticed
Scenario tour
Variability tour
of functionality: two but-
tons, six checkboxes, one
You are not the claims made on the
dialog and in the help file,
Interoperability tour select box and two but- but I didn’t look at any
Data tour
tons on the window title
necessarily claims that might be made
Structure tour
bar. After identifying on the Microsoft Web site,
those, I also noticed that looking for in the Windows XP docu-
Performance test tools the application accepts mentation or elsewhere. I
Functional automation tools hotkeys. I ask myself if it problems. You should look into finding
File comparison utilities saves my settings when I more claims made about
Test-case management tools exit. If I click Help, I get are simply the application.
Version-control tools the help screen. Configuration tour: I
Diff utilities Figure 3. I close this learning the noticed that the initial
Capture reply tools right away thinking that dialog might save my set-
Video recorders I’ll look through the claims in product. tings. I also noticed that
more detail later and I’ll some of the checkboxes


Application Tours in Action find out if I need to test are application settings
Let’s look at an example of application the functionality of the that should be persisted. I
touring. For this example, we’ll look at default windows help dialog. don’t know yet if the mag-
the Microsoft Magnifier. I’ve never even I play around with the nification level is a persist-
started this application before, and all I magnification level a bit, ed configuration setting.
know about its functionality is what its and notice that the dis- User tour: I identified
name tells me. Typically, when I tour an played magnification changes. This seems one type of user, the one in the initial
application for the first time, I have a to be complex. I will need to take time to claim. What other users might there be?
notepad with me. As I tour the applica- think about tests for this feature. Well, I might be a user. As I think about
tion and develop test ideas, I list them Figure 4. If I move the mouse into the it, this might be an excellent testing
out on the notepad. I will do my best to magnification area, the view goes gray tool. I could have used this when testing
duplicate that behavior for you here. and I get a message telling me that I float the precision of one of James Lyndsay’s
Everything in italics is a note I would the magnification area in a window. This machines. I had been using Paint to

24 • Software Test & Performance FEBRUARY 2006


EXPLORATORY TESTING

FIG 4. EXAMPLE OF MAGNIFIER IN ACTION Next Steps


First, identify how you tour the applica-
tions you test. Most likely you do it with-
out even thinking about it. Open an
application you have never used before
and just write down what you notice.
When you are done, you can come back
and identify patterns in what you look for.
Once you know what you can already
find, you can develop a heuristic to help
you identify the areas of the application
you normally overlook.
Once you have a heuristic (I like
mnemonics since they allow me to
magnify the machines in order to count at the structure of the application at quickly write out more detail in my
pixels. Now I don’t need to do that any- all. I need to find where all the appli- notes), label it in a way that allows you
more. So now I have testers and people cation files are stored, what DLLs are to remember it. Then try using it. Be
with slight visual impairments. used (that may help me when thinking skeptical of its effectiveness. Try to
I need one more user for my heuris- about interoperability), and I have not identify holes in it. And most impor-
tic. I guess I might also use this feature seen the source code. Since I know I tant, see if you actually remember your
while giving a presentation at a confer- can’t see the source code, I would at heuristic when you need it—when you
ence. Sometimes it can be hard to see least like to know the language, test a new application. !
things in the back. because that may tip me off to com-
REFERENCES
Testability tour: Off the top of my mon implementation problems when
• Bach, James, “Exploratory Testing Explained,”
head I would really like a script or a tool using that language. www.satisfice.com/articles/et-article.pdf, 2003.
that lets me test/emulate many differ- At this point, I would review my • Bach, James, “Heuristic Test Strategy Model,”
www.satisfice.com/tools/satisfice-tsm-4p.pdf, 2003.
ent resolutions and graphics card set- notes and start to go around and ask • Bach, James, “Heuristics of Software Testability,”
tings. It also might be handy to have a developers questions about what I have www.satisfice.com/tools/testable.pdf, 2003.
tool that lets me record my desktop as I so far. I would then organize my ideas • Bach, Jonathan, “Session-Based Test Management,”
www.satisfice.com/articles/sbtm.pdf, 2000.
test so I can replay crashes as videos. into exploratory test charters and • Marick, Brian, “Bypassing the GUI,” STQE
Scenario tour: I already identified my begin my first round of testing. Magazine, September/October 2002.
scenarios when I identified my users.
Given (what I believe to be) the narrow
scope the application, I needed scenar-
ios to help me think of users. That’s
OK—just recognize that any of the
users identified might have multiple
scenarios that may be meaningful.
Variability tour: The most variable fea-
ture is the magnification level and the
actual magnification display. I can also
vary the settings.
Interoperability tour: I know there is a
tie into the default windows help dialog,
I don’t know that it talks to any other
applications. I might ask around and
look closer at the claims to ensure
things are as simple as I think they are.
Data tour: I know it should save
some settings when I exit, and I know
it has temporal data when I use it (the
area of the screen it’s magnifying). I
don’t know where this data is stored
(see structure tour). I have not yet
thought to test the preset data. I
already messed up the settings that
we selected the first time I launched
the application. I was lucky that I
took a screen shot when I first
opened it. Otherwise I would have to
reinstall.
Structure tour: I have not yet looked

FEBRUARY 2006 www.stpmag.com • 25

You might also like