Guide to Adhoc Testing?
What is Adhoc Testing?
Adhoc 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.
Testers need to think from users-perspective to 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, but as this testing is done without any strategy & plans, it will be difficult to replicate the defects based on assumed & invented sets of scenarios and cases.
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. The fact cannot be neglected that the tester 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. Thus, it may be concluded that test strategy & plans are important, even for this type of testing. Although, it is not guaranteed to explore all bugs by using proper testing strategy, but quantity will be much lesser in comparison to those found through this informal way of testing.
Different Types of Adhoc Testing:-
- 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 informationon monkey testing here.
Advantages Of Adhoc Testing:-
- 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.
Disadvantages of Adhoc Testing:-
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.
Ways to Make Adhoc testing Effective:-
- 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.