Random Testing, Monkey Testing, or what we commonly called Ad Hoc Testing is a strategy of software testing without any plans and documentation. Without a formal procedure or expected results, the tests are conducted informally and randomly. On the other hand, it can be applied to earlier scientific experimental studies. The tests are supposed to be run only once unless a defect is discovered. The main aim of this testing is to find errors by random checking.
The tester improvises the steps and arbitrarily executes them (like a monkey typing while dancing). Though defects found using this method are more difficult to reproduce (since there are no written test cases), sometimes very interesting errors are found which would never have been found if written test cases existed and were strictly followed. This method is usually used during Acceptance Testing.
The Need for Ad Hoc Testing
It is executed through an on the spot process on which the tester seeks to find bugs by any means that seem appropriate. Ad hoc testing can be seen as a light version of error guessing, which itself is a light version of exploratory.
Who Performs Ad Hoc Testing?
The testers who perform this testing should have an excellent and in-depth knowledge of the product or application. When testers execute ad-hoc test, they only intend to break the system without following any process, or without having any particular use case in mind.
When to Apply Ad Hoc Testing
Ad-hoc test can be done at any point in 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 minimal and detailed testing is required.
When not to apply ad hoc testing?
There are a few cases when ad-hoc testing should not be done:
- Ad-hoc test should NOT be carried out during Beta testing of the software by the clients or customers.
- Ad-hoc test 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 test gives freedom to the tester to apply their own new ways of testing the application. This helps them to find out more number of defects compared to the formal testing process. 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.