Different people use different terms to represent their software testing process. Some people call it as “QA” (Quality Analysis), some call it as “software testing” while others represent it with a more formal term called “SQA” (Software Quality Analysis).
All of the above terms represent more or less the same concept – “ensure that the software does not have any defects” !
“Software testing” simply means testing the software to find and report defects (bugs).
“Software Quality Analysis” (SQA or QA) is an engineering and monitoring process where they make sure the software development team follows the proper process to develop the software. This includes preparing the requirements documents, functional specification, high level/low level design documents, test plans, test execution plans etc. Even though testing is also part of it, QA means a lot more. QA involves prevention of defects by monitoring the software development process and testing the software to make sure it works as expected.
In short, testing is the process in which a tester finds the defects in a software. Testing team comes into the project only during the later stages of the project, when the software is almost complete and ready to test.
On the other side, Quality Analysis involves the process through out the life cycle of the project – starting from the requirement analysis phase through the delivery stage. The QA team is responsible to ensure that the development team follows the correct process and thus prevent problems during later stages of the project.
QA team defines the process – which may include various steps like requirement analysis, documentation, approval by customer and various other authorities etc.
At any stage, if the QA team finds that the development team does not follow or meet the defined process, they are responsible to escalate it to the appropriate people including product manager or QA manager.