Exploratory Testing

Profile picture for user devraj

Exploratory testing is an experience-based test technique that involves the creation of informal tests that are designed, executed, logged, and evaluated dynamically during the test execution process. Informal tests are not predefined tests and are created on the fly to explore the software and its functionalities. This approach is strongly associated with reactive test strategies, where testers respond to issues and feedback as they are discovered during testing.

Table of Contents

  1. Test Execution in Exploratory testing
  2. Types of Exploratory testing
  3. Stages of Exploratory Testing
  4. Test Charter in Exploratory Testing
  5. Session-based Exploratory Testing
  6. Documenting Exploratory Testing
  7. Exploratory Testing Debriefing Session
  8. Types of Defects
  9. Advantages of Exploratory Testing
  10. Disadvantages of Exploratory Testing
  11. Video Tutorial

Test Execution in Exploratory testing

Exploratory testing is a test technique that involves the immediate execution of tests as they are designed and implemented. The results of these tests are then used to learn more about the component or system under test and to create additional tests for areas needing further testing.

Types of Exploratory testing

Some common types of Exploratory testing are:

  1. Freestyle
  2. Strategy based
  3. Scenario-based

Stages of Exploratory Testing

The following are the stages of exploratory testing:

  1. Classify the Bugs
  2. Create a Test Charter
  3. Time Box
  4. Review Results
  5. Debriefing

Test Charter in Exploratory Testing

To ensure that exploratory testing is effective, testers often create a test charter, which provides a high-level description of the objectives, scope, and tactics to be used during the testing session.

The test charter typically includes information about the purpose, target, and scope of the exploratory session, as well as details about the test setup and the duration of the session. It may also identify where to focus the test effort, what is in and out of scope, and what resources should be committed to complete the planned tests.

By providing a clear set of test conditions to be covered in the test session, the test charter helps to maintain focus and prevent overlap if multiple people are carrying out exploratory testing simultaneously.

The test charter is usually prepared before the testing session, possibly jointly by the business analyst and the tester. It is used by the person in charge of the exploratory session, who could be any stakeholder, to ensure that testing is carried out effectively and efficiently. 

Session-based Exploratory Testing

In exploratory testing, all testing activities are carried out within an uninterrupted period of time called a session. Session-based testing is often used to ensure that exploratory testing is conducted efficiently and effectively. Session-based testing involves conducting exploratory testing within a defined time box and using a test charter containing test objectives to guide the testing process.

Time-boxed sessions help to control the time and effort dedicated to the exploratory session and ensure that testing activities remain focused and productive. In addition, it is good practice to perform exploratory testing in pairs or as a team, as this can help to identify defects and issues more quickly and reduce the likelihood of errors and omissions.

During a test session, testers may focus on particular defect types or other problem areas that can be addressed without the formality of scripted testing. This approach can help identify and address issues more quickly and efficiently and be particularly useful in Agile development environments.

In exploratory testing, test session sheets are helpful in documenting the steps followed and the discoveries made during the session. A typical exploratory test session consists of three tasks: session setup, test design and execution, and issue investigation and reporting.

During the session setup, the tester prepares the testing environment and defines the scope of testing. In the test design and execution task, the tester designs and performs the tests, exploring the product to find potential issues. Finally, in the issue investigation and reporting task, the tester investigates any issues found and reports them to the relevant stakeholders.

Throughout the exploratory testing session, the tester learns how to work with the product, designs tests, performs tests, and interprets the results. To guide their efforts, exploratory testers often use heuristics, or general strategies or rules of thumb, to help drive their creativity and exploration during the session.

Documenting Exploratory Testing

Test design and implementation may be carried out and documented during exploratory testing and other experience-based testing approaches as part of test execution. However, the level of documentation for exploratory tests and their traceability to specific elements of the test basis may vary.

It is crucial to document all the findings obtained during exploratory testing. The results should provide insights into better test design, testing ideas, and areas for further improvement. Documentation should cover defects, ideas, questions, improvement suggestions, and other relevant information.

Various tools can be used to document exploratory testing sessions, including video capture and logging tools, planning tools, and so on. The documentation should include the expected results to ensure the testing objectives are clearly defined and met.

Exploratory Testing Debriefing Session

In exploratory testing, conducting an assessment after each test session is essential to determine where to focus the testing next. This allows for continuous improvement at the end of each session. The Test Manager may hold a debriefing session to gather the test results and plan for the next test sessions.

During the debriefing meeting, the information collected is aggregated to present a status update on the progress, coverage, and efficiency of the session. This summary information can be used in management reports or retrospective meetings at various levels (single team, multiple teams, and large-scale Agile implementation). However, determining accurate test metrics for exploratory testing sessions can be challenging.

Types of Defects

In the context of exploratory testing, defects commonly discovered include scenario-based issues that are missed during scripted functional suitability testing, issues that fall between functional boundaries, and workflow-related issues.

In addition, performance and security issues may sometimes be uncovered during exploratory testing.