What is Exploratory Testing?
“Exploratory testing” – as the name suggests, is a way to test the application by exploring it to find what does the application do, its features , what it does not do etc.
Exploratory testing requires no or minimal planning. Testers continuously make decision on his / her next step of action. We can say that in exploratory testing, test planning, analysis, design and test execution, are all done together and instantly. It completely depends upon the testers thought process. We all do some sort of an exploratory testing in our day to day life.
Sometimes this testing can be more beneficial than the formal testing approach and can find out really good defects which sometimes go unseen during formal testing. It is also called Adhoc testing. But I don’t like to use the word Adhoc as I feel it does not depict the true essence of exploratory testing.
There is a funny name given to exploratory testing called “Monkey Testing” :). If you observe a monkey in a zoo, you will see it jumps from one place to another place without following a pattern or any reason. In a similar fashion, in ET, the tester does not follows any pattern and just (navigates) jumps from one part of the application to another to see how it performs.
How exploratory testing is done?
There is no standard or pattern of doing this type of testing. As a general testing practice, a tester write test cases, create test data and then executes them. But in Exploratory testing, no test cases are written. Tester opens the application and just starts browsing it to identify defects.
As a tester we all do ET, the only thing is that we don’t know that we are doing it. The only result which you expect from ET is a defect report / defect log. Sometimes if you have used any special data to test, you can include that data in your test data sheet. Below are some tips / tricks that you can use in ET.
- Divide the application into modules and bifurcate modules into different pages. Start your exploratory testing from the pages. This will give the right coverage.
- Make a checklist of all the features and put a check mark when that is covered.
- Start with a basic scenario and then gradually enhance it to add more features to test it.
- Test all the input fields.
- Test for error message
- Test all the negative scenarios.
- Check the GUI against the standards.
- Check the integration of the application with other external applications.
- Check for complex business logics.
- Try to do the ethical hacking of the application.
Factors effecting exploratory testing
Factors which effect ET are as follows:
- – Objective of the project
- – Testing strategy
- – Testing goal of a particular phase
- – Available tools and facilities
- – Testers role and skills
- – Available time
- – Management support
- – Peer support
- – Available resources (study materials, test conditions etc)
- – Clients interest
- – Understandability of the product.
- – The UI of the application
- – Functionality of the application
- – Previous test results
- – Risks associated with the application
- – Previous defects
- – Recent changes
- – Types of data to use for testing
- – Type of user who will be using it
Instead of asking the testers what to run, we leave it to tester’s judgment to decide what they want to test and how they want to test.
Some special side of exploratory testing:
1. Requires different skills – The testers who do ET require having a good listening, reading, thinking and reporting skills. The testers need to be very rigorous and effective. Experience is needed because no scripts and test cases are provided. If guided and supervised in a correct way, even a no skilled tester can render good defects which were not anticipated in the scripts / test case.
2. Sometimes difficult to report a bug – Many a times it happens that we do a certain flow and suddenly encounter an anomaly, but we could not reproduce that. This is because we are not tracking the steps of the testing and it slips from our mind that what we have done to get that defect.
3. Can be done as recreation activity – I personally do ET when I want a break from my regular testing test execution and want to do some constructive testing. But this is just a perception. I have seen many teams who have ET as a separate phase of their testing activities.
4. Exploratory testing can be done for every phase – We can implement ET before the beginning of any testing phase. For example, you are in the start of functional testing phase, so before commencing on it, do an ET. This will serve 2 purposes; first, it will give you an insight of the application and second, it may render some good defect.
5. Rapid feedback – Exploratory testing requires rapid feedback on the issues faced and for any anomalies encountered.
6. Critical Thinking and diverse ideas – Exploratory testing requires critical thinking. Testers should be able to reproduce, review and express their ideas in a logical way. A tester can implement his / her experience in the various technologies and domains which they have worked upon, to evaluate the application and find the loopholes.
In case some good defects are found during exploratory testing, it is always recommended to document it and if possible try to include the test in the regression bed. During our day to day of testing routine, we sometimes develop a fixed mind set and stop thinking out of the box. We always focus to follow a definite process, and doing that we always start thinking in the same direction.
Exploratory testing in this case is very beneficial. It triggers the thought process and helps to just explore and test the application without following any rules. And nobody likes to follow rules any ways :)