ISTQB 6: Understanding Coverage and the 7 Testing Principles

Home/Articles, ISTQB/ISTQB 6: Understanding Coverage and the 7 Testing Principles

Software testing is a vast field with numerous concepts designed to ensure the quality and reliability of software systems. Two key aspects that every tester should understand are the concept of coverage in software testing and the 7 testing principles outlined by ISTQB. Let’s explore these topics with clear explanations and relatable examples.

The Concept of Coverage in Software Testing

Coverage in software testing refers to the extent to which the testing has exercised the software or its components. It is a measure of how much of the system’s functionality, code, or requirements have been tested. High coverage ensures that more parts of the software have been evaluated, reducing the risk of undetected defects.

For example, imagine testing a login feature that requires a username and password. To achieve good coverage, testers might:

  • Test valid and invalid username-password combinations.
  • Check what happens when one or both fields are left blank.
  • Attempt logins with special characters or excessively long inputs.
  • Verify system behavior after multiple failed attempts.

By covering these scenarios, testers ensure the login functionality is robust and works reliably under different conditions.

The 7 Testing Principles

The 7 testing principles form the foundation of effective software testing practices. Let’s break each principle down with examples:

  1. Testing Shows the Presence of Defects Testing helps find defects but does not guarantee their absence. For instance, even after testing a shopping cart system thoroughly, a rare edge case could still cause it to fail.
  2. Exhaustive Testing Is Impossible It’s not feasible to test all possible combinations of inputs and scenarios. For example, testing every possible search query on a search engine would be impractical. Instead, testers prioritize the most critical and frequent scenarios.
  3. Early Testing Saves Time and Money Identifying defects early in the development cycle is more cost-effective than fixing them later. For example, finding a missing requirement during the design phase prevents costly rework during implementation.
  4. Defects Cluster Together Defects often concentrate on specific areas of the software. For example, a new feature in a messaging app might have more bugs than older, well-tested features. Focusing testing on these high-risk areas is an efficient strategy.
  5. Beware of the Pesticide Paradox Running the same set of tests repeatedly eventually stops finding new defects. For example, if testers always use the same login scenarios, they might miss issues arising from new security updates. To overcome this, tests should be periodically updated and expanded.
  6. Testing Is Context Dependent The approach to testing varies based on the type of application. For example, testing a video game focuses on graphics and user experience, while testing a financial system emphasizes accuracy and security.
  7. Absence-of-Errors Fallacy Just because no defects are found doesn’t mean the system is usable or meets user needs. For example, a bug-free e-commerce site with a confusing checkout process still fails to satisfy customers.

Understanding coverage and adhering to the 7 testing principles are vital for effective software testing. Coverage ensures thorough evaluation, while the principles guide testers in focusing on the right aspects of quality assurance. By applying these concepts thoughtfully, teams can build reliable, user-friendly software that meets the highest standards of excellence.

Photo by Startaê Team on Unsplash