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):
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)
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?