Quality Assurance (QA) is the set of guidelines used in production engineering to ensure quality throughout the development cycle and thus a consistent level of product quality.
Quality assurance is proactive. It intervenes in the production of goods, products, software and services, is intended to prevent errors during development and thus ensure the specified product characteristics. In software development, the terms test or software testing are used instead of quality assurance. However, quality assurance is concerned with process quality, whereas software testing is concerned with product quality. The difference between quality assurance and quality control is that quality assurance provides the general guidelines, whereas quality control describes the individual control of single items and looks at the possible defects.