Software Testing Principles L2
Software Testing Principles L2
Lecture Two
The Seven Testing Principles
• Early testing:
• In the software development life cycle testing activities should start as
early as possible and should be focused on defined objectives. The
sooner we start the testing activities the better we can utilize the
available time. As soon as the initial products, such the requirement or
design documents are available, we can start testing.
• It is common for the testing phase to get squeezed at the end of the
development lifecycle, i.e. when development has finished, so by
starting testing early, we can prepare testing for each level of the
development lifecycle.
The Seven Testing Principles
• Defect clustering:
A small number of modules contains most of the defects
discovered during pre-release testing or shows the most
operational failures. This is the application of the Pareto Principle
to software testing: approximately 80% of the problems are found
in 20% of the modules.
The Seven Testing Principles
• Pesticide paradox: If the same kinds of tests are repeated again and again, eventually the
same set of test cases will no longer be able to find any new bugs. To overcome this
“Pesticide Paradox”, it is really very important to review the test cases regularly and new
and different tests need to be written to exercise different parts of the software or system
to potentially find more defects.
• Because as the system evolves, many of the previously reported defects will have been
fixed and the old test cases do not apply anymore. Anytime a fault is fixed or a new
functionality added, we need to do regression testing to make sure the new changed
software has not broken any other part of the software.
• However, those regression test cases also need to change to reflect the changes made in
the software to be applicable and hopefully fine new defects.
The Seven Testing Principles