Using software testing, we detect software bugs so that they can be removed. The other function which is more important is that through software testing, we are able to assess quality of the software product which is being tested.
When the testing team executes test cases, they are able to detect software defects. From the number of defects found and criticality of these defects; any project stakeholder can make a guess as to level of quality of the software product. This is a very important piece of information because release of the software product can depend on the achieved level of quality at that point of time. If quality level is perceived to be below the expected level then the release of the product can be delayed.
When we are speaking of quality of software product; we should also strive to find root cause which resulted in injection of these defects in the first place. If we can find these root causes then we can definitely prevent injection of these software defects. Sadly the software testing function does not help in finding these root causes.
However, software quality assurance (SQA) indeed helps us in finding these root causes. There are several techniques available in SQA like Pareto Charts, Histographs, Ishikawa charts etc.
These root causes mostly relate to faulty processes. So the next step is to refine your processes so that these root causes can be eliminated.