Exploratory testing is often described as simultaneous learning, test design and test execution. It’s about exploring application in all possible ways. Testers do not work on the basis of previously created test cases. It “emphasises personal freedom and responsibility” in testing as its tested by individual testers with minimum planning and maximum test execution. It does not use any specific test design, plan or approach. It is an important part of manual testing. Exploratory Testing is widely used in Agile models. Exploratory testing is often thought of as a black box testing technique. Adhoc Testing and Exploratory Testing is the important testing types.
Why Exploratory Testing is important?
When Exploratory testing is not done there is an increased chance of missing significant functional issues and small details that users will notice. This type of testing can detect unusual and weird bugs that might have missed or are more difficult to find during structured testing. Most software quality testing uses scripted testing/structured approach, at first test cases are designed and later proceed with test execution. Exploratory testing is a simultaneous process where test design and test execution all done at the same time which provides quick and early feedback at the early stages of development and helps to uncover a broad variety of bugs. It saves execution time and enhance skill and flexibility as there are no rules attached to exploratory testing.
Who Performs Exploratory Testing?
Exploratory testing is usually performed by skilled testers for validating critical application that requires early iteration. Exploratory testing allows to think outside the box and come up with use cases that might not be covered in a test case. The bugs found under unusual conditions by testers during exploration may be one disregarded by the developers. Even developers, designers, and any other stakeholders in a project can perform exploratory testing since it does not require a script.
How to do Exploratory Testing?
This is accomplished through step-by-step process of performing Exploratory Testing also called session-based test management (SBTM Cycle):
Classify the Bugs
- Categorize common types of bugs found in the past projects. Use Bug Severity and Bug Priority for categorization
- Analyse the root cause of these bugs.
- Find the risks and develop ideas to test the application.
Create a Test Charter
- The Test Charter should include:
- what to test
- how it can be tested
- What needs to be looked
- Describes starting point of exploration testing.
- Define how the end user could use the system
Create a time box
- Two testers work together for a specific amount of time (usually 90 minutes).
- Interruptions do not occur in those 90 minutes session.
- Timebox can be extended or reduced by 45 minutes.
- This session encourages testers to react to the response of the application and prepare for the correct outcome.
Review the results
- Evaluate the defects.
- Learn from the test.
- Analysis of coverage areas.
- Compile the output results.
- Compare the results with the charter.
- Check whether any additional testing is needed.
When to use Exploratory Testing?
- Exploratory testing can be used extensively when Early iteration is required, when teams don’t have much time to structure the tests.
- It can be done when you have limited time to test.
- Exploratory testing can be implemented when the testing team has the experienced testers
- Done then There is a critical application.
- New testers entered into the team.
- In the early stages of Software development life cycle when the code undergoes rapid changes and can also be executed as a final check before you release your product into the market.
- It can be useful to find new test scenarios to enhance the test coverage.
Importance of Exploratory Testing?
Exploratory testers think outside these preconceived notions, allowing them to explore the program or system and discover defects that other testers might’ve missed.
- Exploratory testing catches more defects than automated – Smarter exploratory testing finds more errors in less time.
- Exploratory testing Enhances Skills & Flexibility – There are no rules attached to exploratory testing so it enhances testers skills in creating new testcases. It also allows testers to be flexible in accommodating the requirement changes and executing tests with challenging deadlines.
- It Helps to Share Domain Knowledge– Better to pair up the testers for effective testing.
- Saving Time for Execution – exploratory testing does follow elaborate testing.
Example of Exploratory Testing
Assume that somebody is driving a car to a place in a new area without a map. The person driving the car will employ various strategies to reach the place, including:
- Obtaining a map of the area
- Traveling in a random direction to find the location
- Calling up and asking a friend for direction
- Asking for directions by going to a nearby petrol station
Exploratory Testing Tools
Below are some of the best exploratory testing tools and extensions which help to automate the testing process, collaborate with teams and create reports with ease.
- Bug Magnet– Bug Magnet is an open-source and free web-based testing tool extensible on Chrome and Firefox
- Exploratory Testing– it is a chrome extension with features that make web exploratory testing easier. This extension report bugs, ideas, notes, and questions easily.
- qTest Explorer- Tricentis qTest is easy to use, scalable test management solution. it allows you to capture exploratory testing sessions and record user interactions automatically
- Azure Test Plans- Azure Test Plans is a manual and exploratory testing tool kit which helps to improve code quality for your apps.
- TestRail – TestRail is a highly comprehensive web-based testing tool that has a modern and user-friendly interface
Ad hoc Testing
What is Ad hoc Testing?
Ad hoc testing is an informal or unstructured software testing which is performed informally and randomly after completing the formal testing is to find out any loophole in the system. Ad hoc testing is also known as Monkey testing and Gorilla testing. Error Guessing technique is followed. Without any proper planning and documentation tester has to find defect solely by his intuitions.
Types of ad hoc testing:
- Buddy Testing- Two buddies, one from development team and one from test team mutually work on same module to find bugs
- Pair testing- two buddies from the testing team can be assigned to test the same module
- Monkey Testing- tester test the application or system by giving random inputs and checking the application behaviour.
Why do we need to perform Ad hoc Testing?
Ad hoc helps in identifying errors that would usually go unnoticed during formal testing methods and helps to save time. As ad hoc testing checks randomly, when the product which is to be released in market can apply ad hoc testing because customer never uses the application in sequence/systematically. checking the product in an unstructured, informal way as users do since they don’t know how to use the application, they may use it randomly and find some issues to cover this we do one round of Ad hoc testing.
Who Perform AdHoc testing?
Ad hoc testing can be done by testers, developers or any other team members i.e. anyone with strong knowledge of the software under test. It does not follow any requirements for test, it randomly creates test case through error guessing and executing them. In buddy testing developers and testers work together to conduct test. A Pair of QA testers do pair testing whereas monkey testing is done by a QA alone
How to Perform Ad Hoc Testing?
Ad hoc testing doesn’t follow a specific plan as it is unstructured so there is no right or wrong way to execute. It can be achieved with Error Guessing testing technique. Even though there is no specific plan for test it’s good to Make sure you’ve got knowledgeable testers in order to block loopholes that would otherwise have been missed.
When to Execute Ad hoc Testing?
Ad hoc testing can be performed when there is limited time to do elaborative testing. Ad-hoc testing can be done at any point of time whether it’s beginning, middle or end of the project testing but usually performed after the formal execution of tests. If the time permits then ad hoc testing will check all the negative scenarios. Ad hoc testing will be effective only if the tester has in-depth knowledge about the System Under Test.
It’s done when there are no clear test cases to test the product. It can be done may in the midst of software development.
Importance of Ad hoc Testing
- It is beneficial when there is less time and an elaborative testing of the module is required.
- It can improve the quality of the testing process .
- It requires lesser level of preparation and cost.
- Tester can focus more on features of the module while testing rather than preparing document since it is unstructured unplanned form of testing.
- As the testers can test the application in their own ways helps in finding many numbers of bugs as compared to the actual testing process.
Tools used for Ad hoc Testing
There are no specific tools for Ad hoc testing, tools which are already being used to test the application can be used. Some of them are
- Selenium– it is an open-source framework who wants to adopt Ad hoc testing. It allows cross browser testing as well
- Cucumber– It is another Ad hoc testing tool that enables Behaviour Driven Development.
- QTP– Quick Test Professional -Another Ad hoc testing tool, for running automated tests to find any flaws, faults, or gaps that deviate from the application’s intended results.
Difference between Adhoc Testing vs Exploratory Testing
Following is a list of differences between both terms:
|Should learning the application first and then carrying out the actual testing process||testing the application first and then understanding it through exploration|
|There is no need for any kind of documentation||Documentation is mandatory to ensure the quality the details of the testing is required|
|It concentrates on perfection of the testing||It emphasizes learning the application.|
|It works on negative testing mostly||It works with positive scenarios|
|There is no time limit||It is a time boxed method|
|It is an independent testing type||It is a type of Adhoc testing|
|Testing starts after all the data is collected to perform the testing||Data gathering and testing occur simultaneously during exploration testing|
|Helps to find innovative ideas from the research||Helps to develop the application|
|Execute by the software testing engineer||Always needed to be done by the expert|
|The tester’s creativity and intuition will determine this||It depends on the tester’s curiosity and perception|
I hope you get to know about why, when and how to do Adhoc and Exploratory Testing. You can provide your feedback if you have any doubts in the comment box.