Mysticism Around Testing
In recent months, it’s been hard for me to follow what some other testers have to say about testing. I find a lot of online content imprecise or wrong in a way that it gives wrong ideas about testing.
One example from a few days ago. I went to watch a video on youtube about testing. It was in Czech so I will not bother you with it.
In summary, it went something like this:
Person 1: … so let’s talk about experience-based testing techniques…
Person 2: yeah, so we have exploratory testing, error guessing, and …
Ok, I watched for another minute and then turned it off.
Let’s see what I don’t like about it.
First of all, I’m not a big fan of testing categorization. Testing is, to me, a way to find problems with a product. I make use of every possible skill, tool, process, person, or anything I know and can make use of to achieve that mission. I do not start by saying something like: “Ok, let’s see what testing technique I can apply here… hm… possibly error guessing.” What would it even mean? Does’t every tester imagine problems, what could go wrong when testing, or even before testing? Does it then mean that testers domostly error guessing?
Then there’s the thing with exploratory testing. The conversation in the video continued something like this:
Exploratory testing is when a tester applies their experience when testing…
Hm… Well, yes, but the question is if this is ever not the case(?) Would I ever be in a state of mind where I’d tell myself: “Ok, Pavel, enough with your experience, let’s leave it at the door and just do something else today.” It just sounds ridiculous to me. It’s simply always the case that the testers, all people in fact, apply their experience to problems they need to deal with. And it’s almost always a good thing (apart from cases when it introduces some sort of bias, but that’s more about how to be aware of that and control it).
Furthermore, every testing is exploratory to some degree. No matter what the final product of your testing is. Even if the final product is a bunch of unit checks, you still had to explore bits and pieces here and there.
There are various examples like these. Itmakes me a bit sad that many people don’t understand what testing can deliver and perhaps how testers operate.
Another really evil misconception about testing goes something like this:
We test in order to check that the product works.
No, not really.
Testing is not a demonstration that the product can work. That’s done a lot by developers — they write unit checks that check that the product can reasonably work under some conditions. When the checks run green, the devs can have some confidence in what they built. But it does not mean that the product works — there is a big difference between works and can work.
Testing should always emphasise the focus on finding problems. Testers find information they can bring to other people so that they, or we as the dev team, can decide if we have built something we wanted to build.
What else?
Ok, last bit:
Testing improves the product/quality/tho whole universe.
No.
Testing finds problems, it brings information that we can use to improve the product. The link between testing and product improvement is not direct. It’s ideally there, but not always.
I have experienced situations like this: I found a bug, I shared my findings with others. And it was decided we would not fix it. Hence the testing happened but the product remained the same. How can you say then that testing improves the product?
That’s it :D I can really go on and on. I myself used some of these phrases in the past but fortunately grew out of it. I hope that people in general, and especially testers, will learn to be a bit more careful with their words. Because if we are not, how can other people know what testing can do for them?