Adhoc Testing is an informal way of testing, which is done randomly without any plan & strategies, with the intent to break in to the system/software. Usually, it does not involve any test strategies, documentation & plan. Mostly, "error guessing technique" is favoured by the testers having good knowledge of the system under the test.
Tester must have in-depth knowledge of the system to make accurate guesses. Here, skills of a tester work as a tool for carrying out the testing. It is better to perform this type of testing, only after the execution of formal testing, depending upon the time available thereafter.
Features of Adhoc Testing:
Ad-hoc Testing is an important testing technique, wherein testers think from the perspective of the users and perform testing beyond the test plan boundaries. This may results into invention of undefined sets of scenarios and cases which may not be included in the "test strategy".
During adhoc testing, a tester may try to cover all the scenarios, but it is highly possible that he/she might end up, missing some of them.
Testers may execute similar cases multiple times, repeatedly regardless of important functionalities and aspects of the system which may left untouched and is not being tested at all.
Test strategy & plans are important for this type of testing.
Ad hoc testing is performed on the software after the completion of the formal testing.
It can be executed only once, unless there is a requirement of retest.
To perform this testing, the testers should have in-depth knowledge of the product/application.
This testing is performed without any strategy & plans, which makes replicating the defects based on assumed & invented sets of scenarios and cases, extremely difficult.
Different Types of Adhoc Testing:
To help testers identify and find defects accurately, ad-hoc testing involves various kind of tests, which are described in detail below:
Buddy Testing: - As the name suggests, in this type of testing there are two members, a tester and a developer, chosen to work on the same module. This allows the features to be viewed in a broader scope by both parties. The developer gains a perspective of all tests run by the tester and the tester too gets an insight of the inherent design, which helps them avoid designing invalid scenarios as well as prevents defects.
Pair Testing: - Similar to Buddy testing, two testers work together on a module with the same test setup shared between them. The idea behind this testing is to have the two testers brainstorm ideas and methods to detect more defects and to get best results. Get more information on "pair testing" here.
Monkey Testing: - This testing is mainly performed at the unit testing level. Mostly this technique is done automatically where the tester tests the application by providing completely random inputs to ensure that the system is able to withstand any crashes as well as to check its behaviour. Get complete information on "monkey testing": here.
Adhoc Testing Advantages:
From helping the testing team perform thorough testing to ensuring the effectiveness and quality of the product, ad-hoc testing is an integral part of "software testing life cycle (STLC)". Other advantages offered by ad-hoc testing are:
The biggest advantage of Ad-hoc testing is that a tester can find more number of defects than in traditional testing because of the various innovative methods they can apply to test the software.
This form of testing can be applied anywhere in the SDLC as it is not only limited to the testing team. Ad-hoc Testing can also be used by developers as it enables them to code better and also predict the problems that may occur in the future.
Ad-hoc Testing can be coupled with other types of testing to get best results which can sometimes cut short the time needed for the regular testing. This enables the tester to generate better quality test cases and ensure better quality of the product on the whole.
In cases when there is not a lot of time available for testing, Ad-hoc testing can prove to be a very valuable in terms of test coverage and quality.
Another major advantage of Adhoc Testing is that it does not mandate any documentation to be done which prevents extra burden on the tester. Using this testing, a tester can concentrate on actually understanding the underlying architecture.
Informal way of testing, with the motive to break into the system.
Lesser time duration, due to non-involvement of testing strategies and cases.
Enables testers to make use of their skills, knowledge and years of experience gained, to think beyond the limits, to come up with suitable testing scenarios.
Error guessing is a common activity in this testing.
Inclusion of proper test strategy and cases may provide effective results.
Effective test cases, evolved during this type of testing, could be added to planned cases, as supplementary test cases.
Adhoc Testing Disadvantages:-
Even though there are several advantages of Ad-hoc Testing, one cannot ignore its few drawbacks.
As the testing is carried out, in an unorganized way, it is not possible to trace the tests.
The time-period, for performing this type of testing, is not known.
May leads to repetition of test cases, thereby, results into wastage of the time.
This type of testing may ends up, without touching few or more essential functionalities.
Adhoc Testing :Best Practices
The process of ad-hoc testing can be made even more effective by adopting the following steps:
Preparation before Testing: Since this testing aims at finding defects through random approach, without any documentation, defects will not be mapped to test cases. Therefore, preparation and planning before testing is essential to avoid problems while testing.
Good Knowledge of the Product: Testers should have a good knowledge of the product and a clear understanding of the requirements. Detailed information of the product as well as the application will allow more accurate detection of defects.
Get Defect Prone Areas Identified: It is a known fact that there can be certain features in a software which are more prone to errors than the other. Hence, before testing the software or an application, the tester should go ahead and check features v/s defects opened
Create Test Categories: After checking the features that needs to be tested the tester should categorize those features and the test. Using categorizing would help touch upon several aspects of the tests that may or may not cause defects during testing.
Important to Have a Rough Plan of the Testing:Even though Ad-hoc testing does not require any planning, it is still better to have some rough points jotted down on how to plan and execute the test.
Using Tools like Profilers, Debuggers or Even Task Monitor: By using tools like profilers, debuggers or even task monitor a tester can get assistance in finding bugs and defects while testing a software or an application and make the process quicker.
Documenting or Keeping a Track of the Finding: Documentation simplifies and improves the process of testing. Hence, it is best to have small notes or references of all the different scenarios and steps covered and to record the defects for the particular test feature category.
Targeting critical functionalities.
Adhoc testing is an informal type of testing that consist of various advantages that benefit the tester and allows him to detect inconsistencies and get the best test results in limited period of time. This is one testing technique that guarantees to cater to and satisfy a tester’s creativity to the maximum. There is no limit to being innovative and the tester ends up getting more information as well as knowledgeable. Also, Ad-hoc Testing saves ample of time as it does not require elaborate test planning, documentation and test case design. Hence, through Ad-hoc Testing, one can check for the completeness of testing and find more defect than planned testing.