It was J. R. R. Tolkien who wrote: ‘Not all those who wander are lost’ and this rings true when it comes to exploratory testing. Many in the industry believe exploratory testing is the future of manual testing – especially for Agile processes. And chances are you’re already doing exploratory testing - whether you call it that or not.
Exploratory testing is much more than error guessing or common bug hunting; it’s an orchestrated event that enables agile teams to not only catch bugs earlier, but also to collaborate on more effective session-based testing. Combining exploratory testing with other practices is one of the most effective ways to maximize the power of your testing, increase your product quality, and decrease risk. Studies have shown how the amount of critical defects discovered increase when exploratory testing is carried out alongside traditional specification-based testing.
All of the evidence points to the fact that exploratory testing is the next big movement in manual testing and beyond. Here are three ways Agile automated testing teams can benefit from exploratory testing:
1. Exploratory testing exposes defects that automated testing misses
By exploring product territories from various perspectives - without extensive planning - exploratory testing rapidly exposes defects. The human intelligence involved in exploratory testing gives you a broader, deeper view than any automated test could.For example, an automated test could indicate if a UI element worked properly, but it couldn't determine if that UI element was confusing to the end-user. Even if exhaustive automated testing were feasible - which it’s not, in compressed agile sprints - such issues would still evade it. Moreover, because exploratory testing encourages branching and, well, exploration of different stories and ideas, it uncovers more issues than structured, predefined manual testing does.
2. Exploratory testing helps Agile team members collaborate to expose more types of defects
With exploratory testing, a diverse group of people - including developers, product owners, UX designers, business analysts, and support engineers - can all contribute to the quality effort, because no specialized test automation or scripting knowledge is required. These people each bring different specialties and perspectives to the table.With a larger and more diverse group examining the application, you expose a broader variety of issues and reduce the risk that critical issues go unnoticed. There’s never enough time or resources to test absolutely everything, but if you perform exploratory testing from many different perspectives, you can get more risk reduction from whatever time and resources you can allocate to testing.
3. Exploratory testing finds functional defects when automated testing is not (yet) viable
Automated testing isn’t always feasible or advisable. Sometimes a sprint focuses on prototyping some new functionality that’s expected to evolve dramatically over the subsequent sprints. In this case, it might not make sense to spend time on test automation.Alternatively, many teams transitioning to agile bring legacy regression test suites that take weeks to execute (and usually considerably more time to update and maintain). How do they safeguard quality while they’re transitioning to a more suitable automated testing strategy?
Exploratory testing is perfect for performing a quick sanity check on new functionality and its most prominent impacts across the application. If you use an exploratory testing tool to automatically record and document your efforts, any defects found are easily reproducible. Later, when the team does add test automation, you can integrate and correlate the automated test results with the exploratory testing results.
Exploratory testing is not the answer for all your testing needs; no single technique could promise that. It is, however, the perfect complement to automated testing and the agile future of manual testing.