Ad-hoc Testing

Ad-hoc Testing is a software testing in which the testing is performed arbitrarily at any part of the software, without following any formal procedure of testing. The main aim of this kind of testing is to check whether the sub-modules, functions, and codes are working and are capable of handling all sorts of process.


We shall be more clear and precise about how Ad-hoc testing is performed, despite the fact that there is no procedural way to carry out such testing.

There are many tester-made approaches which can be followed while carrying out this kind of testing, which in fact makes easier to carry out the tests.

Ad-hoc Testing is important when the testing has been carried out, but the strength of individual modules and functions are not checked or analyzed. This is done either after the integration testing or system testing.

There are companies and critics who are against Ad-hoc testing and do not follow ad-hoc as a part of the software development process.

However, the majority of the software manufactures or testers are aware of the importance of Ad-hoc Testing and are using this testing as a core task of the entire software development. There are some problems which can only be sorted through Ad-hoc Testing.

The beauty of this kind of testing lies in the fact that it can be carried out, on some of the modules or functionalities which are not even completed and cannot produce the integrated output required. However, this testing can be equally important and can be applied to completed modules to get better results.

There are different techniques which makes this testing an important one. Those are- error guessing, expert's prediction, software analyst's judgment, etc. Since there are no specific rules and procedures which are required to carry out such type of testing, therefore, the mentioned ways are are only ways.

To perform this kind of testing, the testers are required to have good expertise and experience, as they are the one who has to develop the test cases, set-up the test scenario and perform the test.

Usually there are different teams who can perform the Ad-hoc Testing, however, small companies prefer to distribute the tasks, so that the test can also be carried out individually by developers and testers with different levels of expertise.

There are few points to note while understanding the Ad-hoc Testing:
  • Ad-hoc Testing can only be performed by the developer and the tester after the system testing is completed. However, in some cases, the testing is performed at the time of software development.
  • Ad-hoc Testing can be carried out by professionals only who have knowledge of debugging of the same types of software or similar kind of software.
  • Ad-hoc Testing is done mainly with the aim to check all possible ways that can be applied to the software to break its security, consistency, atomicity and rolling back properties of the software.
  • Ad-hoc testing can figure out bugs and errors which are very harder to troubleshoot or inspect by the formal processes of testing.
  • Ad-hoc Testing can be iterated again and again once there are bugs and can be stopped only when there are no possible cases of errors or bugs founds.
  • Ad-hoc Testing can be sometimes so helpful, as there are no formal procedures, and so the tester is free to apply all possible test cases, except the test cases which contains bugs and errors.
  • Ad-hoc Testing should be performed only by the professional who is having a good and complete knowledge of the product.
  • Ad-hoc testing should be avoided to the possible extent before the system or at least the integration testing.
  • Ad-hoc Testing is a pure black-box approach and if the white box approach is applied, that may cause a disaster, because performing a code analysis to a software or a system arbitrarily is not an acceptable approach.

Steps for Interface Testing

Types of Ad-hoc Testing

There are different types of Adhoc-Testing, which are approaches based on many types of researches that are made in the software testing industry. As there is no formal rule, which can be applied in Adhoc-Testing. Therefore, it is necessary to create at least some types which suit the best in this context:

Buddy Testing:

In this type of testing, there are two persons who work as buddies. They work on the same module, function or same part of the software. One person of this team belongs to the development team and the other person belongs to the testing team.


As they work mutually together on the same modules, there are chances to find bugs or errors more easily. Since two persons have a totally different perspective, as they belong to a different team, therefore the test case which is developed is better and more diverse.

This testing is usually is carried after the completion of the unit testing. However, can be done after completion of any modules in the unit level, integration level or any level of software development.

Pair Testing:

In this testing, two different persons belonging to the development team are dedicated to the same module or unit. The strategy followed here is that one person who is a tester will perform the test and the other person who is also a tester will record the test performed.


This strategy can be reversed and thus the test and recording can be performed alternatively by different persons. The advantage of this approach is that both the persons are involved in testing as well as recording.

Monkey Testing:

In monkey testing, the testing is carried out arbitrarily in any part of the software. Monkey testing is the most informal way to carry out an Ad-hoc Test. However, there are numerous advantages in monkey testing, as the main aim of this test is to break the system by choosing to test any part of the software.


In this testing, the random behavior of the system is checked by making input and checking whether the output is a desired one.

Steps of Retesting

Ad-hoc Testing Approaches

There are some approaches by which the testing can be carried out more accurately and efficiently. As this is an informal type of testing, therefore, there we should follow some approaches which may make this testing a better choice. They are:

Better Preparation:

Better preparation means before the testing is carried out, the testing scenario should be prepared. Let us understand clearly. We may collect the test case and test report of a similar kind of software. This will help us to know where the error/defect density is more.

