Quality Assurance is the process of planning and defining the way of monitoring and implementing the quality(test) processes within a team and organization. This method defines and sets the quality standards of the projects.
Quality Control is the process of finding defects and providing suggestions to improve the quality of the software. The methods used by Quality Control are usually established by quality assurance. It is the primary responsibility of the testing team to implement quality control.
Testing is the process of finding defects/bugs. It validates whether the software built by the development team meets the requirements set by the user and the standards set by the organization.
Here, the main focus is on finding bugs and the testing teams work as a quality gatekeeper.