Why Do We Test?

To find out where we are

First what comes to mind is that when testing, we want to find out where we are. Different people have different mental models of the product, of what it does or doesn’t do, how it does it, etc. Testing is then performed to find out more about how the reality looks like.

Because we don’t like surprises

A poorly tested product increases the chances that there’ll be surprises, usually not positive ones, later on. I think it’s far better to be surprised when there’s still time to change things, than putting ourselves under pressure when a customer finds a bug in production.

Because we don’t want our customers to do our job

Customers can obviously help with some testing, for example during beta testing. That can be useful. I’d, however, not rely on this as the primary means of getting feedback about the product. People are not that good at sharing feedback, hunting for problems in a product, or reporting those problems. All these reasons decrease the chances that we’ll even get the feedback.

It is a responsible thing to do

Perhaps not a reason for everyone, but I personally like to do things because I feel it’s the right thing to do. Testing software seems like the right thing to do.

To break the product

I actually get a tiny bit offended when someone suggest I like breaking software. No. I’m actually not that evil. I like when our products work and are highly desired by our customers. I get a product, I test it, and I share what I’ve found. Nowhere in this is anything about me changing the product in order to break it.

To increase quality

I guess this will be controversial to many (it was on LinkedIn in the past :)). First of all, quality is a complex thing, it’s likely something else to different people at different times. I think the best assessment of quality is having meaningful conversations and feedback loops with our customers. Anyway, I also say that testing itself doesn’t increase quality. Because testing doesn’t change the product. Development does. We test to find where we stand, then if we are not happy with that, we do more development to change things for the better.

To ensure or assure quality

Another controversial one :) Again, there’s the problem with quality in the first place. Then I don’t think that ensuring something in a complex environment with a complex product is possible. That would mean to try every scenario, change every variable (not in the programming sense), test with every possible customer, etc. That is not feasible. I like to say something along the lines: “I can’t find more (meaningful) problems now” instead. That speaks about myself so I can take responsibility for this, but I certainly cannot take responsibility for ensuring quality.

--

--

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store