Search by labels

Sunday, September 6, 2026

🧭 Pragmatic QA: Not Every Release Deserves the Same Testing

One of the biggest mistakes we make in Quality Assurance is assuming that more process automatically means more quality.

It doesn't.

Good QA is about applying the right level of quality assurance to the right level of risk.

A startup launching its first version to 500 users should not necessarily have the same release process as a mature banking platform serving millions of customers.

For the first one, speed and customer feedback might be the priority.

Release. Learn. Fix. Iterate.

For the second, a production incident could affect thousands of customers, financial transactions, regulatory obligations and the company's reputation.

There, extensive regression, security, performance and operational validation might be absolutely justified.

Context matters.

And the same principle applies to individual releases.

One release might introduce a new authentication mechanism affecting the entire customer base.

That could justify:
→ Full regression
→ Performance testing
→ Penetration/security testing
→ Compatibility testing
→ Extensive production readiness checks

Another release might contain a small, isolated bug fix.

Does it really make sense to put both through exactly the same QA process?

Probably not.

Applying the same checklist to every change doesn't necessarily make your product safer.

Sometimes it just makes QA the bottleneck in the SSDLC.

⚖️ Quality is risk management, not perfection.

Imagine your release candidate fixes 3 critical production bugs, but introduces 1 known minor UI issue.

Should QA approve it?

The textbook answer might be:

❌ No. There is a known regression.

The pragmatic answer might be:

✅ Yes.

Fixing three critical customer problems today may deliver significantly more value than delaying everything because of one minor issue that can safely be fixed in the next release.

That doesn't mean ignoring the bug.

Document it. Assess its impact. Get the right stakeholders to accept the residual risk. Prioritize the fix.

Then release.

There are a few principles I've learned to value more and more:

🎯 Test based on risk, not habit.
Ask what can actually go wrong with this change instead of automatically executing everything you executed last time.

πŸ“Š Think in terms of customer impact.
Severity on a Jira ticket is useful. Customer impact is more important.

🚦 QA approval doesn't mean "zero bugs."
It means we understand the remaining risks and have enough confidence to release.

πŸ”¬ Choose the right testing level.
Not every problem requires UI regression. Sometimes unit, API or targeted integration testing gives you faster and better confidence.

🀝 Make release decisions collaboratively.
QA should provide visibility into quality and risk. Product, Engineering, Security, Operations and other stakeholders should participate when the risk belongs to them.

πŸ“ˆ Increase QA rigor as the product matures.
Your quality strategy should evolve with your product, architecture, customer base and consequences of failure.

⚡ Consider the cost of NOT releasing.
We often analyse the risk of deploying a change but forget the other side of the equation.

Keeping a critical customer issue in production for another week is also a risk.

And sometimes it is the bigger one.

The goal of QA was never to create the biggest checklist, execute the most test cases or produce the most documentation.

The goal is to help the organization answer one question:

"Do we have enough confidence to release this change?"

Sometimes getting that confidence requires three weeks of testing.

Sometimes it requires three hours.

Knowing the difference is what I call:

Pragmatic QA.

Quality should enable delivery — not compete with it.

No comments:

Post a Comment