Testing and Quality: Correlation does not equal Causation

Spurious Correlation

1. Testing

Testing is feedback

Inspection of current state of quality (image source)

Testing should be continuous


Let the test pyramid guide your automation tests/checks

Minimise your manual testing but make it really count

Beware inattentional blindness & testing fatigue


Appropriately involving testing personnel


  • loose coupling & tight cohesion where components in a system are all tightly cohesed through belonging logically together, but are not tightly coupled where they are too tied to and not independent of each other;
  • decoupled classes with public interfaces, allowing for component testing;
  • being able to run headless or UI-less tests;
  • clearly identified, well-named elements in a DOM;
  • having the option of stubbing out the DB and not relying on real data;
  • to name a few.

2. Quality


Measuring quality: continuous and early feedback

  • testing (as discussed above)
  • static analysis of code or models
  • e.g. includes linting (via IDE, build process or pre-commit hook)
  • testability analysis of components / features to be built
  • BDD and/or TDD
  • continuous integration
  • monitoring and alerting
  • build in monitoring, performance and other “non-functional” (a.k.a. cross-functional) requirements, from the outset — try not to retrofit them

Continuous Improvement: reacting to feedback

3. Building in quality — a tale of practices

Work slicing

Image: luuduong.

Reducing waste


  • flow through lead time & frequency of deployment,
  • on bugs through change fail percentage (what percentage of changes break builds, i.e. not caught earlier),
  • and on one’s ability to respond to failures through time to restore.

Just Culture

Collaboration & visibility

Systems thinking

A system and its components. Every component in this picture is both a component of a system, and a system itself. Image credit Milly Rowett.


“Inspection is too late. The quality, good or bad, is already in the product.”




QA Practice Lead | Dev Advocate 🥑. Who loves #lean #agility #devops #QAOPS #devrel. Speaker. Writer. @devopsgirls. “Mature” ice hockey player. INTJ.

Love podcasts or audiobooks? Learn on the go with our new app.

Recommended from Medium

Squirrels in Traffic: How I Cracked the Code

Googliness at Jadu

{UPDATE} Dangerous rosvoja ja poliisi ajaa simulaattori - Stop ryöstö & väkivaltaa Hack Free…

How to deploy and manage the app using Jenkins DSL Script inside K8s?


How to Insert Ads Code (AdSense, Amazon Affiliates link etc.) in WordPress without Plugins

InfluxDB (TICK Stack) — Part2

How to get started on Flutter for Mobile App Development

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
Theresa Neate

Theresa Neate

QA Practice Lead | Dev Advocate 🥑. Who loves #lean #agility #devops #QAOPS #devrel. Speaker. Writer. @devopsgirls. “Mature” ice hockey player. INTJ.

More from Medium

Software Testing Quality Assurance Services: In-House Vs Outsourcing | LogicaBeans

Is test data the engineering problem to solve in 2022?

Is test data the engineering problem to solve in 2022?

A journey into the unknown: how we saw Qase

Chinese Idiom Stories for Software Professionals: #17 It is never too late to mend (亡羊补牢)