Difference between QA and testing
Many startups which have developed software and mobile applications sooner or later realized that devs just can't provide perfect product by their own. Clients or customers which used services of such startups begin to complain regarding that final product has many bugs and it doesn't satisfy their requirements and needs. Which in general mean that customers were not satisfied with product quality. In that moment most of startups decide to create a QA department. At least they think that they created a QA department but actually they hired team of manual or automation testers which goal was to provide software testing services for the product. After some time startups saw that although product users now don't complain regarding bugs so much they are still not fully satisfied with quality level of provided for them services. It's happened because most of people which are not directly related to QA are often don't know or don't understand difference between Quality Assurance and Testing. And this knowledge gaps in the end are often cause not satisfying impression for customers. Which you definitely want to avoid as this is bad for your business. To help you to avoid this problem in your company let's look on those terms closer.
Testing - The group of processes which goal is to make sure that the current product version (which may be a fully developed software or just a technical documentation) provide results which will be as close as possible to the expected ones. Providing bug reports which will be clear and comprehensive for better and quicker resolving. Testing may be done with using of many different methods and types, it may be performed fully manually or be automated where it is possible, may be done for static or for dynamic processes during the full product developing cycle. Important point here - testing is performed to find issues which already exist in product. Like incomplete specifications or bugs in applications. In other words the main testing purpose is to make sure that occurred on product issues will not reach the customers after release.
Quality Assurance - The group of processes which goal is to make sure that all stages of product development satisfy the highest as possible quality criteria. Providing of best Quality Assurance is really depends on ability of QA team to gather and analyze the statistic data of product development process. By having complete statistics of all processes QA team may find the weak places which affect the final quality of developed product. Such weak places for example may be inexperienced person which work requires a lot of additional testing and fixing or some development stages which are organized not effective enough and this cause to have major time lost in next stages due to occurred issues resolving which will require more resources and will move release date out of desired scope. The main point of QA is that it's work affect all processes of product development such as designing, developing, testing, releasing etc. It's goal to manage all processes in such way so that issues will just not happen at all! In ideal world of course. In real world QA department just do their best to reduce amount of issues to minimum.
So now you see that the difference here is really obvious and clear - Testing helps to find and fix already existing bugs and QA helps to avoid them to happen. Both those processes are important and if you want to satisfy best quality criteria then you can't have one without another. But separate QA department in IT sphere is quite rare phenomenon. From one side each additional person which is used for product make it more expensive and less competitive relative to other products which provide same services. From another side it hard to find a person which will know all product development stages on such high level so that he will be able to evaluate its effectivity competently. But if we will look at product development cycle from aside it will become obvious that we already have a team which actually do the big part of QA department work - evaluate the quality of the product during most of development stages. That's why in most cases QA and Testing on project are performed by same team. And this also pretty logical as by knowing issues which happen during the product developing process it's more easy to locate what are the main sources of them in the product development itself.
Statistics in QA
But don't forget about statistics! Many unexperienced QA teams are often forgot about statistic and mostly cure the symptoms of the illness instead of the illness itself.
For example let's discuss next case - testing team usually not feet in release schedule. Testing consumes more time then it should. In most cases such issue will be resolved by hiring more manual or automation testers. Or even performing some changes in current team structure. This may help but this is only cure for the symptom while the illness is still there.
More experienced QA team will make sure to gather the statistic during the development. And after analyzing it they will see that first days of testing are sometimes have near zero effectiveness due to regularly appearing at this periods blockers which stop the testing on first steps and not allow team to test the most of new features functionality during that period.
So OK - let's add some additional sanity test requirement which will be done by dev team itself or by test team ASAP after story release to minimize amount of time which will be required to find and fix those blockers quick enough so that production release schedule will not be harmed. This solution will also help us. But again - it's only cure for symptom. But now we are on one more step closer to find the source of this problems.
Good QA team gather and analyze statistics not only during the testing period but during other developing processes as well. And by having such general statistics it will become obvious that it's not so rare when new tickets with urgent requirements for feature are appearing in the last days of development so devs are forced to make quick fixes which cause unexpected behavior in applications. And this what the initial source of the problem of not fitting in the release schedule!
So now we only left to ask product managers to take into consideration that last minute changes have bad influence on the release schedule and that it maybe better to have more flexible schedule with small sprints or make all changes as patch after the general release. This is only one example of how qualified QA team may help your with resolving of various issues even before they will cause real bugs.
That's why having the experienced QA team which will not only know how to test different kinds of applications in manual or automation way but also will know how to properly analyze statistics and provide rational solutions for noticed problems is one of the main keys to successful software developing! Hope that this article didn't leave any open questions for you and it was interesting to read it. Have a nice day and make good effort in improving the quality of software in the world!