Software Validation and Verification (SQT) Testing:: Seven Principles of Testing
Software Validation and Verification (SQT) Testing:: Seven Principles of Testing
Testing:
Seven principles of Testing:
1.Testing shows a presence of defect
Testing talks about the presence of defects and don't talk about the absence of
defects. i.e. Software 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. But what if, you work extra hard, taking all precautions & make your
software product 99% bug-free. And the software does not meet the needs &
requirements of the clients. This leads us to our next principle, which states that-
Absence of Error
3. Early testing
A defect can be found throughout all the phases of software development Life
Cycle. So, it is better to start early Testing in the software development life cycle,
so as to minimize defects in the later stages. Such as design review, unit testing. It
is much cheaper to fix a Defect in the early stages of testing. It is recommended
that you start finding the bug the moment the requirements are defined. More on
this principle in a later training tutorial.
4. Defect clustering
Defect Clustering which states that a small number of modules contain most of the
defects detected. The majority of the defects are caused by a small number of
modules. By experience, you can identify such risky modules. But this approach
has its own problems If the same tests are repeated over and over again, eventually
the same test cases will no longer find new bugs.
5. Pesticide paradox
Repetitive use of the same pesticide mix to eradicate insects during farming will
over time lead to the insects developing resistance to the pesticide Thereby
ineffective of pesticides on insects. The same applies to software testing. If the
same set of repetitive tests are conducted, the method will be useless for
discovering new defects. To overcome this, the test cases need to be regularly
reviewed & revised, adding new & different test cases to help find more defects. It
must look out continually to improve the existing methods to make testing more
effective. But even after all this hard work in testing, you can never claim your
product is bug-free.
A company like MICROSOFT would not have tested their OS thoroughly & would
risk their reputation just to see their OS crashing during its public launch!