Exploratory Testing: A Detailed Guide
Shreya Bose, Technical Content Writer at BrowserStack - February 13, 2020
What is Exploratory Testing?
In exploratory testing, testers do not work on the basis of previously created test cases. They check a system without a plan in mind in order to discover bugs that users may face when navigating a website or app without a specific aim or direction in mind.
Essentially, exploratory testing tries to mimic the personal freedom and choices of individual end-users. It is all about discovery, investigation, and curiosity. It is a simultaneous process in which testers go through the software of their own accord to get a sense of the quality of the user experience it provides.
Exploratory testing involves minimal planning. Testers create a test idea to have a sense of what they are looking for and start exploring the software. Testers make spontaneous decisions of what features and actions to test, thus reflecting the individual interests of end-users.
For example, developers of a shopping website know what it is meant to do. Let users select products of their choice, move it to cart, pay and confirm their order. Exploratory testing helps verify that the system is working as expected, but also that it is an easy and pleasant process for users. It lets testers ensure that extra features (payment through rewards points, ordering products for trial purposes) work flawlessly.
Stages of Exploratory Testing
1. Classify the Bugs
- Categorize the commonly detected bugs in similar software
- Analyze and record the root cause of such bugs
- Develop test scenarios to test for these bugs
2. Create Test Charter
The Test Charter should include:
- What features to test?
- How to test it?
- What bugs to look for?
- What metrics to keep in mind while testing?
3. Time Box
The point of the Time Box is for testers to test and respond to system responses. It involves the following steps in a particular slot.
- Testers work on the tests outlined above for a specific amount of time (usually 90 minutes)
- This time should be without interruptions
- If necessary, the timebox can be extended or reduced (depending on test progression)
4. Review Results
- Catalog the identified bugs
- Evaluate the defects
- Note down the learnings
- Compile the output results
- Compare actual results with expected results in the test charter
- Decide whether additional testing is required
Helpful Tips for Exploratory Testing
- Divide the software into modules for easier testing and more effective test coverage.
- Make a checklist of all features to be tested so that none of them are missed out. Read top 5 questions in a software testing checklist
- Start with testing basic user scenarios. Expand it as testing progresses by adding more features to the test.
- Check the GUI against the standards in the test charter.
- The mission of an exploratory test session should be clear
- Keep a record of what needs to be tested, why and how to assess its quality
- Keep a record of issues raised during the tests
- Pair up testers for effective testing
- Create as much documentation as possible
- Run multiple tests, if possible, for maximum test coverage
Types of Exploratory Testing
1. Freestyle Exploratory Testing
Think of this as exploratory testing with an ad-hoc approach. In this format, there are no rules, structure, organization. Testers go through the application quickly, mainly to verify the work of other testers, investigate a particular bug defect, or do a quick smoke test.
2. Scenario-based Exploratory Testing
This form of exploratory testing is based on real user scenarios. Testers take each scenario and then explore the software in all possible ways to match that scenario. The point here is to test as many scenarios as possible to provide maximum test coverage.
3. Strategy-based Exploratory Testing
This is usually assigned to testers who are already familiar with the software being tested. It includes boundary value analysis, equivalence technique and risk-based technique to identify more challenging bugs.
Advantages of Exploratory Testing in Agile Development
- It provides quick and early feedback at the early stages of development.
- It helps to uncover a broad variety of bugs.
- Developers, testers, designers and any other stakeholders in a project can perform exploratory testing since it does not require a script.
- During the Iterative coding of an application, exploratory testing is ideal for testing new features while automation testing focuses on regression testing and backward compatibility testing.
- If project requirements are unstable, exploratory testing is perfect for testing new requirements within limited timeframes. This is because the emphasis here is on quick and usable results.
Qualities of an Exploratory Tester
Every exploratory tester should possess the following qualities:
- Should have the intuition to realize how end-users think, and explore software from that perspective.
- Remember, exploratory tests have no scripts. The tester should have significant domain experience so they don’t need to have every step outlined for them.
- Should be active at expanding test coverage. This means they should proactively keep testing more features with every round of testing.
- Should be able to review and express ideas in a logical way. Exploratory testing requires critical thinking and significant domain expertise.
Best Practices for Exploratory Testing
- Understand the customer: All software testing is about checking the quality of a product so that it provides maximum user satisfaction. For effective exploratory testing, understanding the customer’s viewpoint is integral. In fact, exploratory testing only makes sense if done from the customer’s viewpoint.
But remember, it is not one customer’s viewpoint that needs to be understood. It is multiple. End-users navigate the same software in different ways based on their age, gender, economic status, preferences, and other factors. Testers must be able to use approach the software from all those users’ mindsets.
- Use real browsers and devices: Customers will use the software on real devices. So, run exploratory tests on real devices. No emulator or simulator can provide real user conditions to test on. If testers cannot access an in-house lab (which usually involves high financial investment to create and maintain), opt for a cloud-based testing service.
BrowserStack provides exactly that in the form of 2000+ real browsers and devices hosted on the cloud for both manual and automated testing. This cloud Selenium grid can be accessed from anywhere, anytime. Simply sign up, login and start testing for free.
- Know the competitors: By knowing what works and what doesn’t work for competitors, testers will know which bugs to look out for. Of course, this needs to begin from the development stages. When a tester knows that users of a particular competing app often complain about the clunky design of the cart function, they can be mindful to test the cart and ensure the same problem does not occur in the app they are testing.
Exploratory Testing is a significant part of every software testing process. It is best done manually since it intends to judge software in terms of the user’s outlook. When done correctly every step of the way, it becomes instrumental in ensuring that a website or app is at par with users’ expectations. Factor it into the test lifecycle, and roll out software that gives users exactly what they want.