No, prevention is not the same as (early) detection

As you may know, one of my pet peeves is the improper use of a term or concept as though it was a perfect synonym for another one, when actually it is not.
Just to give you a few examples of what I’m talking about, it might be:

  • Scrum for Agile1
  • checking for testing2
  • positive to a PCR test for infected with coronavirus and dangerously contagious3

The new trend, especially in the so-called Agile Testing community, is the worrying use of the verb to prevent as though it was just another way of saying to detect (earlier).

The natural consequence of these crossed wires is to present software testing as a means to prevent bugs.
Something that software testing is definitely not.

I guess what people usually mean when they say so is that (early) testing may help them prevent bugs from escaping into production.
They seem not to realize, though, that what testing may actually help them to do is to detect bugs earlier.

Do you think this is just a philosophical conundrum? An irrelevant nuance maybe? Not at all. A quite significant difference, I would actually say.

Think about it.
Even though periodical cancer screenings help detect —and hopefully fix—cancer as soon as possible, unfortunately, they do not prevent cancer4.
Similarly, when someone detects a bug somewhere (within the code, within the documentation, within the requirements, within the data, even within the test cases…), they are not preventing it.
After all, the bug was already there: just waiting for someone able to spot it.
In other words, if the bug wasn’t there in the first place, nobody would have been able to find it.

What’s more, in case you detect a bug but, whatever the reason, someone decides not to fix it, such bug would deliberately escape to production.
Which means, in this case also, testing would not have prevented the bug.

So, what’s this obsession with prevention instead of (earlier) detection?

According to my experience, the fact some people tend not to call things by their name may be due either to lack of (deep) knowledge about the corresponding topic or to the realization that the easiest products/concepts to sell have often nothing to do with the most reasonable thing to say or to do.

I wonder if this is what we need the most in software testing or, more in general, in our society…


My friend, and fellow tester, Ralph Fisher talks rants about this bad practice within the following blog post, for example.

2 Michael Bolton and James Bach have written and talked a lot about the difference between the two, being the following article probably their most comprehensive contribution to this cause.

3 More about this topic within A pandemic issue, an article of mine published on (p.17 of March 2021 issue of) Tea-time with Testers.

4 By the way, neither doing exercise nor having healthy habits are guarantee of not developing cancer. Now, thinking that they might help is usually relieving. The fact some athletes get cancer anyway, whereas some compulsive smokers peacefully die of old age in their bed, though, somehow tells us that we don’t actually know if they really help. Let alone prevent


"Delusional beast" by Matt From London
“Delusional beast” by Matt From London
is licensed under CC BY 2.0
my profile picture

Thanks for reading this article.
Feel free to recommend it or to add a comment.

Should you have any doubts about Software Testing, contact me: I will be glad to help you.

On the other hand, if you want to get notified about my blog posts, sign up through the BLOG > SUBSCRIBE TO THE BLOG NEWSLETTER menu.
Thank you.