QA is not a verb!" /> Yorgos Katsaros

QA is not a verb!

How long will it take to QA that?”

Only QA is left, and we’re ready to deploy!”

It’s in the QA phase.”

Anyone who has worked in the software industry has heard these phrases and other similar numerous times. Can you spot the error?

More often than not, “QA” is used interchangeably with the broader term of “testing” and that is the main issue here. Quality Assurance is not just another step in the software development lifecycle; it’s an inherent element of the cycle itself.

First, let’s get the terms out of the way.

Quality Assurance vs. Quality Control vs. Software Testing

According to IEEE, software Quality Assurance refers to the set of activities that assess and improve processes and work products to provide confidence that software meets quality requirements and business objectives.

Quality Control, a subset of Quality Assurance, refers to the techniques to measure quality characteristics, review work products, and find defects. Some of its activities include: inspections, testing, static analysis, and defect tracking.

So, Software Testing is a subset of QC, and it’s about executing software to surface failures or validate its functionality.

The following figure visualizes the relationship of the three terms.

Three rectangles one into the other. The first one has the text "QA"
inside it and includes the other two. The second one has the word "QC"
inside it and includes the last one. The last one has the word "Testing"
in it.

Quality mentality

Far from being a mere action to check off a list, Quality Assurance embodies a philosophy —- a mindset —- that is extended throughout every aspect of the software lifecycle. It’s not about simply “assuring” quality; it’s about cultivating it and integrating it into the very DNA of our software products.

So, what does “QA is not a verb” mean? It means challenging the notion that quality can be achieved through a single action or isolated process. It means recognizing that QA is not just about catching bugs—-it’s about preventing them. Not only that, but it’s a continuous journey, an ongoing commitment to excellence inherent in every development stage. It’s about creating a culture of quality, where every team member is committed to delivering the best possible product and this can be achieved by actual processes and tools, not only by good intentions.

Processes and Tools

Notably, the later stages of the development are (over)loaded with quality-related activities. The pain point lies in the earlier stages and that is where we should focus (shift-left strategy).

3 Amigos is an activity (exercised mostly among teams using the Agile framework) that occurs early enough to uncover knowledge or communication gaps between product, development, and testing members.

Staying left, there is another ceremony that could bring great value to the whole team. Test plans are often skipped

Another collaborative process conducive to continuous quality in software development is the “Definition of Done” (DoD) rule, where the aforementioned “amigos” define clear criteria for a user story or task to be considered complete. This sets the ground for collaboration and accountability, ensuring that quality considerations, including testing and stakeholder acceptance, are integrated into the development process from the outset, prioritizing quality throughout the lifecycle and delivering software that meets the highest standards.

Moreover, using code linting tools as early as possible in the development stage is a good practice to establish a solid ground for code quality. Code style and format unambiguousness can pave the way for more automated quality checks (e.g., code documentation) as well as reduce code review friction and time.

Along with the above, a well-designed CI/CD pipeline using modern tools (fortunately, there are many nowadays) could enable the teams to rapidly iterate on code changes while maintaining high levels of quality and reliability. By automating repetitive tasks and establishing clear feedback loops, CI/CD pipelines help ensure that quality is baked into every release, from development to production.

Continuous Quality

The software development process has changed dramatically over the last decades. The arrival of “Agile” and “DevOps” has transformed it from a linear process to a circular one, with feedback being a critical part of the chain. This is where the word “continuous” comes into play.

Of course, Continuous Quality is not a new concept. It has been around for quite some time, but somewhere along the road it was detached from Quality Assurance. The goal is to find all the points that contribute to this detachment and eliminate them. Some indications:

The list is not exhaustive, but it’s a good starting point to identify potential obstacles that affect continuous quality.

Hand in hand with DevOps

The concept of modern QA mirrors the one of DevOps. Much like DevOps breaks down silos between development and operations teams, modern QA removes the barriers between the testing and development phases. It’s a paradigm shift from the traditional “throw it over the wall” approach to one where QA is embedded into every stage of the development lifecycle.

Just as DevOps fosters a culture of collaboration, automation, and continuous improvement, QA promotes proactive defect prevention, early feedback loops, and iterative refinement. Together, they form a powerful synergy, driving organizations towards faster, more reliable software delivery while maintaining the highest standards of quality and user satisfaction.

Semantics

Have you seen a column in issue management applications named “QA”? Well, I would suggest letting it go. Having such a column transfers the wrong message across the team and, eventually, the organization. Renaming it to “Testing” or “Review” or anything along those lines would be much more accurate. Does your team have QA Engineers whose activities are only related to testing? Consider renaming the role to “Test Engineer”, “Test Analyst” or something similar.

In general, whenever you spot that “QA” is being used interchangeably with “Testing” you should take action and correct it. Probably, you will become that annoying person who seems obsessed with wording, and there is a good chance to get a few weird stares. Stick with it and things will get more clear regarding quality for everyone down the road.

Don’t underestimate semantics, a few subtle changes can go a long way and deliver the right message.

Educate and Advocate

Promoting a culture of quality requires ongoing education and advocacy within the organization. It is quite surprising how many times quality concepts are either misinterpreted or completely ignored by the teams.

The first dimension is keeping the QA members aligned with the latest QA methodologies and tools. This could be easily achieved with the establishment of a horizontal structure, such a QA Chapter with regular knowledge sharing sessions.

The second dimension is educating the rest of the organization regarding Software Quality practices. Appointing Quality Advocates within teams or across the organization can ensure quality considerations are part of every discussion. Additionally, mentorship programs that pair experienced QA professionals with junior members help inculcate a quality-first mindset.

By continuously educating and advocating for quality, organizations can embed it into their processes and products, leading to better overall outcomes.

Conclusion

In software development, language matters. As we’ve explored the nuances between Quality Assurance, Quality Control, and Software Testing, it’s clear that semantics play a significant role in shaping our approach to quality. While testing (and QC) may be a distinct step in the SDLC, Quality Assurance cannot be reduced to such a step. By aligning our practices with the principles of DevOps, we can drive innovation, collaboration, and quality across every stage of the development lifecycle. So, let’s bid farewell to outdated terminology and embrace a future where quality is not just assured but embedded in every aspect of our digital creations.

References