In this post we are going to look at some of the components and terms used in DynamoDB. We will follow this with some .NET Core code examples of commonly used functions.
What are Testing Tours?
A “tour” is an exploration of a product that is organised around a theme. You decide on a theme, then navigate and tour around the application to document your theme findings. Tours are excellent for surfacing a collection of ideas, that you can then explore in depth, one at a time.
Why use Testing Tours?
Exploratory testing can sometimes be looked at as an unstructured and directionless form of testing.To find the high priority bugs, you need to understand the application you are testing.
If you are releasing a feature or product and have tight timeframes, you want to have some sort of game plan sorted. If you are working with other testers in the team, you do not want to be ‘tripping up’ on each other. When working and testing with developers, you will want to have some sort of guide to explain what areas, and under what circumstances, we are looking for issues. You do not want to be testing the same thing and treading on each other’s toes.
Testing tours help with that required level of understanding; allowing you to dive into areas and think about things in a lot more detail than if you were clicking around with no structure or guidance in place.
When testing a feature or product, if you are looking for multiple different bugs, in different areas of the application and under different circumstances, you are going to miss stuff. You need to narrow your scope down, testing tours helps narrow these scopes. They give you guidance to focus on the areas you are testing, under different circumstances inside the application.
Dr James Whittaker has written numerous books, one of these is “Exploratory Software Testing: Tips, Tricks, Tours, and Techniques to Guide Test Design”, this book looks at ways James has implemented and uses testing tours at Microsoft, to guide their testing.
A good talk to listen to is James Whittakers “Large-scale Exploratory Testing: Let’s Take a Tour” https://www.youtube.com/watch?v=fNkYz1hB7r0
Implementing Testing Tours
This can be done both singly or by pair testing, sometimes when two people are testing using the tour approach, they can both look at different angles and options. There are two main types of tour approaches; touring to learn the application and touring to find bugs.
Touring to learn the Application
This is using tours to learn about the product, then document the different features and areas that you would later want to explore in more detail. When using this approach you might discover bugs but it should not be the main objective, the main objective is to note down different areas that relate to your tour theme. Once you have the list, then you can test the relevant stuff one test at a time.
Touring to Find Bugs
The second type of testing tour, is to tour the application to find bugs; using different types of tours. The different types of tours are explained in my detail below.
Let’s have a look at some popular testing tours:
James Whittaker’s tours
- Money tour: Test the major feature that have not already been tested in other scenarios
- **Guidebook tour: **The guidebook and its variants test the software’s ability to deliver its advertised functionality.
- **The Landmark Tour: **Choose a set of landmarks, decide on an ordering for them, and then explore the application going from landmark to landmark until you’ve visited all of them in your list. Use other tours such as Guidebook tour or Money Tour to create a list of key features.
- **The Garbage Collector’s tour: **Choose a goal (for example, all menu items, all error messages, all dialog boxes), and then visiting each one in the list by the shortest path possible.
- Rained-out tour: Start and stop tasks, hit cancel, etc.
- **Obsessive compulsive tour: **Perform tasks multiple times, if you have these automated, run them over and over again.
- Back Alley tour: Test the least-used features
- All-Nighter tour: Keep the application open overnight
- **The Collector’s Tour: **Document every output you see as you run through your scenarios. Can you create more scenarios from the outputs collected.
More tours by James Whittaker can be found in this book “Exploratory Software Testing: Tips, Tricks, Tours, and Techniques to Guide Test Design”
James Bach Tours
- Documentation Tour: Look in the online help or user manual and find some instructions about how to perform some interesting activity. Do those actions, improvise from them.
- Sample Data Tour: Employ any sample data you can, and all that you can. The more complex the better.
- Variability Tour: Tour a product looking for anything that is variable and vary it. Vary it as far as possible, in every dimension possible.
- Complexity Tour: Tour a product looking for the most complex features and data. Look for nooks & crowds where bugs can hide.
- Continuous Use: While testing, do not reset the system. Leave windows and files open. Let disk and memory usage mount. You are hoping that the system ties itself in knots over time.
Mike Kelly Tours
Mike used the mnemonic FCC CUTS VIDS to help identify helpful tours.
- Feature tour: Move through the application and get familiar with all the controls and features you come across.
- Complexity tour: Find the five most complex things about the application.
- Claims tour: Find all the information in the product which tells you what the product does.
- Configuration tour: Attempt to find all the ways you can change settings in the product in a way that the application retains those settings.
- User tour: Imagine five users for the product and the information they would want from the product or the major features they would be interested in.
- Testability tour: Find all the features you can use as testability features and/or identify tools you have available that you can use to help in your testing.
- Scenario tour: Imagine five realistic scenarios for how the users identified in the user tour would use this product.
- Variability tour: Look for things you can change in the application – and then you try to change them.
- Interoperability tour: What does this application interact with?
- Data tour: Identify the major data elements of the application.
- Structure tour: Find everything you can about what comprises the physical product (code, interfaces, hardware, files, etc…).
Next time you are testing a feature or product, try also implementing a couple testing tours that are listed above. Think about the tours that you might not have covered during your normal testing.
I have found pair testing to work really well when starting out with testing tours, you can discuss what each tour means and get that fuller understanding. Dr James Whittaker’s book “Exploratory Software Testing: Tips, Tricks, Tours, and Techniques to Guide Test Design” goes into great detail to explain these tours and how you can implement them.