Exploratory Testing in Software Testing

What is Exploratory Testing?

As its name implies, exploratory testing is about exploring, finding out about the software, what it does, what it doesn’t do, what works and what doesn’t work. The tester is constantly making decisions about what to test next and where to spend the (limited) time. This is an approach that is most useful when there are no or poor specifications and when time is severely limited.

  • Exploratory testing is a hands-on approach in which testers are involved in minimum planning and maximum test execution.
  • The test planning involves the creation of a test charter, a short declaration of the scope of a short (1 to 2 hour) time-boxed test effort, the objectives and possible approaches to be used.

How to Structure Exploratory Testing?

Just because this approach is done on the fly doesn’t mean it isn’t structured. Exploratory test management needs to ensure that the following happens:

  • A clear mission of the test is established.
  • Thorough notes are taken of what needs to be tested, why, and the assessed quality of the application.
  • Issues and questions raised during testing are tracked.
  • Two testers are appropriately assigned based on their experience.
  • This is accomplished through 5 phases, or session based test management (SBTM Cycle):

1. Classify the bugs.

  • Categorize the kinds of problems most commonly found in past projects.
  • Seek the root cause of these problems.
  • Identify the risks and develop ideas to test the application.

2. Create a test charter.

  • Identify what to test, how it can be tested, and what factors to consider.
  • Describe the starting point of testing.
  • Define how users will utilize the system.

3. Create a time box.

  • Two testers work together for at least 90 minutes.
  • Interruptions do not occur during the 90 minutes.
  • An extension or reduction of 45 minutes is acceptable.
  • Testers react to the response of the application and prepare for the correct outcome.

4. Review the results.

  • Assess the defects.
  • Learn from the test.
  • Analyze coverage areas.

5. Debrief.

  • Compile results.
  • Compare results to the character.
  • Check for needed additional testing.

Types of Exploratory Testing

1. Freestyle Exploratory Testing

Think of this as exploratory testing with an ad-hoc approach. In this format, there are no rules, structure, organization. Testers go through the application quickly, mainly to verify the work of other testers, investigate a particular bug defect, or do a quick smoke test.

2. Scenario-based Exploratory Testing

This form of exploratory testing is based on real user scenarios. Testers take each scenario and then explore the software in all possible ways to match that scenario. The point here is to test as many scenarios as possible to provide maximum test coverage.

3. Strategy-based Exploratory Testing

This is usually assigned to testers who are already familiar with the software being tested. It includes boundary value analysis, equivalence technique and risk-based technique to identify more challenging bugs.

Advantages

  • It doesn’t require preparation for testing as we don’t have documents for testing.
  • In this type of testing time saves due to all task are doing simultaneously like Testing, Designing test scenarios and executing test scenarios.
  • Tester can report many issues due to incomplete requirement or missing requirement document.

Disadvantages

  • Few issues cannot be catch in this type of testing.
  • There is review of test planning & designing of test cases/scenario while testing may cause issues.
  • Testers have to remember the scenario what he is executing because if any bug is found then tester should report a bug with proper steps to reproduce Difficulty to perform the exact manner especially for new found bugs.