Cem Kaner once said: “A test (case) is a question you ask of the program. The point of running the test is to gain information (e.g. whether the program will pass or fail the test).”
A test must be capable of uncovering information, which means that testing is always a search for information. This means that “testing” describes the entire process required to reach that initial question that you are asking a program (and all other follow-up questions). Once you have the question, finding the answer is just a matter of checking.
Every testing endeavor must ultimately result in a check. Once you have something to check, you then need to decide if you want to repeatedly perform this check manually (manual checking) or automatically (automated checking). By this logic, you can only check something after you have tested it. After all, you can’t start looking for the answer until after you have formulated the question.
Testing requires thinking, but checking doesn’t (it requires processing instead). Exploratory testing isn’t something you do – it’s much more a way you think. It’s a mindset you adopt as you get to know an application, and determine which questions you should ask of it. All exploratory testing is testing, not checking. And all true testing is ultimately exploratory in nature. This also means that exploratory testing is any testing that machines can’t yet do, because machines just check – not think.
What I am trying to say is that the term “exploratory testing” is completely useless. The testing community introduced the term “exploratory testing” solely because the term “manual testing” was already out there. However, manual testing is actually manual checking—which is not testing at all!
If we had the luxury of starting all over again, it would make a lot more sense to use the term “testing” to refer to all creative testing, then apply the terms “automated” and “manual” only when we’re talking about checking.
At Tricentis, we value testing (as in, creative, critical, intellectually engaged thinking about a program) over checking. It is one of our top 5 Agile principles. It is better to have a tester who can look at a requirement and figure out what needs to be tested, than a “tester” who can code but has no clue how to truly test something.
There is no such a thing as manual/automated testing. There is only manual/automated checking. All true testing is exploratory in nature, so the term “exploratory testing” is essentially redundant.
To get a taste of the power of Exploratory Testing, try the new Exploratory Testing for Jira plug-in for free.