Rethinking Software Quality

Published on March 11, 2025

Delivering quality software—software that delights customers and meets stakeholders’ expectations—is a journey, not just a checkpoint. Too often, people conflate quality with testing. This may be because software testing has historically been referred to as Quality Assurance (QA), reinforcing the misconception that testing alone ensures quality.

Even within testing, the term is frequently misunderstood, reduced to merely finding bugs or breaking software rather than enabling the delivery of reliable, valuable, and user-centric solutions. In this piece, I want to break down the distinctions between software quality and software testing, why they matter, and how teams can move beyond these misconceptions to build truly high-quality software.

Thanks for reading Road Less Tested! Subscribe for free to receive new posts and support my work.

What Is Software Quality?

Quality is an intrinsic and relative value—what one person considers "high quality" may not meet another’s expectations. This is especially true in software development. When we talk about software quality, we need to consider who defines quality and how we assess and measure it.

Quality Is Defined by Stakeholders

Quality software is software that meets the expectations of those who matter—stakeholders, customers, users, and business owners. These are the people who use the software, invest in it, and ultimately define what "quality" means in their context. Engineering teams work for these stakeholders, and our ability to deliver quality software depends on understanding their definition of quality.

What Does It Take to Deliver Quality?

Ensuring quality software requires more than just testing. It involves a combination of:

  • Communication: Do we truly understand what stakeholders and customers want? Are we going beyond verifying requirements and instead ensuring we're solving the right problems?

  • Collaboration: Do teams work together effectively? Do they share a clear understanding of what "quality" means to stakeholders? Are they able to communicate and clarify uncertainties?

  • Processes & Practices: Quality is built into software through disciplined coding practices, code reviews, software testing, automation, CI/CD pipelines, and feedback loops—all of which shape the end product.

What Is Software Testing?

Software testing is one piece of the quality puzzle, but it is often misunderstood. Testing is frequently reduced to finding bugs or verifying that requirements were met, but in reality, testing is much broader and more strategic. Software testing is a critical investigative process that evaluates software behavior, identifies flaws, and highlights potential risks. It provides valuable insights that help teams assess software readiness and make informed decisions about its quality and reliability.

Testing Happens at Every Stage of Development

Testing should be embedded throughout the entire software lifecycle, before, during, and after coding:

  • Before coding: Understanding risks, defining acceptance criteria, exploratory testing of prototypes.

  • During coding: Unit testing, pair programming, static analysis, shift-left testing approaches.

  • After coding: Automated regression testing, manual exploratory testing, performance and security testing.

  • Before and after deployment: Canary releases, observability, production monitoring, feature flagging strategies.

This holistic approach to testing (inspired by Lisa Crispin & Janet Gregory's Holistic Testing principles) ensures that quality is continuously assessed and improved, rather than tested in at the last minute.

Why This Distinction Matters

Understanding the difference between software quality and software testing is crucial because achieving quality software requires many different strategies—of which testing is only one.

Over the past few years, the term Quality Engineering (QE) has gained traction, signaling an industry shift. Organizations are beginning to recognize that delivering quality software goes beyond tools and is about creating a culture of quality that permeates all engineering teams.

Ultimately, delivering high-quality software is about mindset, collaboration, and continuous improvement—and testing!

Subscribe now

How does your team approach quality? Have you seen the shift from "QA" to "Quality Engineering" in your organization? Drop a comment and share your thoughts!

Related content: