Thursday, 19 September 2013

Testing Principles-

Testing Shows Presence of defects-
Software testing shows the presence of defects & not the absence. Like if no fish get hooked in the fisherman's hook, doesn't states that there is no fish in the pond. As a software test team,we can only reduce the probability of undiscovered defects but can not give the guaranty that the software is bug free or there will be no defect in a tested software.

Exhaustive testing is impossible-
'No amount of observations of white swans can allow the inference that all swans are white, but the observation of a single black swan is sufficient to refute that conclusion'. Same happen with software testing, after a lots of testing,we can not say that the software is bug free , we can only find the maximum possible bugs. We can not test all possible input combinations with all possible preconditions except for trivial cases.

Early testing-
First understand then focus & then start....
It is best to start testing as early as possible in a software development life cycle. The most useful benefit of this concept is that it reduces the cost of bugs & give a strong base to the software.

Defect clustering-
By 80/20 theory of Pareto Principle – 80% of the bugs caused by only 20% of the code . It means that a small number of modules contain a large no of defects in a system. These small number of module become defect prone & are also responsible for most of the operational failures.

Pesticide paradox-
We can not laugh again & again on the same joke because our mind get prepared for the end result & we lose interest Similarly,if we repeat same set of test cases again and again ,we will not find any new bug. To reduce/manage this pesticide paradox effect we need to review the old test cases regularly & to add new changes in the software & also review the area of the software to be tested to find more defects.

Testing is context dependent-
We need different tools & skill for fishing than for hunting of a lion. In same way we need do different type of testing of different application. The treatment of a banking application will be surely different than a free educational website. We will be more serious about the security of the banking application than its look but it is opposite for the free educational website.

Absence-of-errors fallacy-
We can not give a local travel bus instead of a car , to a newly married couple for sweet romantic drive. No matter both ( bus & car) are used for traveling, having working engine & covered place to sit. Ideally there is no issues in the working of a bus but it is not fulfilling the requirement of its user. Similarly the software will be of no use if it doesn't fulfill the customer's requirement though we have find & fixes almost all the possible bugs/defects.

Thanks !!! :)