1.3 Seven Testing Principles Flashcards
Seven Testing Principles:
Testing shows the presence of defects, not their absence
Exhaustive testing is impossible
Early testing saves time and money
Defects cluster together
Beware of the pesticide paradox
Testing is context dependent
Absence-of-errors is a fallacy
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, testing is not a proof of correctness.
Testing everything (all combinations of inputs and preconditions) is not feasible except
for trivial cases.
What should be used to focus test efforts rather than attempting to test exhaustively?
risk analysis, test techniques and priorities
To find defects early, both static and dynamic test activities should be
started as early as possible in the software development lifecycle.
Early testing is sometimes referred to as
shift left.
Testing early in the software development lifecycle helps
reduce or eliminate costly changes
A small number of modules usually contains most of the defects discovered during pre-release testing or
is responsible for most of the operational failures.
Predicted defect clusters, and the actual observed defect clusters in test or operation,
are an important input into a risk analysis used to focus the test effort
If the same tests are repeated over and over again eventually these tests
no longer find any new defects.
(Pesticide Paradox) To detect new defects, existing tests and test data may
need changing, and new tests may need to be written.
What it is the beneficial outcome of the pesticide paradox in automated regression?
the relatively low number of regression defects.
Testing is done differently in different contexts. Mention al least two examples:
It depends of the business domain and the software development methodology used.