In the efforts to reorganize the cellar, some software community people are trying to fill old wine in new bottles. I wrote about “Shift” a couple of days back, and I feel like writing about “Exploratory Testing” again today, because I saw an article which denied that “Exploratory Testing” is spot-checking but a rigorous investigative practice, and also shared characteristics of “Exploratory Testing” as exploratory testing definition. Being in Software Testing, I am always inclined to look at things that are being said carefully, and to take ideas that are worthwhile and reject ones that are just hype. Let’s consider what was said in that article in this blog.
That article on Exploratory Testing talks about three key characteristics, in their view:
- Tests are executed immediately
- Test Design and Execution are inseparable
- Freedom and Responsibility for individual testers
If we take the case of tests being executed immediately, even before the word ‘Agile’ was coined, testers have got builds with new features and fixes, often on a daily basis, in which they executed the tests. These are internal builds and these would not reach the customers. I wonder what is the difference between these and tests getting executed immediately. I don’t see any difference.
I find it odd when someone says Test Design and Execution are inseparable. When test design is done, it is conveyed in test scenarios and test cases (for the sake of having repeatability in case of a need in the future, and for the sake of automating them). Obviously, test design exercise got to be separate from execution. For testing to happen, there should be at least some high level expectations of how the software should behave. If there are no such expectations noted down, then it is not testing, but just exploring and learning to see how the software works. Without expectations set, it would not be possible for the test engineer to go to the developer and share the result of that exercise on what to expect, and if there is a conflict, how to resolve it. So, how then can it be called ‘Exploratory Testing‘ ?
Freedom and responsibility being available for testers in an Agile environment – makes me imagine mental images of testers being in shackles in non-Agile environments. Obviously, this was not true and was not happening. In organisations with good culture and best practices, testers have the freedom and responsibility to work with anyone involved in the product life cycle and raise issues. Understandably, that may not the case in organisations with bad culture. But does that mean we don’t have companies with best practices in a non-Agile environment?
We should all be very careful in bringing in keywords for already existing practices. Because that action confuses the testing community. That attempt in the article to share Exploratory Testing definition is one such action.
For implementing Software Testing best practices, feel free to write to me.