Testing The River With Different Tools

As some of you may be aware, I like kayaking & I often like to use it as a metaphor for software development.

I realised I talk a lot about the similarities between kayaking & software testing, but it appears I’ve never written about it.

Please indulge me whilst I relate how we paddlers use different “tools” on the river to help us achieve different goals…

When I set out to paddle a river, my mission is typically to get from A – B. I largely paddle rivers with a gradient, so this generally means the direction of travel is taken away from me.

My tool of choice in helping me down the river is a kayak, but there are other tools I could choose.

I favour manoeuvrability on the river, so I go for a shorter boat (AKA kayak). A longer boat will get me down faster, but I won’t be able to do the things I want to do on my journey down the river.

As I’m paddling down the river, I’m exploring the different features (yes, they’re actually called features) the river has to offer, for example how the water is affected when it flows between 2 rocks.

Let’s have some videos of people styling it down rivers with some commentary from me. All the videos have one thing in common – the paddlers are all heading downstream, some faster than others.

Creeking with a waterfall at the end. This is comparatively large boat to help it resurface after going under water. This guy chooses to change his tools halfway down the waterfall – he chucks his paddles away, primarily so he doesn’t eat them when hits the water (water has the same surface tension as concrete).

Playboating. See the difference in the size of the boat? You could take this little boat down the rapids & waterfall in th first video, but you’re likely to have a bad time. Similarly, trying to get the bigger boat to pull out the moves in this video would be a tough call.

Slalom paddlers are proficient at using the river features to help them get around the river & in between the gates (poles). Their boats are shaped for speed & manoeuvrability. They’re also typically not made of plastic (to reduce weight) so aren’t the best for creeking or waterfalls

In Squirt boating, the volume of the boat is such that it barely floats. One of the most interesting moves is the mystery move, as seen in this video. I would not want to take a squirt boat over any kind of waterfall.

Some guys do use tools you wouldn’t expect to see on the river with interesting results…

And now some river features, starting with the “stopper” (AKA “hole”):

It’s called a stopper because it stops things. Not too dissimilar to show stoppers in software development eh?

Fortunately, some folks have workarounds for the big stoppers…

So we didn’t come here to just watch some awesome kayaking footage, lets link this back to software testing.

We each have our mission in testing, we have a reason for questioning the software.

We all use tools to help us achieve our mission, but that’s as far as tools go; helping.

It is not the kayak & paddlers gear that gets them down the rapids, it’s the paddler themselves. The paddler could get themselves down the river without tools, but the results are unlikely to be as effective as when they are in a boat.

As it is with software testing & automated checks; The tools we use to test are not doing the testing, we are.

Nor are the automated checks doing the testing. We did the testing when we created the checks. Now those checks are serving as tools to help our testing & inform us of any unexpected changes that arguably we should go and explore.

Testing happens in you, not your tools