Use Session-Based Testing to Structure Exploratory Testing
James Bach is a well-known thought leader in the software testing industry and has been an advocate of exploratory testing for more than a decade. But do you know about his method called session-based testing (SBT)? James and his brother Jonathan Bach also are the co-creators of SBT.
The introductory session-based test management lightning talk by Paul Carvalho at the bottom of the article first got me interested in session-based testing.
So what is session-based testing? It's is a framework to support exploratory testing. If a tester just goes ad-hoc into testing a product, it will most likely be difficult to quantify what work was done, what parts of the software were tested, and how much time was spent actually testing. Senior managers like metrics because managers like to be able to see progress in a project. session-based testing can address this.
First, there is a charter where the tester sets out his mission for the test session. This helps the tester keep focused within a session and not start out testing Part X of Feature A but end up checking Part Y of Feature B. However, Jonathan and James Bach say this is acceptable to do if the tester believes it’s acceptable to go off-charter.
Then there is the actual session itself. This is a time-boxed focused test session where email, instant messaging, etc., are turned off so there are no distractions, and all the configuration, test conditions, etc., have already been set up. Sessions can be short or long, from forty-five minutes to two hours—with the optimum time of ninety minutes.
Once complete, you have to do the reporting aspect of the work. This requires bug reporting and most importantly a debriefing report to the test lead or manager. Debriefing is important because it communicates to the lead the experiences of the tester. It is also used to create the metrics of the session.
There are several tools out there to assist with session-based testing, such as Sessionweb or Session Tester. If you have the project tracker JIRA, you can get the Bonfire add-on to assist with the sessions. The team at JIRA actually uses sessions as their testing approach.
For those interested in learning more about session-based testing, online resources are abundant. Jonathan Bach’s “Session-Based Test Management” article provides insight into the early days of session-based testing. And if you skip to the 24-minute mark on Peter Tennekes’ presentation, you can learn more about using session-based testing for agile projects.
Do you use session-based testing? If so, how has it worked out for you?