In the world of testing, a number of different test methods are available. The most used solution is the structured test method. But this is not all. In my project, I had a discussion about the difference between explorative testing and ad-hoc testing. Is there a difference and when should I use either solution?
Explorative testing is not as “easy” as expected
Explorative testing is an experience based test method. And this is the most misunderstood topic. Experience is very important. If you have no testing expert with the correct know how, he isn’t able to test explorative. The other important topic is test case creation. Many don’t know that test case creation is one of the end results of testing in an explorative way.
It is an informal test design procedure whilst testing – and the information we get while testing – to create proper and maybe better test cases. For this it is necessary that the expected behaviour is known or general behaviour (for example a login mask) is clear.
The result of such a test are not only bugs and a feeling for the quality, additionally we now have test cases which corresponds to the real system. In the traditional way test cases are sometimes outdated before they are executed for the first time.
Ad-hoc testing more than only a bad sound
If I recommend ad-hoc testing, most people aren’t very happy about it. It sounds like trial and error or a test that isn’t meaningful, but this isn’t in each case correct. This method is an informal method. No test preparation and no recognized test design technique are needed. There are no expected test results before testing and while testing, it is more than less improvised. It is a little bit like an arbitrarily test execution.
But why we should use it? The answer is easy: you don’t need so much experience as for explorative testing and execution is quicker, because you don’t need to document a test case (not before testing and not while testing).
Here I explain it with the example of a login mask. Everybody knows how it works and it is not necessary to document the test cases here. You can executed the positive test case for a successfully login. You can test later with a false login name, password and so on. With the ad-hoc testing technique you are finished with all tests earlier than with explorative testing, for which you need to record each test case.
Good test experts needed
The biggest problem for both techniques is, that you need the correct tester. On the one hand the test expert should have plenty of experience (in the project or in testing as such) and on the other hand the test expert should be able to see when each technique is the correct technique. Explorative and ad-hoc testing should only be executed by the correct persons, if a wrong person executes the tests it is possible that errors will not be found and some tests aren’t executed.
This is no surprise and is similar for traditional techniques. But you have there the option to split the persons for test case creation and execution. Here it is the same phase and one person.
Both techniques have simple differences that most people don’t see and so say both techniques are explorative testing. The distinction is not big but is relevant and underlines the expected outcome of a test. After an explorative test you are able to execute the same test cases later with a not so much experienced person. For ad-hoc testing this isn’t possible, because you have no new test cases as a result. If needed a small discussion in your team is helpful before you start with either one of the test methods.