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 !!! :)