Thursday, June 19, 2008

PRINCIPLES OF TESTING

1.Testing only shows the presence of defects

For example:A pesticide will state that it is used to kill germs but on the go it fails to prove its statement because the germs get addicted to the pesticide .Thus resulting in a paradox.
similarly when a first build is tested it results in bugs to be fixed.The second build is given to the testers stating the goal that previous bugs are fixed.Though the previous bugs are fixed ,this may lead to emergence of new bugs since the code is changed.Here the fixing activity is paradoxical in nature.

Testing shows presence of defects,it never shows the absence of defects

2.Exhaustive testing is impossible

Most difficult problem with exhaustive execution path search is the computational complexity caused by the number of possible input states. The number of individual paths the program can follow is typically overwhelming and it is practically impossible to follow them all.

For example,A small program that takes 128 bytes of effective input can have " n " possible individual tracks that have to be examined.Instead of testing all those n possibilities take some selected values and test the applicationKnow more about exhaustive testing http://www.satisfice.com/articles/good_enough_testing.pdf

3.Early Testing Works

There are two important words which makes this principle more effective.

Injection: when a bug is introduced in a software is injection of a bug.

Detection: when a tester finds the bug is detectionAs the time between the injection of a bug and the detection of the bug increases,the cost of fixing the also increases.so Testing from the initial stages of development will reduce the cost as well as risk.

4.Defect Clustering

Identifying the density of bugs in a particular module is termed as defect clustering.

for exampleAn application has four modules to be tested.If the tester finds the percentage of failure in particular module is more ,then a test engineer reports that a defect clustering has occured in particular module.Once the cluster is identified,there is no use of continuing the test process.Instead the build is given back for fixing.

5.Absence of error Fallacy

Absence of errors is a misbelief
.A test engineer can say that we could not find bugs in this software rather than saying that there are no bugs in this software.Because testing shows only presence of errors.

No comments: