13

All,

During an interview with an major MNC , I was asked this curious question of " What is meant by pesticide paradox ? " I have been working as Test Engineer for almost 4 Years but I have never came across this terminology.

Can some one help me with a real time example ?

4
  • 10
    I downvoted this because I do not believe the OP tried to figure it out for themselves. The top two or three results from a Google search for "pesticide paradox" should tell them what they need to know.
    – user246
    Commented Jul 19, 2013 at 13:08
  • 3
    First time I have heard the term as well and I've been doing it about 15 years now, if that's any consolation. Questions about something like this where it's not widely used/known seem kind of pointless for an interview.
    – Sam Woods
    Commented Jul 19, 2013 at 16:10
  • 2
    Hi, karthik, there's plenty of information out there if you google "pesticide paradox" - perhaps you could update your question with more details of why that information isn't enough for you.
    – Kate Paulk
    Commented Jul 19, 2013 at 18:24
  • 1
    Jokes on you user246 and kate paulk. This is now the #1 Google search result for "pesticide paradox"
    – jcwilbur
    Commented May 17, 2022 at 18:07

8 Answers 8

18

Pesticide Paradox

The phenomenon that the more you test software, the more immune it becomes to your tests - just as insects eventually build up resistance and the pesticide no longer works. [Beizer]

from: https://strazzere.blogspot.com/p/testing-terms-glossary.html

1
  • 2
    Yes, existing insects build up resistance, but there might appear new insects that are not resistant to the "pesticide". So old tests can help discover bugs in introduced changes. Especially, recall tests that are designed to catch failures not anticipated. They exercise as much code as possible in as many different ways as possible (based on uploads.pnsqc.org/2016/papers/…).
    – dzieciou
    Commented Jul 17, 2017 at 20:52
15

Lets say you are testing an application. You have written a set of test cases.

Now you run one cycle of testing. You find few bugs and report them to the development team. Development team fixes the bugs and reverts to you with the updated code. You again execute the same set of test cases. This time you find that few of the bug were still not fixed and you report that back to the development team. They work on it and send an update to you. Once again, you execute the same set of test cases and don't find any bugs.

Now in a new release some changes were made in the application. You run the same set of test cases and they all pass. But, what you miss here is the new bugs that may have introduced when the fix and new changes were applied. The old set of test cases are incapable of identifying these new bugs.

This is called Pesticide Paradox. To avoid this you need to update your test cases with each cycle and add new cases to the old set.

2
  • Well, it's true that old tests might not find all new bugs, but they can find some new bugs (more precisely, regression bugs). If, for instance, I have a test that verifies that users locked up should not be able to login, and some changes to authentication process will, accidentally, allow users to login even when they are locked up, then my old tests may find this new bug.
    – dzieciou
    Commented Jul 17, 2017 at 20:36
  • 1
    @dzieciou, yes. You are correct with the example you have taken. Your old test cases will find this new bug. This would imply that your tests haven't yet gone into the pesticide paradox state. Commented Jan 7, 2019 at 9:56
5

Boris Beizer wrote “Every method you use to prevent or find bugs leaves a residue of subtler bugs against which those methods are ineffectual.”

In the most simple terms not every method or technique will find or prevent all bugs, so we must use a variety of approaches, techniques, and methods in testing.

See this post for more info

1
3

Pesticide paradox can be also explained as: If the same tests are repeated over and over again, eventually the same set of test cases will no longer find any new bugs. To overcome this 'pesticide paradox', the test cases need to be regularly reviewed and revised, and new and different tests need to be written to exercise different parts of the software or system to potentially find more defects.

2

As defined on ISTQB Syllabus:

Pesticide paradox: If the same tests are repeated over and over again, eventually the same set of test cases will no longer find any new defects. To overcome this “pesticide paradox”, test cases need to be regularly reviewed and revised, and new and different tests need to be written to exercise different parts of the software or system to find potentially more defects.

So when a software is a subject of continuous changes and updating repeating the same test steps and scenario will make the software undiscovered bugs immune against the testing. That is why to avoid "Pesticide paradox" keep your test cases uptodate when ever a change or fix is applied on the testing area and always try to add new test scenarios and steps whenever possible. Also have different tester check different areas on each regression or release.

1
  • 1
    Well, if the software is a subject of continuous changes, then old tests can find bugs (called regression bugs) introduced by those changes.
    – dzieciou
    Commented Jul 17, 2017 at 20:32
0

if test plan was followed a standard/requirement to define, when all set of the test cases were passed after bugs fixed, I don't see Pesticide Paradox is right! if our target is to ensure the DUT/SUT compliance with the standard or customer requirement, we should run same set of the test plan to ensure no regression happen and no new test plan should be added until new requirement added.

0

The pesticide paradox is not a paradox at all, and whoever invented the term was probably just trying to make money from it. It is not an intrinsic problem of the tests themselves, rather a symptom that your test function is inadequate. The concept behind the fancy name is more commonly referred to as code coverage. i.e. its no good having 1000 tests that all pass if they only exercise 1% of your code base. This is why some metric of code coverage is critical to a good quality assurance function. It's common sense really.

-2

When the same kinds of tests are repeated again and again, eventually the same set of test cases will no longer be able to find any new bugs.

To overcome this “Pesticide Paradox”, it is really very important to review the test cases regularly and new and different tests need to be written to exercise different parts of the software or system to potentially find more defects.

1
  • 4
    Why do you give a nearly identical answer as olyv ? Commented Aug 7, 2015 at 14:19

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.