2. Agenda
• Causal Chain of a Software Failure
• Purposes of Testing
• What is Quality?
• Software Quality Characteristics at a Glance
• Psychology of Testing
• Principles of Testing
3. Causal Chain of a Software Failure
Mistake
Defect (Bug)
Failure
4. Purposes of Testing
• Find failures
• Measure quality
• Provide confidence
• Prevent defects
5. What is Quality?
• Quality [ISO 9000]: The degree to which a set of
inherent characteristics fulfills requirements.
• Quality [IEEE 610.12]: The degree to which a
component, system or process meets specified
requirements and/or user/ customer or user needs
or expectations.
7. General Principles of Testing
• Testing shows the presence of defects, not their
absence
• Exhaustive testing is not possible
• Testing activities should start as early as possible
• Defects tend to cluster together
• The pesticide paradox
• Test is context dependent
• The fallacy of assuming that no failures means a
useful system
8. Psychology of Testing
• Developer test tends to be too optimistic.
• Blindness to one’s own errors is especially critical for
fundamental design errors; work in pairs to prevent.
• Independent testing team tends to increase the
quality and comprehensiveness of the tests.
• Reporting of failures requires diplomacy and tact;
descriptions should allow as easy failure
reproduction as possible.
• Mutual comprehension: developers should know
the basics of testing and testers should have a basic
knowledge of software develop-ment.
Editor's Notes
Maturity means how often a failure of the software occurs as a result of defects in the software.Conclusion from this slide: It is VERY unlikely that all the characteristics will be addressed in requirements. BUT that does not mean that none of them should be tested – see 2nd definition of quality from previous slide.