Session Based Testing Technique In Software Testing
The Software Testing is key aspect of Software Development Life Cycle (SDLC). Outcome of the product quality depends on how thoroughly software is tested. There are different types of testing techniques. Exploratory testing is one such popular technique where the professional testers perform the testing without any preparation. Tester explores the given functionality and aims to find as many bugs as possible.
Testers may get distracted during the exploratory testing, as he may work on multiple tasks parallelly such as raising defects, discussions, asking for clarifications or any other non-testing related activities. To overcome the challenges of exploratory testing and utilize the complete power of exploratory testing there is a technique called Session Based Testing (SBT).
Table Of Contents
- 1 What is Session Based Testing?
- 2 Components of Session Based Testing
- 3 Why Session Based Testing Management (SBTM) is important?
- 4 Session-Based Testing in Agile Methodology
- 5 Session Based Testing and Automation
- 6 Advantage of using Automation in Session Based Testing
- 7 Summary
- 8 Session-Based Testing Frequently Asked Questions
What is Session Based Testing?
Session Based Testing can be defined as a structured and time-based testing technique to carry out exploratory testing. In this methodology, uninterrupted testing is carried out for a specific time-period. In the end, the outcome of the testing is evaluated.
Components of Session Based Testing
The session-based exploratory testing involves multiple elements as it follows specific approach. Below is the list:
- Mission: Define the purpose.
- Charter: Define the goal for session.
- Session: Uninterrupted time for actual testing.
- Session Report: Session report contains bugs and other information.
- Debrief: Quick session with manager.
- Parsing Results: High-level aggregated reports.
Each and every component mentioned above plays a critical role in the session testing. Let’s understand each component in detail.
It defines the purpose behind session based Testing. This includes the duration of the session. Duration can be typically 45 minutes to 2 hours. The mission helps to focus on the key areas while still allowing the exploration of the system.
The charter is the goal for the specific test session. The testing team creates the charters. However, while preparing the charter, the testing team can take the help of the product and development teams. You can derive the charters from the specifications or the previous sessions. But you should be aware that charters are flexible and can be updated at any time. Charters should not be too generic and should not be too specific. For example,
- Verify the Testsigma website – This is too general.
- Validate the Testsigma homepage for the menu dropdown to work correctly – This is too specific.
- Focus on the Testsigma webpage functionalities that are listed on the homepage – Good.
The session is your uninterrupted and focused time for testing. You should focus the session on charter but not limit to charter. You can explore new opportunities or bugs during the session. As you progress, note down the ideas and bugs. You can also note down the scenarios that are worth exploring in the next sessions.
Once the session is over, you will have a lot of scenarios, bugs, and a lot of valuable information. The session report contains the summary of the session. Some of the key pointers of session reports are charter, the strategy used, area tested, list of bugs, list of open questions/clarifications, opportunities discovered, duration, etc.
It is a quick discussion between the tester and the manager. The debriefing follows the PROOF concept.
- Past(P): List of activities you have completed during the session.
- Results: What you have achieved in the session.
- Obstacles(O): List of problems that you have faced.
- Outlooks(O): Your feedback or plans for the next session.
- Feelings(F): Your opinion and review; this can also include improvisation points.
Managers can create a common standardized report. The report consolidates or aggregates all the session reports. The report includes a list of bugs, sessions per feature, time spent on each area, new opportunities, etc.
Why Session Based Testing Management (SBTM) is important?
Let’s understand how you can get benefit from Session Based Test Management (SBTM). SBT is an extended version of exploratory testing. To know the importance of SBTM you need to know the pros and cons of the exploratory testing.
Advantages of Exploratory Testing
- Less Preparation Time: It is more result-oriented rather than process oriented. You don’t have to pre-plan your testing activity. You can start the testing immediately and start reporting bugs.
- No barriers: You are not limited to any functionality or scripts and are free to explore. This helps in recording the critical bugs early.
- Increased knowledge: As you are given with tasks to report as many bugs as possible, it increases your product knowledge. As you keep on exploring and testing, you get the answers to a lot of questions.
- Anyone can contribute: Though testers are primary for these sessions, any person from the product team, development team, or anyone who has knowledge of the product can contribute to the exploratory testing.
Disadvantages of Exploratory Testing
- Requires experienced resources with out-of-the-box thinking: One of the major drawbacks of exploratory testing is, there are no test plans and no testcases. Only person who knows about product can bring the good result. The testers creativity plays major role in testing.
- No traces and tracks on amount of completion: You cannot say confidently that, you have completed X percentage of testing. As you are not focused on specific plans. You might have many undiscovered bugs even after testing.
- Difficult to reproduce issues: You should have high level of attention to detail while performing the exploratory testing. You should know what you are doing otherwise it is difficult to reproduce the steps, when you discover the bugs.
- Interruptions: Testers easily get distracted with messaging tools, emails, discussion with product team, asking clarifications. Though you spend 2 hours on exploratory testing, the focused hours may be 30 mins to 1 hour.
You can easily think that exploratory testing is good and required for every product, and it saves from delivering critical bugs to production. At the same time, you need to overcome the difficulties in the exploratory testing. Session Based Testing had emerged as a powerful testing technique for the same reason. It overcomes the disadvantages of exploratory testing, and it adds power to exploratory testing.
Advantages of Session-Based Testing
- Structured: You will not be given test plans during the session testing, but you will have structures and focus areas. The session is organized from beginning to end with a structured approach.
- Focused Testing: You don’t get any distractions in session-based testing. SBT testing uses a focused and distraction-free session. The SBT includes a major component as a session which is distraction-free time to achieve your goal.
- Uncover Edge case scenarios: SBT takes advantage of exploratory testing; it provides the flexibility to explore new features and uncover bugs.
- Easy to Track: You will get the focused area to test, so it is easy to remember what you have tried. This also helps in recording steps. Some tools also provide you to add short notes/comments, which can be helpful during final report creation.
- Everything is tracked: You can track everything, such as focused features, duration, and explored areas, and your overall experience throughout the session is tracked in a document. The aggregated report helps the management to analyze and come up with new plans.
Session-Based Testing in Agile Methodology
Agile methodology is a modern software development framework. Most organizations are now transitioning to agile framework. Agile framework provides the flexibility to customize and incorporate new things by using standard guidelines. The session-based testing technique can be easily integrated into the agile framework. The Session based testing allows you to have a charter, which can be small or large. You can define the charter which can fit into your agile model for each session. It also provides the flexibility to have as many sessions as you need. Below is one such example that shows how SBT can be integrated into Agile:
- Gather the list of features that are a part of the sprint.
- Analyze the critical areas which have a high business impact.
- Prepare the focused areas for SBTM.
- Plan the Session-based testing when the features are ready to be tested.
- Track everything and repeat the above steps in each sprint.
This way, you get the highest benefit of the exploratory testing and increased productivity. Furthermore, it also helps in discovering a lot of major bugs and improves confidence for release to production.
Session Based Testing and Automation
As mentioned earlier, Session Based Testing is advanced version of exploratory testing. Exploratory testing doesn’t contain any scripts, test cases. However, session-based testing focuses on best practices. Now, you might be thinking that automation is not helpful in session-based testing. However, session-based testing can still utilize the power of automation. You can use the automation in SBT to speed up the preparation of input data. For example, if you have all the automation script ready and you have the session time defined, just before a ,few hours to start the session, you can start the automation script; this can save lot of your efforts that is required to create the input data.
Testsigma, a no-code test automation, is built with superior test management features to aid your data-driven test automation. Read more about it here: https://testsigma.com/automated-data-driven-testing
Advantage of using Automation in Session Based Testing
- Saves Time and effort: Automation can save a lot of repeated works to prepare the input data.
- Reduces the last-minute surprises: While creating an automation script you might have gone through the data creation process. Any issues or hiccups that you faced during the data creation process are already resolved (or else automation scripts will fail). Since you have completed the automation scripts, the data creation process is smooth. Whereas in the manual approach, when you do it for the first time, then you may encounter a lot of issues, and resolving these issues may impact the SBT.
As we discussed in the previous section, exploratory testing requires professional testers to yield greater results. Similarly, the automation script also requires expertise in programming languages. However, this is true only if you stick to code-based automation tools such as Selenium, Cypress etc. There are lot of codeless automation tools which can save your time – Testsigma is one such tool. Anyone who knows about testing can just start the automation without worrying about coding. The Artificial Intelligence mechanism in Testsigma can also help you to reduce the maintenance of your automation scripts.
Session-based testing is derived from exploratory testing. SBT makes exploratory testing more effective and structured. SBT involves elements – mission, charter, session, debriefing, session reporting, and parsing results. The components are designed to help both testers and management. SBT can be easily integrated into the agile framework to get the most out of it. Having automation scripts for data creation makes SBT more powerful and productive.
Session-Based Testing Frequently Asked Questions
What are the benefits of SBT?
Session based testing uses the benefits of exploratory testing. It overcomes the cons of exploratory testing, which makes Session testing more powerful. Also, it reduces any distractions for testers and increases productivity.
Is session-based testing an agile methodology?
Session-based testing is a structured approach. Though it is not part of agile methodology using the agile framework flexibility, you can easily integrate session-based testing into the agile methodology.
Does session-based testing require automation?
It is not mandatory to use automation in session-based testing, but you can always automate the important use cases found during the sessions.
What is an exploratory testing session?
Session-based testing is referred to as exploratory testing sessions or session testing.