The main purpose of testing is to deliver a high-quality product to the customer. To ensure the product is a quality product, testers carry over various types of testing. In this article, we are going to discuss a new type of testing called “Adhoc Testing”.
Testing an application randomly by using logical or illogical scenarios and check whether the application has any bugs or not is called the Adhoc testing. It is a free form of testing.
The word “Adhoc” means something which is not in an order or not organized. Similarly, the Adhoc testing is also not structured and performed in an informal way.
Adhoc testing is mainly for negative testing and this testing procedure doesn’t have any formal documentation. Tester should test the developed application the way he or she wants, but the intend should always be finding the bugs to provide a bug free application.
Why does a Tester perform Adhoc Testing?
- To find the shortcomings/bugs in the application.
- to test the implicit requirements of the customer.
- to discover the defects not found by following the formal testing process.
- To discover as many bugs as possible
Examples of Adhoc Testing:
1.Requirement for Facebook login: If the user enters correct username and password details, the user needs to be redirected to their respective home page.
Adhoc Scenario for the above requirement:
Create two user accounts (User A, User B) in Facebook. Login as User A and access home page of the User A. Copy the browser URL (Home page URL of User A) and make a note of it. Then logout as User A. Login as User B and access home page of the User B. Remove the browser URL (Home page URL of User B), paste the User A home page URL and click on enter. Validate what happens?
- If the user is presented with the login page and system is prompting the user for Username and Password, then the system is working as expected.
- If the user is presented with the User A home page details, then it is a bug.
2. Requirement for Facebook spam identification: The user is identified as spam if his/her friend request is rejected by more people (Rejection percentage is more than the acceptance percentage of the his/her friend requests). The spam user should be restricted to send the friend request for next 180 days.
Adhoc Scenario for the above requirement:
Create a fake account in face book and send friend request to more people. Friend request gets rejected by many people. The face book server identifies the user as spam user. Now, try to send the friend request. Face book server throws the message as “You can’t send friend request for the next 180 days” in Pop-up window. Click on “Ok”. Then try to send the same friend request again. The server will show the message again. Click on “Ok” again. Repeat the process of sending the request multiple times. At certain point, request is sent to the user successfully. By doing continuously and clicking ok for many times, in Continuous 180th click, request is sent successfully. There is no need to find these types of bugs, but such issues can be discovered during the Adhoc testing.
3. Requirement for file attachment in form: User can upload jpeg, jpg, png files in form.
Adhoc Scenarios for the above requirement:
Scenario 1: Try to upload ‘.JPEG’, ‘.JPG’, ‘.PNG’ extension files in form. Validate what happens?
- If the system allows the user to upload ‘.JPEG’, ‘.JPG’, ‘.PNG’ extension files in form, then it is working as expected.
- If the system throws error as “Invalid file type”, then it is a bug.
Scenario 2: Create a word document for testing purpose. Rename the word document by adding “.jpg” at last in the file name. Try to upload that word file in the form. Validate what happens?
- If the system throws error as “Invalid file type”, then it is working as expected.
- If the system uploads the word file by considering the word file as .jpg file based on the file name, then it is a bug.
When does a tester need to execute Adhoc Testing?
- Whenever the tester has some free time / system down time, the Adhoc testing is done.
- If the testers find any Adhoc scenarios while doing formal test execution, the testers note those scenarios separately. Testers will resume and execute those Adhoc scenarios after completion of the formal testing.
When does the tester not to execute Adhoc Testing?
- Ad-hoc testing 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 testing should not be carried out while beta testing of the software by the clients or customers.
- When there is a very small enhancement in the system (Simple UI screen changes), it doesn’t require Adhoc testing. Traditional positive and negative testing should be enough there to bring out maximum defects.
Types of Adhoc Testing:
Adhoc testing is classified into three types:
In this type of testing, one tester and one developer work together on the same module once the developer completes the unit testing on the module. This kind of testing enables the feature to be viewed in a broader scope for both tester and developer. The developer will gain a perspective of all different tests the tester runs, and the tester will gain a perspective of how the inherent design is made– which will help him/her avoid designing invalid test scenarios, thereby preventing invalid defects.
In this type of testing, two testers work together on a module with the same test setup shared between them. The idea behind this type of testing is to have the two testers brainstorm ideas and methods to discover a greater number of defects. Both can share the work of testing and make necessary documentation of all observations made.
In this type of testing, the testers randomly test the product or application without test cases with a goal to break the system. This testing helps us to discover some new bugs which might not have been caught earlier.
Characteristics of Ad-hoc testing:
- Ad-hoc testing is done after the completion of the formal testing on the application or product.
- This testing is performed with the aim to break the application without following any process.
- The testers executing the ad-hoc testing should have thorough knowledge on the product.
- The bugs found during ad-hoc testing exposes the loopholes of the testing process followed.
- Ad-hoc testing can be executed only once until and unless a defect is found–which requires retesting.
Skills required to do Adhoc testing:
- Deep knowledge on the product
- Real time experience on the application
- Prioritizing features
- Rough planning
- Documentation of observations and recording defects.
How does Adhoc testing differ from Exploratory Testing?
Both Adhoc and Exploratory testing are informal type of testing, but we have some differences between them.
- Exploratory testing is done based on the experience of the tester on the Application, and it is a form of positive testing to ensure the product is bug free. Adhoc Testing is done by executing the random scenarios and it is a form of negative testing which ensures the perfection of the testing.
- Exploratory form of testing is quite formal in nature, but Adhoc testing is a pure informal one which is carried out after formal testing.
Advantages of Adhoc testing:
- Ad-hoc testing gives the freedom to the tester to apply their own, new ways of testing the application and helps them to find out a greater number of defects compared to the formal testing process.
- This type of testing can be done at any time anywhere in the Software Development Life cycle (SDLC)without following any formal 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.
- Ad-hoc testing proves to be very beneficial when there is less time and in-depth testing of the feature is required. This helps in delivering the feature with qualityand on time.
- Ad-hoc testing can be simultaneously executed with the other types of testing which helps in finding more bugs in lesser time.
- In this type of testing the documentation is not necessary — which helps the tester to do the focused testing of the feature or application without worrying about the formal documentation.
Disadvantages of Ad-hoc testing:
- Since Adhoc testing is done without any planning and in unstructured way; so, recreation of bugs sometime becomes a big trouble.
- The test scenarios executed during the ad-hoc testing are not documented; so, the tester must keep all the scenarios in their mind which he/she might not be able to recollect in future.
- Adhoc testing is very much dependent on the skilled tester who has thorough knowledge of the product; it cannot be done by any new tester of the team.
Adhoc testing helps the tester deliver a high-quality product to the end-user. While doing this testing, testers behave like an end user and test the application. Adhoc testing will be effective only if the tester is knowledgeable about the system under test.