Six tours for exploratory testing the business district of your application
Exploratory testing is sometimes thought to be "directionless testing", but James Whitaker's new book suggests that exploratory testing, is more structured than it is credited for. Exploratory testing is filled with numerous tours or testing protocol, which dictate where problems might occur and where to find them and eliminate them.
Exploratory testing is often confused with "adhoc" testing, or testing without a plan. It's true that exploratory testing is unscripted, meaning there isn't a cookbook guide that will tell you step-by-step what to test and what to expect; however, exploratory testing can be planned and structured in a way so that you're ensuring you get the necessary test coverage. In the book Exploratory Software Testing: Tips, Tricks, Tours, and Techniques to Guide Test Design, James Whittaker describes exploratory testing through the use of tours. The tours are strategies or patterns used to uncover certain kinds of defects. Following the metaphor of a tourist who explores an unknown area, a tester explores the code using various techniques or tours. In this tip, I'll explore six tours from Whittaker's book which are part of what Whittaker describes as the Business District: that area where "business gets done."
The money tour
Any guidebook will highlight the main attractions for tourists. This is where the money is made. In software terms, the money tour covers those features and functions that are highlighted in marketing literature. These are the primary functions that seen on commercials or demos when the product is getting ready for release.
In preparing to do exploratory testing for the Money Tour, it's recommended that the testers meet with the sales and marketing staff, watch demo videos, attend customer visits and figure out the best ways to show off the primary features and functions of the application. Execute tests that would demonstrate those "back-of-the-box" features. View the tests from the perspective of the sales staff. Are you able to easily show the functions of the application? Does the application execute as described by the literature?
A variation of this tour is called the Skeptical Customer tour in which the tester would get in the mind of a customer asking a lot of questions about what is being demoed. This tour should test variations of the main functions, answering such questions such as "what if we did this?" or "how about if I want to do that?" Imagine the customer that will want to prove that the demo is marketing spin. What kind of questions would be asked? Perform the tests that will answer those questions.
The landmark tour
Landmarks are used to get you from place to place as you travel. You look for certain spots to visit and then, from there, go to your next destination, often using a map to orient yourself. In software as well, we navigate through an application. We go from function to function, performing different types of activities.
In exploratory testing using the landmark tour, the tester would determine various key features that are to be visited. The navigation to these features may vary. Perhaps you can get to them using keystrokes or through menus. Often by changing the order in which you navigate from place to place, you can change conditions and uncover some underlying defects with the application.
The intellectual tour
Imagine the intellectual that is on a city tour and asks questions of the guide. The Intellectual tour, similar to the Skeptical Customer tour, involves getting into the mind of someone that would be asking a lot of tough questions. In this tour, the tester needs to be asking the hardest questions. What is the most complicated function that can be executed? Test the limits. What inputs would cause the most processing? Which queries would be the most complex?
The questions, of course, will depend on the application under test, but the idea is to test for the most complex situations. Use the maximums for fields, files, sizes or anything that has a limit. Execute the functions of the power user.
The FedEx tour
FedEx is responsible for picking up a package and delivering it somewhere, tracking its progress along the way. Similarly, the FedEx Tour is the tracking of data from a start point to an end point. Application data is often moved around a system, passed through various interfaces or databases. With the FedEx Tour, the tester needs to be able to track the data through the various stages as it flows through the application. Where does the data get displayed? Does the data get manipulated as it moves through the system? Is it delivered properly?
The after-hours tour
After hours when the tour busses are no longer running, a lot of behind the scenes maintenance is being done so that all the attractions will be ready to go the next day. In software, when users are not active, often maintenance activities such as backups or performance-intensive tasks are occurring. The tester executing the after-hours tour would be testing those maintenance functions.
A variation of this is the Morning-Commute tour which tests the startup routines that are used for the application under test.
The garbage collector's tour
The garbage collector spends just a short time at each house, picking up the garbage in a methodical manner and moving on. He has one specific task to do, but he does it for each house in the neighborhood. The Garbage Collector's tour is used to do a spot check on every item of a particular feature. This could be used, for example, to check every menu item, all error messages or all dialog boxes.
The Garbage Collector tour is not meant to test in detail but to just be a quick test to ensure the validity of everything in a set.
There are many other tours discussed in Exploratory Software Testing: Tips, Tricks, Tours, and Techniques to Guide Test Design. These tours serve to help testers come up with a structured approach for exploratory testing. This sampling will help whet your appetite for taking your own tours through your applications and find a variety of places to explore and test.