It’s possible for a woodworker to build a table which reliably does not collapse, even without having a third party test it.
It’s equally possible for a different woodworker to build a table which will collapse when deployed in a customer’s dining room.
The difference comes down to which woodworker I’ve hired, and how they’ve been trained.
If you can’t trust a woodworker to ship a table that stands under its own weight, layering on third-party QA isn’t really going to fix the underlying problem.
That said, cargo culting the “no QA” model is ill-advised. If a particular dev shop needs QA today, they’ll probably need it tomorrow.
Third party QA should be able to simulate the customer's dining room. If the table collapses during testing, they will file a bug. It's up to management whether to ship anyway.
Bad analogy I think.
A table is a table. It has one core function. An argument can be made that it could be built in a way that a chair can't be pushed against it for example. But the number of such cases for a table are infinitely smaller than the number of edge cases and unexpected interactions a software system can have.
QA is a way to catch those edge cases that a single developer cannot find because of various reasons. One such reason is that devs are very close to their work and they might subconsciously not trigger the unhappy path in their code.
Testing if a table works is vastly different from testing a software system.