Defect management is essential to software projects. Team performance is often measured by the bug rate (the number of bugs reported against the total number of bugs) as the KPI of development teams. Therefore, it is natural that teams are trying so hard to lower down the rate to improve their KPIs. However, the ideal state of testing should be NO MORE BUGS. Read the following story about a pharmacist who lived in ancient China and see why lowering down the rate is not a cure.
The King of Wei Kingdom once asked Bian Que, a famous pharmacist in ancient China, " You have two brothers who are also good at medicine. Of you three, who is the best?"
"The eldest brother is the best, and the second eldest is second best, which means I am the worst. " said Bian Que.
The King was very confused and asked Bain Que why.
Bian Que said, "The eldest brother always fixes the disease before it shows any symptoms on patients. His patients didn't even know they were sick, so his treatment is not credited by his patient and they are not appreciated his help. Consequently, he cannot be famous for his medicine. Only our family knows that he is really good."
"My second eldest brother always prescribes medicines when there is a symptom shown. His patients would not be in pain, because it just started to show. With his medicine, patients can be cured. Therefore, it is believed that he is good at using herbs and medicines."
"I am quite different. I can only prescribe medicines when patients are in a lot of pain for the disease, because I can only find the cause of the disease with a lot of symptoms. Their family will see me using all my skills and knowledge to save the patients. When their serious condition is alleviated or cured, the family really appreciated my help and marveled at my medical skills. They would tell others how great I am and that is how I become famous. "
Then the king was enlightened.
It is the same for developers and testers. Testing should be implemented from the very beginning of production, such as in each requirement, the design of the framework, and coding. Try the best to do the right thing from the beginning, rather than report bugs in testing and fix them later.