Ensuring quality

“A tester ensures the quality of the product.” — Probably just as much as my donations to wwf are helping me to “save endangered species.”

The other day I listened to a podcast by the Bach brothers. One of the things they pointed out as needing improvement is the accuracy of testers’ statements. As an example, they cite — and question — the familiar statement “a tester ensures the quality of the product” which many of us use to describe what we do. But then I guess it can’t be helped. Someone I follow on twitter shared that a book on software development described the tester’s task is to verify that software is correct.

Is that really what I’m supposed to do? Ensure quality? Well, it does make my work sound more powerful. It sure makes for better marketing than “find bugs”. And probably for more attractive hiring. But there’s a shred — ok, a tiny sliver — of truth to it albeit so indirectly (just as i am saving endangered species… somehow).

In the podcast, Jon Bach suggested the term “assistance.” Between “ensuring quality” and “helping” to do so, what we do comes closer to the latter. We help our SAs by spotting design holes. We help our devs by spotting errors and misses in their code. We help them when we give clear and concise bug reports — all the more when we do bug isolation and provide accurate reports. We help our team leads by providing information on the product under test. Et cetera, et cetera. Sometimes it may not be quite obvious but we, testers, are a very helpful bunch!

We do our bit, we play our part. But no matter how well we play it, by ourselves, we (testers) cannot ensure quality. I reckon it’s a team thing. What we do as members of the project team (be it testers, devs, SAs, etc), how badly or how well we do it, can either make or break our software product.

Quality control and quality assurance

These two terms are often used interchangeably, however, they DO have their differences. Quality Control refers to ensuring the quality of the products or the deliverables. This includes the search for defects on the deliverables through peer reviews and testing.  And this is primarily what [company name] testers are expected to do. Quality Assurance, on the other hand, looks more into the process of preparing the deliverables.

For instance, in your projects, you would notice that there are guidelines, standards, defined procedures and metrics for tasks done by developers and testers. These are examples of QA mechanisms as they try to ensure that the development of the product is kept on track and that the requirements of the system/client are met. Similarly, QC tries to help ensure that requirements of the system/client are met. But this is achieved through reviews and testing which expose the inadequacies and defects of the product.

One simple way to put it is that QA is process-oriented while QC is product-oriented.