The Fundamentals of Ad-hoc Testing

Ad-hoc testing is an approach to software quality verification that does not have any formal process and requires no documentation including test plans and test cases. Its main aim is to discover software issues that have been missed during a traditional and formal testing process. Sometimes it is called random testing.

In case of limited time and thorough testing required, Ad-hoc testing is conducted. It is recommended to perform this type of software verification after formal testing. But also, Ad-hoc testing can be done at any stage of the testing cycle.

The ad-hoc testing approach is not applicable if a bug is already detected. Then it should be documented and retested. Also, Ad-hoc testing should not be done during beta testing conducted by customers or clients.

Types of Ad-hoc testing

ad hoc testing

There are three types/forms of Ad-hoc testing:

  1. Monkey testing is conducted at the level of unit testing. The main purpose is to make sure that software is able to withstand crashes. Testers are trying to detect system breaks by inputting random data. Monkey testing does not require the preparation of any test case.
  2. Pair testing is performed by two QA specialists of different knowledge levels. They are working together on the same functionality or system module. One of them executes tests while another one records results. Both testers make suggestions on approaches and methods to apply. The main aim of pair testing is to ensure the maximum number of test scenarios.
  3. Buddy testing is executed by the tester and developer working together on the verification of one module. Buddy testing is conducted after unit testing. The developer helps the tester to avoid invalid test scenarios and to report invalid test results. Buddy testing can be called a combination of unit and system testing.

Advantages of Ad-hoc testing

  • An untypical approach to quality verification helps to detect a bigger number of bugs in comparison to traditional testing.
  • Not only testers but developers as well can perform ad-hoc testing.
  • It does not require any obligatory documentation.
  • Ad-hoc testing has no formal procedure or algorithm.
  • It can be executed at any stage of the Software Development Life Cycle (SDLC).

Despite being a rather effective approach for quality verification, Ad-hoc testing has several drawbacks that may affect the results of the testing procedure.

Disadvantages of Ad-hoc testing

  • As ad-hoc testing does not require documentation, the tester has to keep all the details of the test scenario in memory. This complicates bug reproduction.
  • It is difficult to count the time and effort spent on testing procedures and evaluate their outcome.
  • Testers should know well the specifics of software under test as their competence defines the effectiveness of QA activities.

Best practices to use

To ensure the high effectiveness of Ad-hoc testing, the following practices should be applied:

  • identification of software areas that are more prone to bugs
  • prioritization of system functions and categories
  • preparation of a rough plan without any details
  • usage of tools for debugging and task monitoring
  • brief noting of test scenarios and actual results.