At first glance, not many people associate fishing with software testing – why would they? When you’re fishing, you’re standing outdoors by a river or a lake, mostly trying to escape your digital identity. Software testing, on the other hand, is a central part of ongoing digitisation. However, anglers and software testers share a surprising number of similarities and characteristics.
I am firmly convinced that fishing is an excellent way to visualise the most critical processes in testing. I’ll explain why in four essential points that testers and anglers have in common.
Specifying your target
Before the actual fishing (or testing) starts, the angler must be clear about his goals. Every good angler has a specific target fish for which he optimises his strategy. The more precisely he knows what he wants to catch, the more likely it will happen.
In the same way, good testers also set targets for which they optimise their strategy. One should not try to test blindly, but should first be clear about the testing goal. Do you want to test for the fulfilment of requirements? Do you prefer to identify performance weaknesses? A clear objective in the testing process is ultimately decisive for the quality of the software.
The next thing to do is analysing the conditions. Is the weather good or bad today? Is the water somewhat murky or clear? Depending on the conditions, his tactic will change, being more precisely tuned to catch his target fish successfully.
A software tester must be equally aware of his test conditions. Which test conditions are defined? When does a test pass? How much time and resources do I have? Based on this, we can create an optimised test strategy to attain the objective successfully.
Choosing the right tools
Of course, the right equipment helps enormously in the success of fishing. With a rod, reel and line it is easier to catch a fish than with bare hands. There are also countless other fishing tools, which promises to increase likelihood of success. However, too often, angler thinks the success of fishing depends only on the equipment. Way more important is experience and strategy. You can give a beginner fishing gear worth thousands of dollars, he will still never catch as much as an experienced angler with a better strategy and more experience.
Fishing equipment can be seen analogous to tools in software testing. Most testers find it difficult to work without them as they facilitate work enormously. However, it’s worth noting that they are not a miracle cure either. In the wrong hands, the best tools are useless.
Landing the catch
After selecting target fish, adapting tactics to conditions and choosing the right equipment, there is only one thing left to do – to catch and land the fish! At this point, one factor really makes the difference and that is, experience. The more often you catch a fish, the more likely you are to land it. You develop a kind of sensitivity and instinctively know what to do.
Experience is just as significant in testing. You develop a sense for error-prone areas and bottlenecks, know which elements tend to behave incorrectly or carry out tests efficiently.
Many analogies can be made between fishing and software testing. This makes it easy to illustrate the points that are important for ensuring good software. The decisive factors are not the tools that are used, but a good strategy, preparation and the experience of the tester himself.