Please explain testability to me

So for me Testability in practical terms means how easy something is to test.

When there is a lack of testability it slows down feedback, it reduces the quality and dept of our testing efforts, it increases cost, destroys motivation and morale and ultimately results in poor quality.

Conversely focusing on Testability can unleash your development team, to do their best work, allowing them focus on the work that matters and facilitates:

  1. Faster Development.
  2. Earlier testing
  3. Broader & deeper testing
  4. Better more robust automation

This focus allows teams get changes into production safely and quickly in a sustainable way.

I use the 10 P’s of Testability model to help teams identify all the factors that influence the team testing experience:

People

The people in our team possess the mindset, skillset & knowledge set to do great testing and are aligned in their pursuit of quality.

Philosophy

The philosophy of our team encourages whole team responsibility for quality and collaboration across team roles, the business and with the customer.

Product

The product is designed to facilitate great exploratory testing and automation at every level of the product.

Process

The process helps the team decompose work into small testable chunks and discourages the accumulation of testing debt.

Problem

The team has a deep understanding of the problem the product solves for their customer and actively identifies and mitigates risk.

Project

The team is provided the time, resources, space and autonomy to focus & do great testing.

Pipeline

The team’s pipeline provides fast, reliable, accessible and comprehensive feedback on every change as it moves towards production.

Productivity

The team considers and applies the appropriate blend of testing to facilitate continuous feedback and unearth important problems as quickly as possible.

Production Issues

The team has very few customer impacting production issues but when they do occur the team can very quickly detect, debug and remediate the issue.

Proactivity

The team proactively seeks to continuously improve their test approach, learn from their mistakes and experiment with new tools and techniques.

8 Likes