This document provides an overview of defect prevention strategies and the roles of quality assurance (QA), quality control (QC), and testing in the software development lifecycle. It discusses who is responsible for quality and defines the differences between QA, QC and testing. QA focuses on processes and preventing defects, QC focuses on product testing and finding defects, and testing identifies bugs. The document also outlines defect prevention techniques used in each phase of development and the activities QA engineers perform pre-production, during production, and post-release.