Tuesday 27 December 2011

False Positives and False Negatives!


False Positives and False Negatives because of improper environment set up

Let’s begin with a real life scenario, I went to a doctor for a regular check up and I got to know that I had been suffering from ‘Cancer’. I had never imagined that I would be suffering from CANCER   I believed it just because the report said. Now my friend Mr. XXX consoled me and told me to visit the doctor again and tell him that I wanted a Recheck up. I found his idea a good way to confirm if I was really suffering from CANCER. I went to the doctor and after we were done with Recheck up, surprisingly but luckily I had no CANCER, actually there were some flaw in the instruments which generated a false result.
This is a false positive, because on account of some flaw in the instruments, I had been informed that I had CANCER.
Why called False Positive?

Expected Result as per me: I was totally fine and healthy.
Actual Result as per Doctor: I had CANCER.

As there is a deviation between the ‘Expected Result’ and ‘Actual Result’, it means there is a failure as per me.
When I asked the doctor what I would call such a fake report then he suggested me to call it  a ‘False Positive’. False because it was not as per my expectation and Positive because doctors are born to identify problems and symptoms in our body which my doctor has done by giving me a report of CANCER which he believed was true because he referred to a medical report.
Now what would be a False Negative??
A test which is marked as PASS but there still is a problem and under ideal conditions the test should FAIL.
It means if I had CANCER and the doctor left me by saying that I am fine just because of some instrumental flaw, then that would be called as a ‘False Negative’. 

Now let’s come to the Software’s False Positives and False Negatives scenarios.

We a group of software testers are testing an application ‘A’ under a set of environments say B, C, D etc.  We set up the environments properly and we started testing our AUT (Application under Test) under the desired environment. We started finding bugs and reported simultaneously. But over a week we noticed that the ‘Defect Rejection Rate’ was too high as per previous statistics. The development end people just updated their status as ‘Working Fine at Our End’. Then we planned to reset the environments and did it accordingly but with more cautions this time. Now all our own issues started to pass at our end also.

This was ‘False Positive’ in software testing. False because ‘Actual and Expected’ were not matching.  And Positive because we found the bugs at our end (Our job as a tester is to find bugs and we did it so a positive for our side).

But it is for granted that if we found some false positives then there must be some false negatives.  It means we passed some tests just because of environment set up issue. This is where the quality of software is affected. Because False positive when goes for fixing or debugging to the development guys they found it working and hence we can close the issue after proper environment set up and retesting.

But what will happen to the False Negatives that we didn’t find and hence didn’t report because it was working fine in our environment which was not properly set up?
 
                                We should always try to cross check the environment set up by us and the environment needed to test the application. Once we commit mistake at this point, it means we already degraded the quality of application because it would give rise to a lot of false positives that leads to wastage of time and money (resources)  for debugging and retesting and similar number of false negatives which are very difficult to find out, because no one notices it.

No comments:

Post a Comment