The overall objective of both Quality Assurance and Software Testing is Software Quality. However, the fundamental difference between testing and quality assurance is stated as follows:
Quality assurance defines the appropriate activities that ensure quality is built into the product. It is a set of activities which are followed methodically to ensure that the development and maintenance processes are adequate to meet the objectives of the system efficiently. QA reviews the different elements of a project.
Testing is performed after the entire product is built. It is a process of executing the system with the intent of finding errors and system vulnerabilities. It also includes test planning before test execution.
Another term usually confused with this context of discussion is Quality Control. It is a set of activities which are defined to ensure whether the developed software meets the customer requirements. Testing is considered to be a part of Quality Control. However, not all the activities in QC are testing. Hence, we can say that testing is an activity under QC.
The final objective of Quality Assurance is to provide assurance of the product quality. It consists of activities which usually precede the development stage of the product and continue throughout the development process. QA focuses on prevention of defects, processes and continued improvements of these processes.
There can be a confusion as to who is responsible for QA and who is responsible for Testing . This decision usually will differ as per the organization, its resources and development methodology under practice. Matured organizations implement a segregated Quality Assurance and Testing practice.
As the two concepts differ, so do the responsibilities associated with each of them.
Testing teams document test reviews, plan test, analyze and design tests, verify and validate tests and test the reporting through various test levels.
The QA team on the other hand performs the following functions:
- Implements standards and policies for quality
- Prepares the project quality solutions
- Ensures that the software processes conform to quality plans
- Conducts regular process and product audits and presents the assessment report to the senior team.
- Assures quality throughout the software development lifecycle
As far as the project documentation is considered, the test team prepares the test documents and plans based on business requirements and design documents. Test documentations cover test processes, test approach, detailed schedules of test, environment requirement, test management and reporting. The QA documentation deals with an extended set of activities. It covers project development methodologies, acceptance criteria, audit processes, configuration management and quality policies.