What is exploratory testing?
        As the name correctly says exploratory testing means explore and test system under test . But there is a significant difference between exploratory testing and ad hoc testing. We do follow a clear attack plan while doing exploratory testing but ad hoc testing is just ad hoc, test whatever you like or want to.

Why exploratory testing needed?
        We cannot replace formal scripted testing with exploratory testing. We can enhance scripted testing with this. Typically this can be applied whenever there is a need for example if particular feature is more buggy, if a new feature is introduced, lots of bug fixes happened in a particular feature etc. to get a quick feedback about the system under test.Since test cases are designed on the fly this technique is more likely to uncover critical/important bugs. Also provides learning opportunity to the user while doing testing and finding bugs.

When to do exploratory testing?
         One good thing about exploratory testing is same can be performed at any time during the development or testing cycles.

How to do exploratory testing?
  1.  Decide the attack plan - make sure only one attack plan is attempted for one exploratory testing session
  2.  Decide the resources  - team of 4 to 5 testers are ideal for exploratory testing. 
  3.  Book a room at least for 90 minutes. No one should interrupt the exploratory testing team during this.
  4. Arrange necessary software/hardware setup needed for testing so that team can start testing as soon as possible.
  5. No phone calls, email checking during testing allowed. Testers should be provided with pen and paper to note down the observations.
  6. Test anything coming into your mind (considering the requirements  - you should not test something not supported or not in attack plan) . Just test the software as if you are a end customer of the same.
  7. After session time out, discuss your observations and prepare a final test of issues to be reported.
  8. One person can take the responsibility to make a formal report out of this testing session.
How to prepare exploratory test report:
     Simple excel report on the observations can be helpful for the management/development team  to take further actions on the issues/observations found. A typical exploratory testing report should contain the following details:

  1. Attack plan/scope of testing
  2. Release information
  3. Testers involved
  4. List of new issues observed
  5. List of existing issues observed
  6. List of test cases designed during testing session with pass/fail details
  7. Hang/crash data observed
  8. Anything important about the release under test, you like to highlight