Testing, QA, and QC are processes to ensure software quality. Testing identifies defects through intentional efforts to make software fail. QA ensures quality standards are followed throughout development. QC verifies software meets predefined standards. Together, testing, QA and QC aim to find and fix defects early to deliver high quality software. The document discusses various testing types like black box/white box testing and provides examples of real world software failures caused by a lack of effective testing.