Exploratory testing is back in vogue! It is listed as a must-have by every software testing expert and blog and top trends for testing in 2020. But before we explore as to why exploratory testing seems to have gained popularity again, here’s a short digression that will help establish the context better.
In 2006, Dr Cem Kaner Professor of Software Engineering at Florida Institute of Technology, worked with several definitions of the term Exploratory Testing along with other experts and came to a consensual definition.
This is what James Bach has to say about the phenomenon. “I didn’t coin the term exploratory testing. Cem Kaner did that in the 80’s. He was inspired by “exploratory data analysis,” which is a term coined by John Tukey . In the late 80’s and early 90’s I was noticing that testers who did not follow any explicit script were better at finding bugs than those who did. I decided to find out why. That led to my first conference talk called ‘The Persistence of Ad Hoc Testing’, in 1993. Soon afterward I encountered Cem’s terminology and began saying exploratory testing. At the time, Cem had left the industry to become a lawyer, so I was literally the only testing guy speaking at conferences about exploratory testing.”
And this is the definition they came up with. “Exploratory software testing is a style of software testing that emphasizes the personal freedom and responsibility of the individual tester to continually optimize the value of 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.”
Two terms – personal responsibility and freedom of the tester are often forgotten in the fast-paced development cycle of today. Exploratory testing is important and back in vogue because it is an effective test strategy for modern organizations where speed is paramount. No test process is infallible. There are so many ways in which software can fail and scripting all the possible failure conditions is next to impossible.
Using exploratory testing, QAs have both freedom and the responsibility to create sessions and charters to truly expand the scope of the application that they have never explored before. As a best practice, many organizations have started devoting a percentage of their overall test cycle purely to exploratory testing. Choose risk areas in product and design and execute a few tests to find important issues fast and to collect information that will further help the project.
As opposed to scripted testing, where one adds steps, and has an expected set of outcomes, preconditions and processes, exploratory testing is less granular. When the requirements are vague or non-existent or the tester has to test a product on short notice, exploratory testing comes to the rescue.
Exploratory testing is in vogue and is the tester’s best friend, really. Here’s how:
1. Helping Test A Complete App That Was Developed Before
Often when a previously developed application gets renewed attention. Exploratory testing is the ideal approach to understand the flows, processes and how it was developed. Exploratory testing will help the tester approach things more comprehensively in a shorter time-frame. Using the pointers provided in this review, one can then frame the overall test strategy.
2. Testing A New Product In A Dynamic Environment
In a dynamic product environment when the release is in the early stage and undergoing changes, the product is unstable. Exploratory testing requires less preparation before starting the test activities and it can quickly bring the focus back on to the product. Using automated test case documentation, you can test in line with the agile philosophy and verify your product’s compliance with the assumptions.
3. Ever Heard Of Pesticide Paradox
The pesticide paradox in software testing refers to the phenomenon that the more you test a product, the more immune it becomes to the tests (similar to the insects that eventually build up resistance to pesticides).
Running the same scripts repeatedly on same code will not fetch new errors. The overall risk profile of your release gets complicated as you move along the life cycle of the product.
This continuously evolving risk requires constant impact analysis and code maintenance. Which translates into more time, effort and delays. Ideally, test automation should take care of the impact issues and regression testing, while QAs should focus on finding fresh issues.
4. Finding Out of The Box Bugs
Exploratory testing allows uncovering of those edge cases or bugs that are normally hard to find or ignored using other testing methods. Since you are testing based on intuition and the data you have at hand, you are not biased and not following a script. Exploratory Testing is highly effective under controlled environments in detecting bugs of varying severity.
The trick is to use ET intelligently and capture high-risk bugs that would otherwise go unnoticed.
Undertaking product development for a target group / customer / domain: Yes! You are the right person to think in the manner of an end user, tester, domain, client or business group, and using this versatility, exploratory testing will prove to be an essential approach.
5. A Precursor to Automation
Software that is comprehensively tested by automated tests can still regress after the bugs are fixed. Test automation helps discover cases that we are already aware of, but ET uncovers the cases we haven’t discovered yet.
Testers can experiment with a user story that follows a certain sequence. Using tool functionalities like annotation, voice memos or adding assertions, they can create documentation on the fly. This is how they can convert a user story into a test case and help formalize the findings. The exploratory testing practice then becomes a precursor to automation.
6. Product Development For Niche Domains Or A Specific Target Group
Think like the end user. Nowhere is it more true than in exploratory testing. The right person to think like the end user, the client or business group is the one who explores the product. This is as close to business validation you can get.
Build Robust Products
Every DevOps/Agile team aims to build robust products. The kind that don’t break at the slightest anomaly or unpredictable variations. Since test scripts are less tolerant to change, exploratory testing charters help uncover these odd anomalies faster without losing time or focus on documentation. If this has raised your curiosity and you want to find out more about Exploratory Testing, then read our guide here.