Curiosity is an inherent trait of humans and so all of us, from the greatest to the simplest minds, explore. We explore from Windows to Mac, from beaches to mountains, from indoor games to outdoor games, from new mobile phones to new software, from Black box to white box testing; we also explore code to test their functionality.
Hearing of the ‘exploratory’ mode of testing, the first thing that comes to mind is ‘ad-hoc’ testing. But there’s a difference between someone who is running when he is late versus a professional athlete that competes in a 100-meter sprint. Exploratory testing is a lot more than wandering aimlessly through an application looking for bugs; it is a ‘thoughtful approach’ which involves simultaneous learning, test design, and test execution.
As its name implies, exploratory testing is about exploring. Exploring the software to discover what the software does and doesn’t do. According to Cem Kaner & James Marcus Bach, exploratory testing is more a mindset or “…a way of thinking about testing” than a methodology. They also say that it crosses a continuum from slightly exploratory (slightly ambiguous or vaguely scripted testing) to highly exploratory (freestyle exploratory testing).
Exploratory testing means the testing of software without any specific plans or schedules. This is a formal testing process where we don’t have any test cases or test planning documents to test the application. Instead, testers identify the functionality of an application by exploring the application, learning the application, and designing and executing the test plans according to their findings.
A lot of us might still think an exploratory approach is no match to a pre-planned and scripted approach in any situation, but let’s not forget, even an elaborately defined test script may leave a few implicit details to the discretion of the tester, which they will have to explore. In this view, nearly all testing performed by testers is exploratory to some degree and we all perform exploratory testing at one time or another, at least instinctively.
Exploratory testing is simultaneously learning, test design, and test execution. In other words, exploratory testing is any testing to the extent that the tester actively controls the design of the tests as those tests are performed, and then uses that information gained while testing to design new and better tests.
After studying Exploratory Testing, we can say that this type of testing can be extremely fruitful in finding elusive bugs that may not otherwise have been discovered until user acceptance testing.
The process of exploratory testing is all about discovery, investigation, and learning. This emphasizes the personal freedom and responsibility of the individual tester. Test cases are not created in advance; instead, testers open the application and start browsing it to find defects. They may note down ideas about what to test before test execution. The focus of exploratory testing is more on testing as a “thinking” activity. Exploratory testing is a hands-on approach in which testers are involved in minimum planning and maximum test execution. The process of exploratory testing is as shown below:
We can say Exploratory testing is just to explore a module or product on the basis of testing experience. Many times we faced a challenge where the requirement document is much less informative on that situation on which we started our testing on the basis of experience. Let’s look at some examples on the challenges that we have faced.
In exploratory testing, the quality of testing is completely dependent upon the tester’s skills of designing test cases and finding defects. The testing quality is also dependent upon the tester’s knowledge about the product and the different test methods.
Testers should possess the following skills:
Knowledge of Test Design
An exploratory tester should have knowledge about the test design technique which best suits the product so that the test cases will be capable of finding defects. To achieve this, an exploratory tester should possess skills like the usage of different tools, and the ability to evaluate risks, analyze the product, and think critically.
Excellent exploratory testers are more careful observers than beginners. Beginners or less experienced testers only observe what the functionality tells them, while an exploratory tester must look out for any unusual or mysterious behavior in the system.
Critical thinking is the kind of thinking that specifically looks for problems and mistakes. To be a good exploratory tester, you need to be a good critical thinker. Critically thinking testers save projects from dangerous assumptions and ultimately from disasters. Excellent exploratory testers should be able to review and explain their logic and look for errors in their own thinking.
Excellent exploratory testers produce more and better ideas than beginners. Exploratory testers use documents and thought processes such as guidelines, generic checklists, important indications, and rules of thumb.
Exploratory Testing tools are used as a part of the testing phase to automate certain tasks, improve testing efficiency, and discover issues that might be difficult to find using manual review alone. The section below illustrates a few exploratory testing tools.
Session Tester is an exploratory testing tool for managing and recording Session-Based Testing. It has a timer that limits test sessions to a particular length, and it provides an easy way to record session notes. Notes are stored in an XML format that can be converted to HTML, or be transformed into the desired format.
Test Studio helps to be more efficient in doing exploratory testing. It is an easy to use in-browser extension that allows teams members to send ideas and feedback or to report bugs directly from the application while browsing. Screenshots and annotations can be attached, and feedback via email can be shared, or can be exported to Word and PDF.
qTest explorer is an intelligent capture technology. It tracks user’s interactions with an application and uses that information to automatically create a detailed defect document. It supports the recording of a wide range of applications and technologies on the browser as well as desktop apps.
Microsoft Test Manager (MTM) helps you by records the actions a user performs as they work with their application. It also allows the user to record screenshots, comments, file attachments, audio narration and screen video. The recording makes it easier to trace any fault that the user might discover. The user can also store their actions as a test case, so that it is easy for them to replicate the test after the application is updated.
Exploratory Testing (ET) consists of a series of focused sessions where the tester is following a charter document that helps them test a specific product feature or area. ET should be a significant part of any team approach to overall quality strategy. It leverages testers’ skills and experience and frequently find bugs before customers find them. It is a supplement to, rather than a replacement of the manual, automated, performance, and load tests.