Exploratory Testing tips & strategy


“An informal test design technique where the tester actively controls the design of the tests as those tests are performed and uses information gained while testing to design new and better tests.” [ISTQB glossary - After Bach]

“Exploratory testing is simultaneous learning, test design, and test execution” (James Bach)
"A style of software testing that emphasizes the personal freedom and responsibility of the individual tester to continually optimize the quality of his/her work by treating test-related learning, test design, test execution, and test result interpretation as mutually supportive activities that run in parallel throughout the project."(Cem Kaner)

Benefits of Exploratory Testing

·         Less preparation is needed
·         Important bugs are found quickly
·         More productive approach
·         More test coverage

When to perform Exploratory Testing

·         Testing team does not know much about the product
·         There is not much time or resources available to complete testing otherwise
·         Great way to learn and familiarize your team with the new product quickly
·         Feedback on the product / feature is required quickly
·         Diversity of testing is needed
·         Most important errors need to be found in shortest time
·         Continuous feedback received from client on user stories and on developed sprint even when a sprint is not yet pushed to the client environment.
·         Some very specific issue needs to be verified/investigated
·         You need to provide rapid feedback on a new product or feature.
·         You need to learn the product quickly.
·         You have already tested using scripts, and seek to diversify the testing.
·         You want to find the single most important bug in the shortest time.
·         You want to check the work of another tester by doing a brief independent investigation.
·         You want to investigate and isolate a particular defect.
·         You want to investigate the status of a particular risk, in order to evaluate the need for scripted tests in that area
·         Regression testing based on old bug reports.
·         Testing based on reading the user manual and checking each assertion.

Lifecycle of Exploratory Testing


·         Learning(Product Exploration)
Discover and record the purposes and functions of the product, types of data processed, and areas of potential instability. Your ability to perform exploration depends upon your general understanding of technology, the information you have about the product and its intended users, and the amount of time you have to do the work
·         Test Design.
Determine strategies of operating, observing, and evaluating the product.
·         Test Execution
Operate the product, observe its behavior, and use that information to form hypotheses about how the product works.
·         Results(Reviewable)
Exploratory testing is a results-oriented process. It is finished once you have produced deliverables that meet the specified requirements. It is especially important for the test results to be reviewable and defensible for certification. As the tester, you must be prepared to explain any aspect of your work to the Test Manager, and show how it meets the requirements documented in the procedure.
·         Heuristics
Heuristics are guidelines or rules of thumb that help you decide what to do.
This procedure employs a number of heuristics that help you decide what should be tested and how to test it

Key tips to remember while using exploratory testing technique

  •  Divide the testing into sessions and each session should have the testing purpose and durations of two hours. 
  •  Explore the product and identify scope. 
  •  List down if there are any specific limitations or business rules related to the product 
  •  Prepare a To Do checklist, which can help to perform exploratory testing and can track your scenarios. 
  •  While exploring the application or performing exploratory testing, you can add new points in to do list. 
  •  Do not thing like scripted testers; test the application by thinking out of the box. Below are few examples, you can attack the application by using different patterns of thinking