What is Ad-hoc testing? Types, Advantages and Disadvantages

The meaning of word Ad-hoc is something which is not in order or not organised or unstructured. In the similar note the Ad-hoc testing is nothing but a type of black box testing or behavioural testing which is carried out without following any formal process like requirement documents, test plan, test cases, etc. Similarly while executing the ad-hoc testing there is NO formal process of testing which can be documented.

Ad-hoc testing is usually done to discover the issues or defects which cannot be found by following the formal process. The testers who perform this testing should have a very good and in-depth knowledge of the product or application. When testers execute ad-hoc testing they only intend to break the system without following any process or without having any particular use case in mind.

Characteristics of Ad-hoc testing

  1. Ad-hoc testing is done after the completion of the formal testing on the application or product.
  2. This testing is performed with the aim to break the application without following any process.
  3. The testers executing the ad-hoc testing should have thorough knowledge on the product.
  4. The bugs found during ad-hoc testing exposes the loopholes of the testing process followed.
  5. Ad-hoc testing can be executed only once until and unless a defect is found which requires retesting.

When Ad-hoc testing can be done?

Now, the question which may come to your mind is when we should do ad-hoc testing?

To answer this I can say that the Ad-hoc testing can be done at any point of time whether it’s beginning, middle or end of the project testing. This can be done only when the testers are having complete knowledge of the product.  This testing can also be done when the time is very limited and detailed testing is required.

 When Ad-hoc testing should NOT be done?

The decision of when not to execute the ad-hoc testing can be taken by the experienced and skilled tester. Even though there are few cases when ad-hoc testing should not be done:

  • Ad-hoc testing is not required when there is already an existing bug for the test case. In such cases the bug should be reported and it should be retested once it is fixed.
  • Ad-hoc testing should NOT be carried out while Beta testing of the software by the clients or customers.

What are the types of Ad-hoc testing?

Basically there are three types of Ad-hoc testing. They are:

   – Buddy testing: This type of testing is done by the developer and the tester who are responsible for that particular module delivery. In this type of testing the developer and tester will sit together and work on that particular module in order to avoid from building the invalid scenarios which also in other hand help the tester from reporting the invalid defects.

   -Pair testing: In this type of testing two testers work together on one module. They basically divide the testing scenarios between them. The aim of this type of testing is to come up with maximum testing scenarios so that the entire module should have complete test coverage. Post testing the entire module together they can also document their test scenarios and observations.

   –Monkey testing: In this type of testing some random tests are executed with some random data with the aim of breaking the system. This testing helps us to discover some new bugs which might not be caught earlier.

Advantages or benefits of Ad-hoc testing:

Below are few of the advantages or benefits related to the Ad-hoc testing:

  1. Ad-hoc testing gives freedom to the tester to apply their own new ways of testing the application which helps them to find out more number of defects compared to the formal testing process.
  2. This type of testing can be done at anytime anywhere in the Software Development Life cycle (SDLC) without following any formal process.
  3. This type of testing is not only limited to the testing team but this can also be done by the developer while developing their module which helps them to code in a better way.
  4. Ad-hoc testing proves to be very beneficial when there is less time and in-depth testing of the feature is required. This helps in delivering the feature with quality and on time.
  5. Ad-hoc testing can be simultaneously executed with the other types of testing which helps in finding more bugs in lesser time.
  6. In this type of testing the documentation is not necessary which helps the tester to do the focused testing of the feature or application without worrying about the formal documentation.

Disadvantages of Ad-hoc testing:

  1. Since ad-hoc testing is done without any planning and in unstructured way so recreation of bugs sometime becomes a big trouble.
  2. The test scenarios executed during the ad-hoc testing are not documented so the tester has to keep all the scenarios in their mind which he/she might not be able to recollect in future.
  3. Ad-hoc testing is very much dependent on the skilled tester who has thorough knowledge of the product it cannot be done by any new joiner of the team.

Best practices while executing ad-hoc testing:

If ad-hoc testing is not executed in the proper manner then it can result in total loss of time and effort. Below are few pointers to keep in mind as where and how to apply this ad-hoc testing:

  1. Good knowledge on the product:

    The tester who is going to execute the ad-hoc testing should have a very good knowledge of the product. He should be very well aware with all the features in the product. This helps the tester in error guessing and finding the maximum number of bugs from the defect prone areas.

  2. Prioritizing feature:

    When ad-hoc testing is to be done for the multiple features then the testers should first categorize and prioritize the features. Features which are highly used by the customers should be tested first so that if any priority bug exists in the feature can be reported and fixed early.

  3. Rough planning:

    Although there is no need of any documentation in ad-hoc testing as stated earlier but noting down the pointers to be tested during this testing will help the tester to remember all the possible areas for testing. This helps in having the maximum test coverage in lesser time.

  4. Usage of Tools:

    Sometimes during testing there are bugs or exceptions found in logs which are not seen in the UI or which is not obstructing the testing in any way. Such kind of bugs can also be of high severity. In order to catch such kind of bugs or exceptions we need to use tools like debuggers, profilers or task monitors.

  5. Documentation of observations:

    Even though the ad-hoc testing does not support documentation but it’s always better to write a note in brief about your testing, findings, deviations. If defects are found then the relevant test case should be created so that it will help the tester to retest the scenario in future.