Ad Hoc Testing: Uncover Software Defects by Breaking the Testing Process

Gamma Arieska
DSF Web Services Engineering
6 min readJan 4, 2022

Software testing is a process to evaluate the functionality of the developed software application, with an intention to identify any defects, in order to produce qualified products which meet the requirements and the expectations of the developers. There are tons of testing methods and tools to do the testing. Let’s focus on a method called Ad Hoc Testing.

Cover image by DSF Web Services

What is Ad Hoc Testing?

Ad Hoc Testing is an informal or unstructured software testing type that aims at breaking the testing process in order to find possible defects or errors at an early possible stage.

Ad hoc testing is also referred to as Random Testing or Monkey Testing. It is conducted randomly. It is the least formal type of testing that does NOT use structured approach and it usually involves an unplanned activity that does not follow any documentation and test design techniques to create test cases.

The main objective of ad hoc testing is to find defects by conducting a random checking. It can be achieved by using a software testing technique called Error Guessing. It is usually conducted by experienced people who are able to “guess” the most likely source of errors. The success of ad hoc testing depends on the capability of the testers, because they have to find the defects without having any proper planning and documentation or solely based on their intuition.

When to Execute and to Avoid Ad Hoc Testing?

Ad hoc testing is one of the quickest testing processes. It is appropriate for any project with limited resources within the testing team. It can avoid overburdened. It is also helpful when there’s no time for doing elaborative and formal testing . In these cases, ad hoc testing would be beneficial and becomes an effective solution.

Ad hoc testing is also appropriate to do after running a formal test. This testing type will be great for finding errors that have been missed in other types of testing. Since ad hoc testing is unstructured and random, it can be done at any time during the development process. It gives a good flexibility for the testing team.

When do we need to avoid ad hoc testing? The main reason to avoid this testing type is that the testers do not have in-depth knowledge about the testing system or application. You can’t run an ad hoc testing if your testers aren’t 100% clued up on the system. So, if you can’t find these ‘experts,’ it’s best to give it a pass.

Why It is Worthy to Use Ad Hoc Testing?

The best thing about using ad hoc testing is that it is an unstructured- informal approach that will make the QA department becomes more creative with the testing process. With little to no preparation or documentation required, testers can work more flexibly and look at the application from a new angle. This provides more chances for discovery, enabling testers to find bugs and errors they might have missed in the more formal testing methods.

Types of Ad Hoc testing

There are different types of ad hoc testing and they are listed as below:

  1. Buddy Testing

Two buddies mutually work on identifying defects in the same module. Mostly one person will be from the development team and another will be from the testing team. Buddy testing helps the testers to develop better test cases, while the development team can also make early design changes. This testing usually happens after unit testing completion.

2. Pair Testing

Two testers are assigned modules, share ideas and work on the same machines to find defects. One person can execute the tests and another person can take notes on the findings. Roles of the persons can be a tester and scriber during testing.

3. Monkey Testing

Randomly test the product or application without test cases with a goal to break the system down.

Tips and Best Practices for Ad Hoc Testing

Following best practices can ensure effective ad hoc testing. Here I try to summarize some best practices that you might implied:

1. Upskill and build knowledge

It’s true that only experienced testers can take on ad hoc testing, but that doesn’t mean it’s completely inaccessible. Upskill and build knowledge within the entire testing team, so everyone can gain the skills and knowledge to perform an ad hoc test. Get existing ad hoc testers to share their expertise with other testers, whether in-person or via video tutorials.

2. Identify defects and bugs prone areas

Save time and expose the most serious defects and bugs first by doing a bit of digging into your current application and system. Ad hoc testing might be unstructured, but putting in a little bit of prep isn’t a crime! Analyze your system and where defects seem to crop up most, so you can focus your ad hoc testing on that particular part of your application. The more often you do this, the better you’ll understand your system and the places where issues pop up the most.

3. Make a note of all the defects encountered

Whenever the tester encounters a problem or error, be sure to jot it down so they can come back to it and remedy it as soon as possible. Since Ad hoc testing isn’t planned for, it’s easy to sometimes forget what the tester has encountered. So, making a note of it ensures the tester has a point of reference and will help you write better bug reports.

The Advantages & Disadvantages of doing Ad Hoc Testing

Although this seems to be an unusual and unstructured testing process, there are several advantages of doing the ad hoc testing:

  1. Ad hoc testing is able to identify any errors that would usually go unnoticed during formal testing methods. This can save a lot of time as it requires none of the planning that structured testing does.
  2. It provides an opportunity for discovery, allowing the tester to find missing cases and scenarios which has been missed in test case writing.
  3. The tester can really immerse him/her in the role of the end-user, performing tests in the absence of any boundaries or preconceived ideas.
  4. Since no documentation is required, it frees up time for the tester to focus all of their energy on the test execution and possible solutions

The disadvantages of doing ad hoc testing:

  1. Ad hoc testing does not guarantee that all errors will be found. The success of ad hoc testing relies on the skill and knowledge of the tester.
  2. As this type of testing does not follow a structured way of testing and no documentation is mandatory, the tester has to remember all scenarios. So it will be more difficult for the tester to reproduce an error because the tester will need to remember the exact steps he/she took to get there.
  3. Little to no accountability, since Ad hoc testing doesn’t have any required documentation, it can be challenging to map how much has been invested into a test. It also means unearthing bugs could take much longer than expected.

Conclusion

There are so many different types of software testing methodologies out there makes it sometimes easy to forget about ad hoc testing. We can run through our application and think we have spotted all the bugs and errors, when in actual fact, there’s still a few hiding under the radar.

Ad hoc testing may seem a little different from the formal methods we were used to, but this is what makes it so unique and beneficial to developers and QA engineering teams. It’s a chance to give the testing team a flexibility and a freedom to execute tests on their own terms, increasing their creative and critical thinking skills as they navigate the testing system without a formal plan.

However, there are a few best practices and top tips that testing teams can put into place before running an Ad hoc test to ensure maximum efficiency. Ad hoc testing might be different (and it’s certainly not a great fit in every situation) but it’s a great way for QA teams to ensure they have a high quality app at the time of release.

--

--