A lot of bits have traveled under the Internet bridge since Michael Bolton’s Testing vs Checking in 2009:

  • Checking is something that we do with the motivation of confirming existing beliefs. Checking is a process of confirmation, verification, and validation.
  • Testing is something that we do with the motivation of finding new information. Testing is a process of exploration, discovery, investigation, and learning. 

Revisiting it again and again it dawns on me(1)… It’s not “versus“- It’s not “either or” - It’s “not one over the other” – It’s not “merely” either – it’s about testing and checking.  Both on the same time – but yet using different words, helps us find a better understanding of what we do. The Rapid Software Testing course material pages 59-67 illustrates this in details (3):

Rapid Software Testing - Task Performing

We can look into scripts/checking as being task performing “arrows”: an hypothesis is established and sought to be confirmed. Value seeking happens all through the checking process – you think and react based on the evidence found. (2)

Rapid Software Testing - Value seeking - used by permission

We can look into exploration/testing as being value seeking “cycles”: an exploration acts on it’s own – but still consists of smaller sequential tasks being performed. (2)

You apply both your left and right side of the brain – you check and test – you do tasks and seek value – you apply routinized and bespoke activities. You can use the distinction to guide you to a context-driven testing approach.  Read also Exploring Uncertainty for a good discussion on how  Checking is Not Evil and how to illustrate what is Not Checking.

In 2013 Michael Bolton and James Bach refined the definition of checking:

TESTING AND CHECKING REFINED | March 26th, 2013 ]

Checking is the process of making evaluations by applying algorithmic decision rules to specific observations of a product.

              From that, we have identified three kinds of checking:

Human checking is an attempted checking process wherein humans collect the observations and apply the rules without the mediation of tools.

Machine checking is a checking process wherein tools collect the observations and apply the rules without the mediation of humans.

Human/machine checking is an attempted checking process wherein both humans and tools interact to collect the observations and apply the rules.

_ _ _

1 with guiding from both James B & Michael B. Thanks!
2 with specific permission from James Bach.
3 also referenced in So Everything Must Be Tested?

About these ads