ISTQB Software Testing Foundation Part 1 - Basics


Published on

Published in: Technology

ISTQB Software Testing Foundation Part 1 - Basics

  1. 1. Software Testing Foundations #1Basics of Software TestingNikita Knyshnknysh@gmail.com
  2. 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. 3. Causal Chain of a Software Failure Mistake Defect (Bug) Failure
  4. 4. Purposes of Testing• Find failures• Measure quality• Provide confidence• Prevent defects
  5. 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.
  6. 6. Software Quality CharacteristicsSoftware quality [ISO 9126]: • Functionality: suitability, accuracy, interoperability, compliance, security. • Reliability: maturity, recoverability, fault tolerance. • Usability: learn ability, understandability, operability. • Efficiency: time behavior, resource utilization. • Maintainability: stability (against side effects), analyzability, changeability, testability. • Portability: installability, replaceability, adaptability.Quality characteristics must be prioritized!
  7. 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. 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.