The Pesticide Paradox - the blend between Software Testing and Agriculture

The Pesticide Paradox - the blend between Software Testing and Agriculture

The understanding of fundamental principles in a discipline may come from the most unexpected areas in the most unexpected moments. It is all about learning at every step about everything around you. Such an example is the Pesticide Paradox in Software Testing. I learned it 12 years ago from a BCS instructor, really understood it three years ago while meditating in my organic farm, remembered it a few days ago at the same farm, put in practice again today in a major IT project for the benefit of my customer.

Have you heard of this principle? I am sure most of you have heard of it but, who is putting it in practice? There is a slight gap between theory and practice, lots of things sound nice in theory but when it comes to putting them in practice there is a resistance from people.... that's until YOU FEEL IT! My Tai Chi master usually tells me to bring the principles to the muscles.

What about Pesticide Paradox? Well, it was discovered almost 20 years ago by Boris Beizer who stated that “Every method you use to prevent or find bugs leaves a residue of subtler bugs against which those methods are ineffectual.

That’s not too bad, you say, because at least the software gets better and better. Not quite! "

It struck me 3 years ago when I had a massive attack of phytophthora infestans  in my tomato crop (one of most often encountered disease in my region). Since I was a greenhorn in agriculture and I asked the advice of professionals in the field. I am talking about organic farming, that makes the challenge even bigger because I must use only ecological solutions. After some time I came up with a recipe that worked for most of the plants... That was in the month of June (the beginning of high temperatures). I thought I was the master of Software Testing... oops sorry :) organic agriculture but, that lasted until August - September when humidity raised, the fungus appeared again in an even more ravaging attack. Same solution "mechanically" applied had a much lower result, I applied again, and again, the software seemed to get better and better but not quite! My plants were still sick and production was decreasing. Why? why was it not working with the same efficiency as the first time? It was at that moment that I had to step back, breathe deep and use my brain to find a creative solution. How was my context different from the first time? At first the heat and humidity were different than in June, I was at the second release (second series of fruits were ripening) the plants were affected by high heats in August and touched by humidity. Different conditions in my software (even if apparently much hadn’t changed) I had to ask the farmer to change his treatments and what I did was to increase the percentage of garlic in my five elements formula (doubled it) and results started showing, the plants were revigorated. It seems that the method I used before left a residue of subtler bugs (fungus) against which the same method was inefficient.

Who should use it? Well you might be tempted to say "the farmer should ..." but I would say this is for all you software testers that need to change constantly the testing techniques you use, to vary the proportion of your main "ingredients" and flush the bugs out of their hide outs. I strongly believe that our brains must be used for creation of new solutions, feel free to innovate based on the existing principles. Let the machines do the execution. This morning, meaning one hour ago, I just asked my team to enhance the input data of our automated testing performed on the current project. More data means more paths covered through the application which means more bugs found. 

Why put it in practice? If it is not obvious yet I lost about 30% of my crop (a few hundred kilos) while stumbling in the application of the same solution... you do not want to let bugs escape in production where they are more expensive to fix.

How I put it in practice in IT Projects depends on the context of the project, in most cases I rely on automated testing, the machines should do the repetitive work, and in this formula I play with one of the five ingredients: variation of input data, increase the number of checkpoints, apply testing techniques to cover more situations, increase the frequency of tests, or increase the duration of tests (did I tell you that automated tests can be run overnight? ... If not I surely will)

What can you obtain if you apply this principle correctly? A very low proportion of defects in production or better said lower costs...   

Success and remember to innovate!

要查看或添加评论,请登录

Victor Horescu的更多文章

  • Re-use, Re-Cycle, RePURPOSE

    Re-use, Re-Cycle, RePURPOSE

    I was very impressed by the human mind's ingenuity in terms of giving a new purpose to old things, making them useful…

  • Balance in Acceptance Testing

    Balance in Acceptance Testing

    Among the different customers I had over the years, the level of knowledge has varied from very good to very shallow…

  • Return On Investment from Automated Functional Testing

    Return On Investment from Automated Functional Testing

    Return On Investment or ROI is a keyword in today's business environment. Weather you are an entrepreneur or an…

  • Tips & Tricks for software testing

    Tips & Tricks for software testing

    Once I received a good tip as valuable as a silver medal in a national Athletics competition. I was in high school, I…

  • What makes a Training Efficient?

    What makes a Training Efficient?

    After a training where you pay for your your tuition you must be capable to apply what you have learned! That's why you…

  • Efficiency Efficacité Eficienta Effektiewe

    Efficiency Efficacité Eficienta Effektiewe

    Everybody asks for it ! in 2017 more often than before from North to South of Europe customers asked for custom and…

  • Success or Struggle

    Success or Struggle

    People are the greatest asset of any company, people make things happen. As Richard Branson said people come first, "It…

  • Next Level in Training = BlitzTraining

    Next Level in Training = BlitzTraining

    Speed is more and more a determining factor in nowadays IT projects. I was reading a few months ago in a report…

  • Medicine for Black Friday fever

    Medicine for Black Friday fever

    Black Friday again ! Lots of discounts, many tempted customers, many online purchases but as each year many failures of…

  • Being an international trainer

    Being an international trainer

    My friend Catalina asked me how is it to be an international trainer… or write something about it so my dear, here are…

社区洞察

其他会员也浏览了