Principles of Testing
There are seven principles of testing. They are as follows:
1) Testing shows presence of bug but not absence of bug: Testing can show the defects are present, but cannot prove
that there are no defects. Even after testing the application or product
thoroughly we cannot say that the product is 100% defect free. Testing always
reduces the number 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 including all
combinations of inputs and preconditions is not possible. So, instead of doing
the exhaustive testing we can use risks and
priorities to focus testing efforts. For example: In an application in one
screen there are 15 input fields, each having 5 possible values, then to test
all the valid combinations you would need 30 517 578
125 (515) tests. This is very unlikely that the
project timescales would allow for this number of tests. So, accessing and
managing risk is one of the most important activities and reason for testing in
any project.
3) Early testing (include testing in all phase of
development model): In the software development life cycle testing
activities should start as early as possible and should be focused on defined
objectives.
4) Defect clustering : A small number of modules contains most of the defects discovered
during pre-release testing or shows the most operational failures.
5) Test case Quality Check & Improvement: 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.
6) Testing is Domain depending: Testing is basically context dependent.
Different kinds of sites are tested differently. For example, safety – critical
software is tested differently from an e-commerce site.
7) Fundamental issue: If the system built is unusable and does not fulfil the
user’s needs and expectations then finding and fixing defects does not help. (Absence
– of – errors fallacy)
Comments
Post a Comment