Today I want to chat about a model I’ve been using for a little while, to talk about the relationship between four things:

  • Testing
  • Information
  • Choice
  • Quality

And more specifically how each of those things interacts with the other.

Hand-drawn picture depicting several buckets and pipes. The bottom of each bucket connects to a lower bucket via a pipe

So, let’s start off with a mental picture of a hand-driven water pump and six buckets:

Pump
We can use the pump to pour water out of the spout, into Bucket 1.

Bucket 1
This bucket can be filled up via several small hoses, or via the big hand pump.
It has a pipe to pour water into…

Bucket 2
An empty bucket. This bucket can only be filled from Bucket 1.
It has several pipes with valves, which pour water into…

Buckets 3, 4, 5, and 6
These buckets all have some level of water inside them.
The most efficient way to put water into these buckets is from the valves on Bucket 2.

Hand-drawn picture depicting several buckets and pipes. The bottom of each bucket connects to a lower bucket via a pipe

Now let’s re-label the model:

  • Pumping == Testing
  • Water from the pump == Information from Testing
  • Bucket 1 == Information
  • Bucket 2 == Choice
  • Buckets 3, 4, 5 and 6 == the various facets of Quality

We now have a nice easy model to understand the relationships between Testing, Information, Choice and Quality!

Let’s say that someone peers into the Quality C bucket and thinks, “I’m unhappy with the amount of quality (water) I have in here” - They know that the most efficient way to increase this level, is via the correct valve on the Choice bucket.

If we have no Choice, though, we need Information to give us Choice.

We can’t use Information that we don’t have, so we need to fill up the Information bucket first.

Testing is a great way to fill that Information bucket (but by no means the only way to fill it)

Bear in mind, though, that if we pump too much, we create excess Information (waste), and if we pump too little, we don’t create enough Information for our needs. We need to put the right amount of effort into pumping (testing) to be efficient.

Testing provides information to make decisions on how and where we should look to increase quality, whether that’s quality of idea, quality of code, quality of pipelines, quality of the final product etc.

Tweet me @TheTestingMuse with your ideas on how you might fill your Information bucket, or if you have any feedback on this model.