Showing posts with label Principles. Show all posts
Showing posts with label Principles. Show all posts

Friday, January 30, 2009

Principles of testing

A number of testing principles have been suggested over the past 40 years and offer general

guidelines common for all testing.

Principle 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.

Principle 2 – Exhaustive testing is impossible

Testing everything (all combination of inputs and preconditions) is not feasible except for trivial

cases.

Principle 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

Principle 4 – Defect clustering

A small number of modules contain most of the defects discovered during pre-release testing, or

are responsible for the most operational failures.

Principle 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 defects. 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.

Principle 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.

Principle 7 – Absence-of-errors fallacy

Finding and fixing defects does not help if the system built is unusable and does not fulfill the users’