Skip to content

What is Exploratory Testing?

Author: Rahul Parwal

Last updated: October 1, 2024

what is exploratory testing
Table of Contents
Schedule

Do you get tired of following strict scripts when testing software? Do you want to break free from the monotony of repetitive tasks and embrace the joy of discovering deep hidden treasures of information and bugs in your software? If so, then welcome to the world of Exploratory Testing, where the thrill of exploring the unknown combines with the art of software testing to raise your testing game to new heights. In this article, we are going to delve into the various activities, techniques, tools, and mindsets needed to learn the craft of exploratory testing.

 

 

What is Exploratory Testing – Understanding The Basics

Exploratory testing is a style of testing that emphasizes a tester’s:

  • Personal Freedom: The tester is free to approach testing in their own unique way, as long as they keep the goals and objectives in mind. It includes control over testing techniques, contextual decisions, tools, etc.
  • Agency: The testing is in the control of the tester, which makes the decision about the test process, including what to test, how to test, and when to test it.
  • Responsibility: The tester is accountable for the results and quality of their testing.

 

Exploratory testing involves designing tests, executing them, and learning from the results simultaneously.

Let’s understand the four key components involved in this process:

  • Test Design: The activity of deriving and identifying suitable test points.
  • Test Execution: The act of performing the tests by interacting with the product.
  • Learning: The process of gaining new insights and understanding from the results of the testing.
  • Reporting, Note Taking, Analysis: The process of documenting the testing, taking notes, and analyzing the results.

 

Although exploratory testing has been a popular concept for the last two decades. It is common to see testers misunderstanding it as:

  • Adhoc Testing: Testing that is performed without a plan or strategy.
  • Monkey Testing: Testing that involves randomly clicking on buttons or entering data without a purpose.
  • Traditional Test Case Execution by Humans: Testing that is performed by following a predefined script or a set of instructions in the form of a test case.
  • Testing Technique: Exploratory testing is a testing approach, not a specific testing technique. This means that exploratory testing doesn’t require a specific method or set of tools like other testing techniques. It’s more like a high-level strategy or mindset.

 

Trivia: The term Exploratory Testing was first coined by Dr. Cem Kaner, a Retired Professor of Software Engineering at the Florida Institute of Technology (1983).

 

 

What’s the Difference Between Exploratory Testing and Scripted Testing?

Exploratory testing, at its core, is fundamentally different from scripted testing. It does not include the following:

  • Following Scripts: In the form of detailed and pre-defined test cases or instructions.
  • Rigid Procedures: About the process of performing the test execution.

 

The main focus of exploratory testing is on these aspects:

  • Risks
  • Variations of test data, steps, flow, sequence, etc.
  • Diverse ideas
  • Increasing coverage
  • Adapting to new possibilities
  • Control by tester over documented scripts
  • Discovering unknown information

 

It’s easy to miss bugs you aren’t looking for! Exploratory testing relies on the tester’s awareness of what they are testing and their ability to see information that is not explicitly stated.

Try this short moonwalking bear test to understand how easy it is to miss information you are not actively looking for:

 

 

Critical Activities for Systematic Exploratory Testing

The best testing is exploratory by default, but not all exploratory testing is systematic and thorough in nature. Here are some key activities that you can include in your exploratory testing game to make it organized and systematic:

  • Preparation: Before starting exploratory testing, it is essential to prepare thoroughly. This needs active research and includes the following:
    • Studying competitors or similar products
    • Researching the product history
    • Referring to requirements
    • Questioning team members, customers, and other stakeholders for information. 
  • Heuristics and Oracles: Heuristics are a fallible way to solve a problem. In testing, we use heuristics frequently. On the other hand, Oracles are ways to recognize if there is a problem. All oracles are also heuristics. Some of the popular oracles to assist you with exploratory testing are:
  • Mind Mapping: Mind mapping is a visual modeling technique for organizing and visualizing information using a node-based hierarchy. It is an excellent stimulant for your visual intelligence and assists you to:
    • Identify risks.
    • Generate test ideas.
    • Understand the product’s functions.
    • Model the product for its coverage analysis.
  • Session-based testing: Session-based testing involves breaking down the testing process into multiple time-boxed sessions. Each session has a:
    • Specific mission or charter
    • Fixed duration
    • Documented outcome in a report which includes:
      • Notes
      • Questions
      • Ideas
      • Bugs, etc.
  • Other practices that help: There are several practices that can help support exploratory testing, such as:
    • Reporting and documentation
    • Collaboration and communication
    • Pair testing
    • Debriefing your testing to others.

 

Tools & References

Exploratory testing is an effective way of testing software, but it can easily get time-consuming and non-systematic if not managed well. To make your experience smoother and more organized, you can make use of these tools and references:

Browser Extensions:

  • Exploratory Testing Chrome Extension: This extension helps testers with their exploratory testing by providing features such as taking notes, questions, and ideas, along with support for taking screenshots.
  • Bug Magnet: This extension helps testers find vulnerabilities by generating random test inputs for diverse test data categories.

 

Desktop Apps:

  • Rapid Reporter: This desktop app enables testers to report bugs and easily take notes during testing activities.
  • Yattie: Yattie is a new yet powerful and easy-to-use desktop app that helps testers manage their exploratory testing efforts by providing features such as note-taking, recording, checklists, time tracking, etc.

 

Hands-On Reference: Just reading about exploratory testing is not enough. It is vital to watch hands-on reference examples to get an idea of what a systematic exploratory testing session looks like. Here are two of my favorite examples:

  • Demo: #Testing of “RedBus SortBy”: This demo showcases the process of exploratory testing on a real-life example of the “RedBus SortBy” feature.
  • Live Pair Testing with Sam Connelly: This is a playlist of exploratory testing session videos from some of the best in the testing game. These videos demonstrate how you can perform systematic exploratory testing for an immersive testing experience.

 

Using these tools and references can improve the efficiency and effectiveness of exploratory testing. Make sure you try out different tools and choose the ones that best meet your needs.

For all our visual readers, I have summarized this entire article in this mind map.

I appreciate you taking the time to read this article. I hope this article has helped you better understand the art of systematic exploratory testing. Our next article will discuss factors to consider when reviewing a testing strategy.

 

Rahul Parwal

Rahul Parwal is an expert in software testing. The recipient of the 2021 Jerry Weinberg Testing Excellence Award and Synapse QA’s Super Voice Award, Rahul has collaborated in testing IoT systems such as Unit, API, Web, and Mobile as Senior Software Engineer at ifm. Aside from holding webinars, conferences, and talks, he regularly shares on Twitter, LinkedIn, and his website.