September 7, 2015
What is Tour Testing? A Structured Approach to Exploratory Testing
What’s the first thing you do when you visit a new city? Do you go straight to the tourist bureau to ask for information and pick up a map, or do just walk into the crowd and let your instincts take over?
Both are valid methods for a traveller to explore a new place, but if you’re hard-pressed for time and you have a shoestring budget, then you’d want to squeeze in as many sights and landmarks as possible taking the shortest and most efficient route available.
That’s why tours are so useful. Although they come at a cost (less freedom to move around as you wish), the structured way you’ll visit a new place means that you’re unlikely to: a) get lost and waste precious time and money, and b) miss out on important things to do or see.
The same concept applies for exploratory testing.
The use of tours in exploratory testing minimises the “directionless” feeling most inexperienced testers get when performing it. By “going on a tour” you create a path of sorts which guides through the intricacies of the product and gives you more confidence when exploring it.
The idea of tour testing has existed well over a decade and various authors and organisations have contributed to a better understanding of how it works. In this blog post, I discuss this approach to exploratory testing and suggest some tours you can try right after your finish reading.
A formal definition of tour testing and its possible uses
My personal definition of tour testing, based off Cem Kaner’s, is:
“Tour testing is a structured approach to exploratory testing, where the exploration of a product is organised around a specific theme.”
As you can note from the definition, there are two important components that distinguish tour testing from “pure” exploratory testing.
- Tour testing uses a structure or method that gives the tester a particular focus in the way he or she goes about exploring a product and looking for bugs.
- This structure is combined with a theme that informs the type of questions that are asked and type of observations the tester should be making.
There are many possible uses for tour testing, chief amongst them is to conduct exploratory testing but using a structured approach. Tour testing also makes it easier to thoroughly review a product or particular features in it, understand how it works, as well as come up with fresh ideas for test cases.
Different types of tour testing
There are several tours you can go on. Each one gives you the opportunity to study your product from a different frame. By stringing tours together you’ll get a multi-faceted perspective of your software and obtain a richer pool of ideas, data, and questions that contribute to an overall better understanding of the product.
Take a look at these 8 different tours you can embark on:
- Requirements tour: Find all the information in the software that tells the user what the product or certain feature does. Does it explain it adequately? Do results reflect the claims made?
- Complexity tour: Look for the most complex features and data, in other words, all places where the most inextricable bugs could lurk
- Continuous use tour: Leave the system on for a prolonged period of time with multiple screens and files open. Observe what happens as disk and memory usage increase
- Documentation tour: Tour the help section of your product and follow some instructions to see if they produce the results desired
- Feature tour: Try as many of the controls and features available on the application as possible
- Inter-operability tour: Check if the system interacts as it should with third-party apps and whether data is shared and updated as it should
- Scenario tour: Create a scenario (user story) that mimics the real-life interaction of a user with the system and play it out
- Variability tour: Look for all the elements that can be changed or customised in the system and test different combinations of settings
All tours lead to one destination: The User
Too often with exploratory testing, professionals become absorbed with the journey and forget all about the destination.
The end-user is the beneficiary of every technique we have in our arsenal, so when doing tour testing it’s always a good ideas to keep the bigger picture at the back of your mind and reflect on the ways one tour interrelates with other tours and different aspects of software development.
In fact, all tours intermesh in one giant web of value adding and if in the middle of one tour you make observations or formulate questions related to other types of tours, jot them down and make sure you tackle them later.
Using tour testing is a simple and logical way to address the most common shortcomings of “pure” exploratory testing, namely the lack of pre-defined goals and protocols that newbie testers find particularly frustrating and confusing.
By “going on a tour”, testers can be assured that they covered all bases in their work and approach exploratory testing with more confidence. Eventually, when it’s time to take the plunge into pure exploratory testing, testers will have internalised a better sense of what to look out for and how to make their wanderings through the software more fruitful.
Keep in mind that tour testing isn’t an alternative to unstructured exploratory testing.
The two don’t exclude each other. Tour testing is a great choice for inexperienced testers, and even experienced testers will want to use it when time and resources are in short supply. Unstructured or “pure” exploratory testing brings with it a whole host of benefits which tour testing doesn’t; take a look at these earlier blog posts I wrote to learn more.