- QATestLab Blog >
- QA Basics >
- Pareto Principle in Software Testing
Note: The article was updated in February 2021.
The Pareto Principle states that 20% of efforts bring 80% of results, and the other 80% of efforts bring only 20% of results.
The first person to discover this pattern was Vilfredo Pareto, an economist from Italy. He concluded that 80% of all property in Italy belonged to only 20% of the population. He also suggested that this pattern could be found in many other areas.
Eventually, the principle received the name “Pareto Principle” and was applied to a number of different fields and industries. Quality Assurance (QA) is one of them.
In software testing, the Pareto Principle is commonly interpreted as “80% of all bugs can be found in 20% of program modules”. Moreover, a half of the modules may contain no bugs at all. The numbers, of course, are approximate, and the real ratio can be 30% and 70%, etc. The idea is that the distribution of software glitches is not equal, and they usually cluster in a certain part of the code. It is especially typical of the most severe defects.
Applying the Pareto Principle to QA activities helps to decrease testing time and to increase its efficiency. But you should know how and when to use it in order to achieve better results.
Here are several ways to apply the Pareto Principle in software testing:
- Try to sort out the defects according to their causes, not consequences. It means you should not group the bugs that cause the same results. It is better to group the issues that occur in the same module.
- Collaborate with developers to find out new ways to group the issues. For example, they may use the same underlying library for the modules where most of the bugs have been found.
- Spend enough time and effort on identifying the problem areas in code rather than finding random bugs.
- Prioritize test cases in order to start with the most critical ones.
- Analyze the users’ feedback. It will help to identify the risk areas as well.
The Pareto Principle requires good analytical and logical skills. But it can be a very powerful tool for decreasing the amount of bugs while reducing the overall testing effort.
No Comments Yet!
You can be the one to start a conversation.