Monday, 6 May 2013

False Positives and False Negatives in Software Testing


Simply put,
False Positive is the situation when the functionality is working, but yet it is marked as ‘failed’ in testing/practical application
False Negative is the situation when the functionality is not working, but yet it is marked as ‘passed’ in testing/practical application

Real-life examples

1.            Software coding:  Thorough testing results in correct and valid code to get rejected (due to mismatch of understanding between coder and tester)

2.            Healthcare sector: Low-cost medical tests administered detects illness that warrants further elaborate testing (which then reveals absence of the illness)

3.            Government administration: Pre-election poll roundup denotes win of a particular candidate who will be defeated by a significant margin in the actual elections

4.            Airport security: Metal detector sounds off an alarm on presence of a small coin (sensing it to be a weapon)

5.            Anti-virus: The most popular form of ‘false positive’ is when an anti-virus blocks a safe program (or .exe file) thinking it to be a potential threat.

Steps to detect ‘falses’

1.            Change the input or the sample so that the behavior changes with this new sample. Changing the test data will point out to deviations in working of the code and hence alert us of the ‘false positives’ or ‘false negatives’

2.            Do a rigorous testing on dummy or test data (complete with all minor details) so that code performance can be monitored in an alternative environment of variables and data

3.            Provide for automating the actions, process or steps. Since automation looks for pattern in data and then performs a pre-defined action, this step can be crucial in trapping the ‘falses’


Which of the two are most dangerous?

It depends on the level of efforts required to detect such ‘falses’.
False positive will be pointed as an error (and will stop the program execution) even when it is safe. On the other hand, false negative will continue running the program even though it should’ve been stopped when it encountered the error bit.
Hence, owing the detection level, false negative is the more dangerous of the two, as there is no indicator alerting us that there is something wrong in the programming. 

Resource: Content Writing Services India


 

No comments:

Post a Comment