Quality assurance ensures that the software development process is well-defined and monitored from requirements development through testing. It encompasses activities like requirements development, design, coding, reviews, integration, and testing. The QA team ensures software development and maintenance follow plans, reviews and inspections are conducted, the SQA plan matches the development plan, processes are redefined if needed, and internal audits are performed. A QA plan outlines entry and exit criteria for stages as well as suspension criteria.