Testing, QA and QC
Testing is one of the ways of detecting bugs in the product. It can be performed by the tester or dedicated team of testers. This process also includes a stage of test planning before the executing of the system.
What is the Quality control?
Quality control is an independent process of issues detection before the product is delivered to end-users. This process includes product inspection. QC analyzes testing of the product with the purpose of making the final judgment of its quality and, theoretically, can be achieved with minimal testing. It should be stated that testing is still the most important activity but not the only one. In additional to all above mentioned, the most efficient way of ensuring the quality of the product is Quality assurance.
Quality control is a process of issues detection before the product will be delivered.
Why Quality assurance is Important?
Quality assurance is planned and integral activity that focuses on meeting all the requirements for services or products quality and further improvement of the system. So QA is based on engineering processes that guarantee quality in more efficient way than QC. Testing is able to detect the major amount of bugs in the product but this doesn’t mean that these defects won’t take place again. The role of QA is to re-engineer the system so that further occurrence of these defects won't happen. So in fact QA may not include any testing at all.
Quality assurance is a system of methods that guarantee products quality.
But if we want to make the high-level product, a complex quality-assurance system should be built, involving all employees and fostering a certain attitude towards projects and products.
If you are an independent freelancer, then the system is probably not necessary and you can content yourself with a simple testing, involving inexpensive freelance tester.
The more complex the product is, the more time and resources we will need to guarantee its quality. That is why every self-respecting company that values its reputation will definitely implement certain quality policy.
We cannot afford endless testing due to limited budget. Should be clear criteria for the end of testing.
Safeguards of testing
So what safeguards do we get while testing?
Let's look at the most common testing aims and determine what safeguards can be provided by testing:
Aim #1 – Searching for bugs/defects.
Aim #2 – Making sure that the application works according to stated requirements.
Thus, taking into account the first aim, we see that testing should guarantee minimal amount of defects and the second aim ensures that everything will work just as the customer wants it.
Let us imagine the process of bolting sand though a sieve. The amount of sand grains remaining inside will depend on the size and the shape of holes of the net. If we reduce its size and shape we will be able to bolt some more sand, but something will still stay inside the sieve. If we continue reducing its size and shape, our final output will be the finest sand.
And now lets compare testing with the above described process of sand bolting. Each stage of bolting is a testing iteration, the sand grains remaining in the sieve are the defects detected, and bolted grains represent what is has to be found. Every new lap of iteration results into fewer defects left but this requires much greater efforts to detect them. Since we can not afford endless testing due to limited budget, the so-called end of the test criteria come to assistance. They will outline the minimal size of sieve to be used.
So, no matter how many testing and debugging you would do, some amount of bugs still remains. And taking into account the human factor, there will actually be more of them then you think. It turns out that testing only guarantees that the number of bugs will be fewer in production as compared to having no testing at all. And the value of this 'fewer number' will be proportional to the budget allocated for testing, qualification and mood of the testers, as well as the phase of the Moon and magnetic fluctuations...
All bugs are impossible to be found, but try to leave as fewer of them as possible.
The moral for the customer – do not spare money for testing if you are sure in testing team qualification.
The moral for the testers - all bugs are impossible to be found, so just keep doing your job and try to leave as fewer of them as possible.
The moral for the test managers – choose the right sieve since it influences the size of sifted grains.