In many IT communities, it is thought that exploratory testing is a simple task for Junior testers and that such work doesn’t require great technical and practical skills. But it’s not true.Exploratory testing is a very important stage of software testing, that has its own methods and techniques.
In today’s article, we’ll analyze this type of software testing, that helps to catch most bugs and system errors.
The concept and main features of exploratory testing
So exploratory testing entails simultaneous test creation, promotion until they will be completely executed and correction of statuses and content, depending on system behavior of software that is being released.
This type of testing has several features that distinguish it from script-based testing (testing, based on the developed test scripts).
Let’s analyze them in detail:
- Flexibility. When a QA tester is performing exploratory testing, he/she doesn’t need to prepare them beforehand, he/she just needs to learn the basics of implementation of the future functionality and then execute tests on the basis of previous relevant experience;
- Simultaneity. Exploratory testing allows simultaneous test planning, creation, and implementation. A quality assurance department studies the peculiarities of certain software and gets experience for future tests while testing;
- A possibility of an instant start. You can start testing software right after receiving such a task from management. A task has been received so tests are ready to be executed. You don’t need to spend time on test case creation, updating, or approving anything with other project team members (a development department or management department).
What is session-based exploratory testing?
This approach was first suggested by James and John Bach in the early 2000. The name of the approach explains the meaning of such testing — software testing is performed between so-called sessions, that are limited in time.
When you start this type of testing, you should find all functional parts of a product, namely software components.
Then you should decompose software, divide it into components, create mind maps.
You should start testing from inspecting software basics: whether it works at all (executing a so-called “zero test”).
After that, you should define a testing session of the entire software. It will be a charter or target of testing.
Next, you should approve the time needed for every testing session with every project team member.
According to John Bach, the time needed for a session shouldn’t exceed 1.5 hours.
Benefits of a session-based approach:
- Testing is performed according to an established schedule;
- Testing is completely predictable;
- Prioritization of testing;
- During testing, all engaged members of a project group can change their experience and acquire new skills;
- Testing software on the basis of artifacts.
When is exploratory testing mandatory?
- When a project group is very limited in time and can’t allow test writing;
- When you have experts that can execute complete software testing efficiently;
- When technical changes can happen on a project (exploratory testing is a flexible software testing method).
Instead of conclusion
Of course, exploratory testing is not a cure-all for software testing and we recommend combining it with script testing.
Such testing strategies will help not only to assess software quality but work smoothly with future implementation of all established test cases and also cover the entire functionality with up-to-date checklists.