Intro to Quality - raisercostin/software-wiki GitHub Wiki

Taxonomy (Test types)

source https://aripd.com/posts/testing/

Bug fixing

For one bug/activity there are multiple parallel feedback loops that should be analyzed in order to understand better and lower the probability of next similar mistake. There are multiple bugs that can be spotted by only one visible bug (be proactive):

  1. Base Bug - Bugul de fond
  2. Investigation Bug - if investigation took more than 10 seconds (some say minutes) to understand the root cause of the bug.
  3. Similar Bugs - Bugs that occur similarly in other places. The probability is higher if DRY principle is broken. You should search for such places.
  4. Class Bugs - The entire class of similar bugs. For example similar kind of validation or all the NullPointerExceptions that are possible in the entire code. A solution is code review.
  5. Process Bugs - The bug was possible by a bad process or a way of doing things. Introspection analysis can help, following practices and amending ways of doing things to be harder to make mistakes.
    • Software Constraints - removal of error prone code/design, see principles
      • Type Constraints
        • strong typing
      • Design Constraints
    • Human rules

Fixing not only the first type of bugs should gradually improve the quality.