Definition of working

Definition of working

When can we say that something is working? If one endpoint is working can we say everything is working? or is it something else? What is the definition of working?

Let’s assume that each of the orange dots represents functionality that your product does.

Any product that you are working on, after a period of time, will increase in complexity. After a certain stage, you might lose track of all the things that the product does. The grey dots represent the things that your product does but you don’t know it does these things. Basically your unknowns.

The Green dot represents the one thing that you tested. If the one function worked, does it mean the entire product is working? Of course not. Having one function of your product is not a definition of the working of the product.

In the above case, everything that you know is tested. This is also not the definition of working. There could be things that you are not aware of that could break the system.

This is the ideal definition of working. This means that every single thing that the product does is tested to be functional. I am calling it an ideal definition of working because testing every single thing might not be possible.

Realistic definition of working

Sometimes aiming for 100% test coverage will lead to a lot of work for marginal benefit. You need to ask yourself whether the effort that you are putting in is giving you significantly more confidence in your codebase or is it giving you marginal confidence. When you start getting significantly diminishing returns for the effort put in in testing, it is okay to not test some parts.

The orange dots represent functions that you have consciously decided to not test.

Notice that the grey dot has been reduced to one. What I am trying to share here is that effort must be put in to eliminate unknowns as much as possible. But to be realistic, it is the nature of complex systems that in spite of your effort, there might be still things that are unknown to you.

Its okay to consciously decide to not test some parts of the system (represented by 6 orange dots) and effort needs to be put in order to minimize things that you don’t know about the product that you are trying to brand as “working”.

Alex J V
Posted on:
Post author

Leave a comment

Your email address will not be published. Required fields are marked *