In case, we don't find a similar kind of software, we may still match some of the modules with other, if exits, then we may collect those test reports and use in our rest to predict defects. This approach mainly aimed at performing the test, with ease and a prediction report in hand.

Creating a Blue Print:

Before starting a test, the tester should be clear enough what he/she is going to DO and what NOT. This is true that an accurate plan or steps cannot be written down or predicted, before the test, but at least the tester should have loose planning which can track the progress of the test and help select the test case.

Though not 100% accurate, it should contain at least all the details that should be covered in testing.

Divide the Application:

As we know the Ad-hoc Testing is an informal kind of testing. Therefore when the Ad-hoc Testing principles are applied into the whole software, then the chance of finding defects lessen and that of messing up increases.

The idea behind to sort out this problem is to divide the problem into smaller parts on which the arbitrary testing techniques can be applied well. The smaller the testing part, the more is the chance of detecting the defect.

In this approach, we try to figure out whether similar kinds of modules are existing which have always been tested and the report is generated earlier. This kind of reports can be collected and the people involved in those tests can be hired for the current test. This will make the process much clear and easy.

Selecting the critical modules:

In this process, the most critical and important modules are checked at first. The idea behind this is, that when the Ad-hoc testing techniques are applied to the software, the modules which are strong and secure remains the main target which enhances the troubleshooting capability of testing.

Using Simulator:

In this approach, the testing is carried out using a simulator. The benefit of using simulator is that there are no incorrect queries or syntax in the test case, as the simulator is also a software.

As we know, Ad-hoc testing is non-procedural, and thus a simulator is of great help of getting rid of test case error at least.

Expert's Judgement:

In this approach, some of the experts are hired from different places who are engaged with different projects of similar kind or having previous experience of testing and handling similar kind of softwares.

Therefore, when the Ad-hoc testing approaches are applied to the testing, then more accurate and more beneficial results can be found out. This also helps in reducing the time, effort and cost which are required to arrange the test case when designing the software.

All Pairs Testing

When Ad-hoc Testing

This is very clear that we have many steps of formal testing and the software has to pass through different phases of testing and analysis. But one might be having a question inside his/her mind that way to perform this kind of informal testing, which has explained and also when to perform Ad-hoc Testing.

We shall be more clear in this aspect, that when to perform Ad-hoc Testing. Let us see below:

  • Ad-hoc Testing can be performed usually after the system testing is done.
  • Ad-hoc Testing can be performed at a time when formal testing is making good results, but there is a doubt that the software must be having a defect which has not been figured out in formal testing.
  • Ad-hoc Testing can be advised by experts and experienced personnel from the team which is developing a similar kind of software. This is done as the expert is confident about the defect that must be present in the software and thus can the time and effort can be saved.
  • Ad-hoc Testing can be carried out when the software needs to be very secure. This is done because of the main goal of the Ad-hoc Testing, which is trying to break the atomic, security, availability and other properties of the system. The idea is that multiple people are able to apply their way to break the system, which is good.

Basis Path Testing

Examples of Ad-hoc Testing

  • Getting into the source code of the webpage when it is open in the browser and try to copy the code in some other editor and open that page through the browser. This will check whether the original page opens, it yes, that means that the log-in credentials are stored somehow in the page itself, meaning not secure.
  • Trying to log in multiple times with the wrong credentials and check whether the system approves it after so many trials. This may happen if, the primary key is exhausted and the password or ID is matched with an empty table in the database, which in return will create a session, and the log-in may become possible.

There are different examples of Ad-hoc Testing. Ad-hoc testing is mainly carried out when something tricky things are to be checked which could not be checked during the formal testing phases.


Advantages of Ad-hoc Testing

  • In Ad-hoc Testing, different people are involved with different backgrounds of software testing. This enables the testing process to be diverse and more testing aspects can be covered which makes the software more efficient.
  • Ad-hoc Testing can be carried out at any time of the software development life cycle.
  • Ad-hoc Testing can figure out those defects which are overlooked by the system testing or any of the formal testings.
  • Ad-hoc Testing is very useful when there is no time to carry out formal testing and the expert's guess in a definite area may be helpful to carry out small yet value testing.
  • Ad-hoc -Testing is a real challenge to the system, as it is carried out to break the system's normal properties.

Defect Life Cycle

Disadvantages of Ad-hoc Testing

  • There are no records which are maintained during the test, and so no reference can be made later in if required.
  • All the developers are testers are allowed to test the software, which may be a wastage of time and money if the people involved are not professional at all.
  • No procedure is followed in this type of testing and so the person new to this kind of testing cannot carry out a simple test.
  • People with no experience cannot carry our this test professionally as guess can be made by testers who have tested similar kind of softwares and not someone who just entered into the field of testing. Therefore, the cost of experienced professionals is to be borne.
  • Ad-hoc Testing can be carried out on completed modules only.
Comment / Suggestion Section
Point our Mistakes and Post Your Suggestions