The long way through Software Craftsmanship

Internal training: QA & how to test

May 18, 2015 - 2 minute read - Comments - traininginternalinternal-trainingquality-assuranceqabrown-bag-session

At a client, we’ve done today an internal training on “QA & how to test”. In it, the most skilled person with the QA role in the dev team has explained to us some techniques and concepts for testing

My notes

Verification vs validation: building the product right vs building the right product.

Principles

Extracted from ISTQB:

  • testing shows presence of defects
  • exhaustive testing is impossible
  • early testing is better than later testing
  • defect clustering: areas with bigger defect ratio or more critical, etc should be tested more thoroughly
  • pesticide paradox
  • testing is context-dependent
  • absence of errors fallacy: the absence of defects does not imply perfect software. There are also problems with validation.

Techniques

People-based

  • bug bashes: e.g., time-constrained
  • subject-matter expert testing
  • eat your own dogfood
  • others

Activity-based

  • regression
  • scripted (manual)
  • smoke
  • exploratory
  • installation
  • load
  • long sequence
  • performance

Coverage-based

  • menu tour: exploration based on menus (especially on websites)
  • functional and system testing
  • integration
  • logic
  • state-based

Requirements-based

  • Equivalence partitioning: examples in the same set are considered equivalent
  • Boundary based: there are interesting examples around and on the boundaries
  • Decision tables: truth table
  • State transition tables: state diagram

Risk-based

  • make a prioritized list: probability and impact
  • perform testing exploring each risk
  • after a risk disappears, another opens. Adjust your test effort to stay focused on the current crop

Use case tests

  • use case: a common case that represents one of your customer’s cases
  • use busines language

Structure-based

  • test coverage is different than code coverage
  • test coverage is based on decision tables

Defining testing priorities

  • customer and contractual requirements
  • regulatory
  • experience-based
  • “Best representative”

Disclaimer about AI/GenAI

As of 2026-05-06, the text in these articles and blog entries has been written without AI/GenAI, except I sometimes use a spellchecker to fix errors. Think Word's spellchecker, not ChatGPT.

Notes, as of today (2026-05-06):

  • No code snippet has been automatically generated, nor vibe-coded, nor generated and reviewed.
  • I don’t have any article with AI contribution.

For future entries:

  • I may have used GenAI for the code in the repo. The code I exemplify/copy in the article will always be reviewed and tested, not vibe-coded. I will specify it in each snippet or at the top/bottom of the article.
  • I normally don't use it for the text contents, although if I have used it for the article text, it would be indicated as such.

Any entry before 2026-05-06 does not contain any AI/GenAI.

For more information, read the AI/GenAI Policy

Software gardening manifesto Category: Poodr