Testing software is like fishing. 

Cast a net to catch defects instead of fishes.

So if you have to increase yield the fishes caught, what would you do ? Work harder or work intelligently?  The latter I am sure would be the answer you would give. So what does this mean?

fishing_analogy_2The picture dissects how we could ‘fish intelligently’. Set a clear goal  as  ‘what fishes to catch’, identify the areas where these fishes may be present and then depending on  the ‘size’ of the fish, use an appropriate net to catch these, and then figure out how to catch (use a boat, or  sit by the side of the lake)  and then finally examine the catch(or the empty net) to refine the fishing.