QA, QC, and Testing: The Three Pillars of Software Quality Management