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 plan and test cases. Its main aim is to discover software issues that have been missed during a traditional and formal testing processes. 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 testing cycle.
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
There are three types / forms of Ad-hoc testing:
- 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 preparation of any test case.
- Pair testing is performed by two QA specialists of different knowledge level. 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 maximum number of test scenarios.
- Buddy testing is executed by tester and developer working together on the verification of one module. Buddy testing is conducted after unit testing. Developer helps 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
- Untypical approach to quality verification helps to detect 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 Software Development Life Cycle (SDLC).
Despite being rather effective approach for quality verification, Ad-hoc testing has several drawbacks that may affect the results of testing procedure.
Disadvantages of Ad-hoc testing
- As ad-hoc testing does not require documentation, tester has to keep all the details of test scenario in memory. This complicates bug reproduction.
- It is difficult to count time and effort spent on testing procedure and evaluate its outcome.
- Testers should know well the specifics of software under test as their competence defines effectiveness of QA activities.
Best practices to use
To ensure 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.