Sessions are a great and simple way to organize testing tasks. They are nothing more than dedicated time to test a feature with the intent of fulfilling a mission. In fact, because the division of a task into smaller pieces is so intuitive, we often forget the importance of the mission itself. In this blog post I will talk about different types of test missions to keep in your arsenal and how you can leverage them in your testing.

I assume some knowledge of what is exploratory testing and the general concept of a test session. If this is totally new to you, you may want to read Andrew’s Test Sessions post first.

My first sessions

When I started to create my flavour of session based testing, the mission tended to be a summary of what I had tested. For months my sessions had such creative and vague titles like “Test the login functionality”. I am not proud of admitting this, but these type of session descriptions lasted for over a year. The strategy was simple: divide the feature into pieces of functionality and then have sessions to explore each. Not terribly creative and very unstructured.

Then, when I discovered and started to build my list of test heuristics, the sessions changed into enumeration of checks. For example, “Test that invalid inputs are handled correctly”. There is nothing wrong with defining sessions like these, but one thing that is missing is the “intent” of the session. One might think that the intent is always to find bugs. But perhaps there are different testing modes that we can use depending on the situation.

Rethinking sessions

If we think of what, besides bugs, might we be interested in finding while doing testing, we can start to create different sessions to fulfil different goals. These are the types of sessions that I use:

  • Discovery Session:
    • Its mission is reconnaissance. It is useful when you want to learn a new product or are trying to figure out how much scope there is to test. I am not attempting to find bugs, instead I am exploring the feature space to get an idea of how complex it is and what are the risky areas. The outcome of this session are two things: a list of additional sessions that are going to be needed and a big list of questions and assumptions for the team.
  • Breadth Session:
    • Its mission is a quick scan. The idea is to explore the feature using as many product dimensions as possible. SFDPOT is a popular heuristic to use, but there are many more. Since it is difficult to fully explore each of these areas in the two hours of a session, the goal here is to cycle over these heuristics at a fast pace which forces you to prioritize scenarios. The outcome is a quick gut check of the overall state of a feature.
  • Touring Session:
    • Its mission is to defocus. This is a session that has no mission. The intent is to let your mind wander around and spot things that we tend to miss when we are very concentrated. There are many ways of approaching this, what works for me is to test while I am listening to the radio or play at using the product as fast as possible. Besides the discovery of interesting issues, the outcome of this session is that I get rested for my next, more intellectual session.
  • Targeted Session:
    • Its mission is to focus. This is a diligence session where you go deep into a very specific focus area and work to exhaust scenarios. It is created based on information gathered during all the other sessions and in my experience the focus area tends to be one heuristics or quality criteria (for a good list, take a look at James Bach’s Heuristic Test Strategy Model).

Create your own

The next time you go off and do some exploratory testing, experiment with different ways of framing your test mission. Think of the intent of your session and what will be the kind of outcome that you are expecting. Build your own vocabulary so that you can better transmit the activities that you are doing. If nothing else, a benefit of practicing with different type of sessions is that it increases the chance of spotting issues in your natural blind areas.