Exploratory Testing Techniques: Session-based Testing


Tricentis Staff

Various contributors

Exploratory testing is an umbrella term for a method of testing that allows testers to explore, learn, and analyze a program on the basis of their own intuition and insights.

When you test, you learn about the product, the market, and how the customer might use and value certain functions and features in your product. You learn about the ways in which the product could fail, its weaknesses & strengths. You learn how to test the product. Then you design and execute tests on the product, report the problems, advocate the repairs, and finally, develop new tests based on what you have learned so far. That’s exploratory testing in a nutshell.

Session-based testing is a common exploratory testing technique for structuring your test

This framework allows you to give exploratory testing a direction. It sets the agenda for exploratory testing.

A session, according to Jonathan Bach, is a basic testing work unit: an uninterrupted block of reviewable, chartered test effort that lasts for a fixed duration. This means that a session has a deadline of e.g. 90 minutes, during which no interruptions like emails, meetings, or telephone calls are allowed. The core component of a session is the session charter. A session charter summarizes the goal and provides an agenda for the exploratory session. It is a clear mission for the session, a statement of how the session will be focused, but it is not meant to provide a detailed plan. After the session, the session owner and tester debrief and produce a report of the findings.

The drawback to exploratory testing is that testers risk wasting a great deal of time wandering around an application trying to find defects. The lack of preparation, structure, and guidance can lead to many unproductive hours and retesting the same functionality over and over -particularly when multiple testers are involved.

Session-based testing makes exploratory testing plannable, and applicable for large-scale implementations (e.g. multiple agile teams)

All this can be attributed to its core object: The session. A session allows us to easily identify a starting point for exploratory testing. Its structured nature allowed session-based testing to provide a high degree of flexibility and freedom of usage to the tester. Any structure constrains you to some extent – and that’s not bad at all! These constraints create a manageable scope in which comprehensible goals, achievable in a short time-frame, can be defined. This makes session-based testing accessible to skilled as well as unskilled testers.


Tricentis Staff