QA is Not Final Testing
I see a lot of people (CTOs included) who are still confused about this, so let’s say it again: QA does not mean final testers. Just like many others in the software engineering field, that’s a common fallacy.
A “QA professional” is not a manual tester sitting at the end of a production line, waiting to receive batches of work to validate from developers, acting as a go/nogo gate to production.
That’s “quality control”, not “quality assurance”, and it’s a big anti-pattern in most software contexts, causing waste and low quality, as well as preventing important practices like Continuous Delivery.
Quality Assurance means building quality into every step of the overall process. It permeates the development of a new feature from day one. QA professionals work side by side with developers, fostering a high-quality culture in every aspect of their job. That’s the reason why, in many cases, teams don’t even need dedicated QA staff.
So what do QA professionals do?
As Bryan Finster says:
- Help refine requirements to ensure they are testable;
- Review and help improve the test architecture;
- Help with tooling and methods to accelerate quality feedback;
- Help upskill developers who haven’t been taught to test.
Provided that QAs are not manual testers for final inspection, do we need to get rid of manual testers? For quality control, yes. For regression testing, yes. For exploratory testing, no. Exploratory testing is where humans do their best, and a crucial practice that, unfortunately, is often neglected.
Quality Assurance != Quality Control.