
Testability Is About People, Not Just Code
Rethinking Testability Part 1

Poor Testability
I’ve lost count of the times I’ve seen similar scenarios play out:
A tester — or sometimes a developer — spends hours just getting the system into a testable state. By the time everything is finally configured, they’ve got maybe twenty minutes left to actually do the testing.
They don’t complain.
Nobody on the team does.
It’s just how things are.
But to me, that’s not just a scheduling hiccup or a minor annoyance.
It’s a symptom of something deeper: poor testability.
The Narrow View That Holds Us Back
In my experience, when “testability” comes up in technical discussions, it’s almost always framed in narrow, code-focused terms.
The ISO 25010 standard, for example, defines it as:
“The degree of effectiveness and efficiency with which test criteria can be established for a system, and tests performed to determine if they’re met.”
It’s not completely wrong — but it’s incomplete.
This definition treats testability as something the system has, as if the only point of testing is to check that known expectations are met.
But testing is so much more than that. It’s about learning. It’s about discovering things you didn’t expect. It’s about questioning assumptions and exploring risks before they turn into real problems.
When we define testability too narrowly, we risk building systems that are easy to check but hard to learn from. And that’s where the real damage happens!
A More Human-Centric Definition

After 25 years in software development, here’s how I see it:
Testability is how easy it is for a specific person to test a specific product in a specific context.
That single sentence changes the conversation.
It forces us to look beyond the code and think about:
- Who is doing the testing, and what skills and knowledge they bring.
- What tools they have, and how easy those tools are to use.
- The culture of the team, the pressures of deadlines, and the development practices in play.
- The architecture and purpose of the product itself.
- …the list continues. For a deep dive into the dimensions that affect Testability – have a look at my previous work on testability.
These aspects aren’t fixed. They shift over time — even within the same team. What feels smooth and straightforward to one person might feel painfully slow to another.
That’s why I don’t think testability is about speed. It’s about effort — how much effort it takes for this person, in this moment, to make real progress in testing.
Why This Matters More Than You Think
When testability is low, it doesn’t just slow down releases or make bug-hunting harder.
It drains energy. It discourages curiosity. It not only undermines confidence in the product but may also create a dangerous illusion of reliability.
In my experience, many people look at a green test suite and assume everything’s fine. But they don’t talk about what it took to get there.
Tests passed—but only after multiple retries.
Or the environment was unstable, so corners were cut.
Or the system was too painful to set up properly, so we didn’t test very deeply.That struggle—that story—rarely show up in the report.
It’s all green.
It’s an illusion based on data with no context.
I’ve seen skilled testers spend most of their day wrestling with flaky environments instead of exploring the product.
I’ve seen teams skip entire categories of tests — not because they didn’t care, but because the setup was too painful.
I’ve even seen burnout happen not from impossible deadlines, but from the constant grind of fighting the system just to do the basics.
The hardest part is that burnout doesn’t stay at the office. It follows people home. It affects evenings, weekends, families, and mental health.
Poor testability might look like a technical issue on the surface, but its impact runs much deeper.
So – Improving testability isn’t just a technical win. It’s a human one.
It changes how smoothly we work, how quickly we learn, and how confident we feel about the results we’re getting.
Where to Start
If you want to improve testability in your team, start by looking beyond the code.
- Talk about people, not just systems.
Ask: Who’s testing this, and what do they need to succeed? - Look beyond speed.
Faster isn’t always better. Less friction is better. - Measure the effort, not just the output.
Track how long it takes to get into a testable state, how easy it is to observe and control the system — not just how many tests pass.
Testability is a reflection of how we work.
When we improve it, we’re not just improving the code — we’re improving the whole experience of building and testing.