Sr.
No.
|
Software
Testing Principles
|
|
1
|
Testing shows presence of
Defects
|
Testing can show that defects are present, but cannot prove that
there are no defects. Testing reduces the probability of undiscovered defects
remaining in the software but, even if no defects are found, it is not a
proof of correctness.
|
2
|
Exhaustive Testing is
impossible
|
Testing everything (all combination of input values
and preconditions) is not feasible except for trivial cases. Instead of
Exhaustive Testing, we can use risks & priorities to focus testing
efforts.
Exhaustive Testing – A
Test approach in which the test suite comprises all combination of input
values and preconditions.
|
3
|
Early Testing
|
Testing activities should start as early as possible in the software
or system development life cycle and should be focused on defined objectives.
|
4
|
Defect
Clustering
|
A small number of modules contain most of the defects discovered
during pre-release testing or show the most operational failures.
|
5
|
Pesticide
Paradox
|
If the same tests are repeated over and over again, eventually the
same set of test cases will no longer find any new bugs. To overcome this
Pesticide Paradox, the test cases need to be regularly reviewed and revised,
and new and different tests need to be written to exercise different parts of
the software or system to potentially find more defects.
|
6
|
Testing is
context dependent
|
Testing is done differently in different contexts. For example,
safety-critical software is tested differently from an e-commerce site.
|
7
|
Absence of
errors fallacy
|
Finding and fixing defects does not help if the system built is
unusable and does not fulfill the user’s needs and expectations.
|