The meaning of word Ad-Hoc is something which is not in order or not organised or unstructured. Similarly when a software testing is performed without following any formal process like requirement documents, test plan , test cases, etc. it is said to be Adhoc Testing. While executing the ad-hoc testing there is NO formal process of testing which can be documented. Ad hoc Testing is also known as Random Testing or Monkey Testing
Adhoc Tests are done after formal testing is performed on the application. Testing is carried out with the knowledge of the tester and the tester tests randomly without following the specifications/requirements. Hence the success of Adhoc testing depends upon the capability of the tester, who carries out the test. Defects found using this method are hard to reproduce as there are no written test cases. Sometimes it can find holes or defects in the test strategy and can expose relationships between subsystems which would never have been found if written test cases existed.
The advantage of Ad-hoc testing is to check for the completeness of testing and find more defects than planned testing. The defect catching test cases are added as additional test cases to the planned test cases. Ad-hoc Testing saves lot of time as it doesn't require elaborate test planning , documentation and test case design.
When to execute Adhoc Testing?
Ad-hoc testing can be done at any point of time whether it’s beginning, middle or end of the project testing. Ad hoc testing can be performed when the time is very limited and detailed testing is required. Usually adhoc testing is performed after the formal test execution. Ad hoc testing will be effective only if the tester is having thorough knowledge of the System Under Test.
This testing can also be done when the time is very limited and detailed testing is required.
Forms of Adhoc Testing :
Buddy Testing:Two buddies, one from development team and one from test team sit together and work on that particular module to avoid from building the invalid test scenarios and help the tester from reporting the invalid defects. This kind of testing happens usually after completing the unit testing.
Pair Testing: Two testers are assigned the same modules and they share ideas and work on the same systems to find defects. One tester executes the tests while another tester records the notes on their findings. 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.
Monkey Testing: Testing is performed randomly, with some random data, without any test cases with the aim of breaking the system.
Difference between Buddy and Pair Testing
Buddy Testing is combination of Unit Testing and System Testing together with developers and testers but Pair Testing is done only with the testers with different knowledge levels. Experienced and non-experienced share their ideas and views with the tester.