Monday 11 June 2012

Session-based testing- Test Technique

Session based Testing is derived from Exploratory testing. But its not Exploratory testing itself!

Jonathan & James Bach, pioneers in the field of testing developed this way of testing. The very disavantage of exploratory testing gave birt to Session based testing.

 Session-based testing is a technique for managing and controlling unscripted tests. It is not a test
 generation strategy, and while it sets a framework around unscripted testing, it is not a systematic
approach whose goal is precise control and scope. Rather, it is a technique that builds on the strengths
of unscripted testing - speed, flexibility and range - and by allowing it to be controlled, enables it to
become a powerful part of an overall test strategy.

At the heart of the technique is the idea of effective limits. A Test Session has a well-defined start and
end time, limiting its duration. During a Test Session, a tester engages in a directed exploration of a
limited part of the thing being tested - it should be obvious to the tester that an action or test is inside or
outside these limits. Within these limits, moment-to-moment activities are not controlled, but left to the
tester's judgement. The tester records his or her activity - and includes whatever other information.

Elements of session-based testing:

Charter: A charter is a goal or agenda for a test session. Charters are created by the test team prior to the start of testing, but may be added or changed at any time. Often charters are created from a specification, test plan, or by examining results from previous test sessions.

Session: An uninterrupted period of time spent testing, ideally lasting one to two hours. Each session is focused on a charter, but testers can also explore new opportunities or issues during this time. The tester creates and executes test cases based on ideas, heuristics or whatever frameworks to guide them and records their progress. This might be through the use of written notes, video capture tools or by whatever method as deemed appropriate by the tester.

Session report: The session report records the test session. Usually this includes:

Charter.
Area tested.
Detailed notes on how testing was conducted.
A list of any bugs found.
A list of issues (open questions, product or project concerns)
Any files the tester used or created to support their testing
Percentage of the session spent on the charter vs investigating new opportunities.
Percentage of the session spent on:
Testing - creating and executing tests.
Bug investigation / reporting.
Session setup or other non-testing activities.
Session Start time and duration.

Debrief:  A debrief is :a short discussion between the manager and tester (or testers) about the session report. Jon Bach, one of the co-creators of session based test management, uses the aconymn PROOF to help structure his debriefing. PROOF stands for:-

Past. What happened during the session?

Results. What was achieved during the session?

Obstacles. What got in the way of good testing?

Outlook. What still needs to be done?

Feelings. How does the tester feel about all this?[1]

Parsing resultsWith a standardized Session Report, software tools can be used to parse and store the results as aggregate data for reporting and metrics. This allows reporting on the number of sessions per area or a breakdown of time spent on testing, bug investigation, and setup / other activities.

PlanningTesters using session-based testing can adjust their testing daily to fit the needs of the project. Charters can be added or dropped over time as tests are executed and/or requirements change.



Note: Some of the Definitions have been taken from Wikipedia.