What is it?
Exploratory Testing is an approach to manual testing where the tester learns, designs and executes tests in tandem.
This differs from traditional test cases where the tester plans out a test case and then follows a script robotically. Traditional test cases are checks: methodically checking to ensure software meets specs, acceptance criteria, outlined functionality etc.
There is cognitive engagement in Exploratory Testing. It is the difference between ensuring all of the functional parts of the car work v.s. how a human will actually use and interact with that car in real world situations.
A good example of this is gas v.s. electric vehicles. Drivers are accustomed to creep/kick-down of an automatic gearbox on a gas vehicle. These are not native to electric vehicles, yet automakers spend quite a bit of expense on developing ways to have electric vehicles mimic gas counterparts.
There is no need for this extra expense - other than the human habits, relationship, and interaction with the vehicle.
Why do I need it?
If a team were developing an electric vehicle, the focus on new tech, functionality, tools, efficiency, etc. might not catch nuances such as the user expecting a previous gas vehicle to begin slowing down when letting up on the gas pedal. In fact, the user might not realise that expectation either, as it is perhaps second nature and subconscious.
What then are the risks of that expectation whilst driving an electric vehicle that does not slow down when letting up the “gas” pedal, but instead continues at the same speed? The risks of course would be many accidents. So, rather than having humans relearn how to operate the electric vehicle, the decision was made to mimic its predecessor.
In software development, we often have a vision of how the user will use and interact with the platform. Even polished functionality and a workflow that the team understands fully might not translate well once end users start using it. Even small examples like slow connectivity, dropped connections, frustrated multi-clicking, user habits, etc. can frustrate or halt a user and their workflow.
Exploratory Testing can be focussed on catching these possible issues with human interaction. It can give you a better overview and understanding of how to create something that is more intuitive, and less risky for your users to use and want to continue using.