Wednesday, 21 October 2015

Ad-hoc testing

Ad-hoc testing is unscripted random software testing method or testing types. Ad-hoc testing is also known as Expert testing. Ad-hoc testing is sometimes mixed up with other testing types such as exploratory testing, monkey testing and negative testing. Ideally it is performed only once unless there are some defects in application or system. Ad-hoc testing is effective testing technique and is done without any formal test plan, test cases, procedures or documentation.In structured testing, while testing any application or software, testers have to follow a certain scenario for executing test cases. But in Ad-hoc testing, there are not any specific scenarios or test cases for execution. Tester is allowed to execute any scenario or test case to explore the system or application.
Ad-hoc testing can be accomplished with the testing technique called "Error Guessing". Error guessing can be done by the tester having abundant experience on the system to "guess" the most likely source of errors.Ad-hoc testing is performed based on knowledge and experience of tester about the system being tested. Experienced testers can find many defects through ad-hoc testing as they know the common scenarios which cause the defects in application or software. Testers are allowed to improvise the test to find additional defects. The objective of ad-hoc testing is to break the system’s functionality and find defects in the application.
When to perform Ad-hoc testing?
Ad-hoc testing is least formal testing method with the goal of finding defects with any means possible.Ad-hoc testing can be performed anytime in the beginning, middle or towards the end of STLC. It is performed when there is limited time to do elaborates testing. It is usually performed after the formal test execution.
Ad-hoc testing examples:
  1. Navigating through the work flow and using browser "Back" button to ensure user is correctly being navigated to the correct page that the user previously visited.
  2. Saving a form twice for the same action.  For example, if user was to register a user on a website after filling the required fields, click on the Register button multiple times and then check the database to see if multiple records or single record get created.
  3. Cross-browser testing. For more testing coverage, we have to perform testing on variety of browsers/OS, the more chances of finding defects.
  4. Trying to enter and save data that is outside the provided range or boundary values.
  5. Concurrent transactions or actions that do the exact same steps of a given functionality by using 2 different sessions on different machines.  For example, if an application requires tester to create a table name that is unique; how will it handle if you were to try to create a table with the same name on two distinct sessions? Validating to eliminate redundancy or duplicate data caused by concurrent transaction.
  6. How will the system will perform when Java Script option is disabled? System should allow user to successfully operate the site using both Java Script enabled and disabled in Internet explorer, Chrome,Firebox,Safari.
  7. Copying the current browser session URL and pasting it in another browser or editing the values in the URL to gain access to certain events that user normally would not be able to do it via User Interface. An URL which is being used by an unauthenticated or unauthorized user should be handled elegantly without exposing or violating security.
Types of Ad-hoc testing:
  1. Buddy Testing:Two buddies, each one from development and testing team respectively work mutually on application or software to find the defects in same piece of module. Buddy testing helps the development team to make design level changes early and helps testing team to develop better suite of test cases. It is usually performed after successful completion of unit testing.
  2. Pair Testing:It works on four eyes principle (two-man rule or the two-person rule).The word pair stands for twosome or couple. Two testers are assigned to perform testing on same piece of module to find defects. They share the ideas and work. They can divide the work such as one can perform the testing whereas other can make a note of findings or defects.Its effectiveness depends upon the ability, integrity and persistence of the individuals involved.
  3. Monkey Testing:Testing is performed in a random fashion without any test cases with an objective to break the application or system.
  1. Not bounded to specific test scenarios or test cases
  2. Effective when there is a time limitation for testing the system or application under test
  3. It Provides quick results
  4. Testers can find more defects than formal testing techniques
  5. Helps to increase code coverage benefits
  1. Lack of documentation
  2. Unstructured or unorganized testing
  3. No reference documents to guide to testers
  4. Possibility of not covering of major functionality
  5. Need skilled testers to perform testing

No comments:

Post a Comment