"When a small number of modules contain most of the bugs detected or shows the most operational failures. Pesticide Paradox: if the same tests are repeated over and over again, eventually the same tests cases will no longer find new bugs"
Defect cluster is based on the Pareto principle that is 80-20 rule. It can be stated that approximately 80 per cent of the problems are caused by the 20 per cent of the modules.
It is believed that the defects in the software are caused by the smaller modules. The distribution of defects may be centralized in few applications rather than across the whole application of the software. This is particularly true for large systems where the software is much more complex, larger in size so much so that change and development mistakes can impact the quality and efficiency of a system.
As it is clear by the name defect clustering, the most of the defects are clustered in particular sections of the application of an application. When a defect is found in one area, one can find more defects in the same area. However, it is advisable to check the other areas of application too. It also defines the area where more testing is required. A perfect analysis helps run the software smoothly on various platforms.
Life cycle of a defect in software testing-
Even defects have their own life cycle. They creep into the software to create confusion just like bacteria entering your body. Some defects are less harmful and some are lethal for the life of the software. Their life cycle needs to be disturbed so as to make the software peacefully. Peaceful software may give you better production. Testing team provides the finding and reporting of the defects in software.
There are four stages of defect life cycle.
Stage 1- Defects are found and reported. Developed software ready for testing is given into the hands of testing team. The testing team follows a procedure.
Stage 2- Defects are reviewed and rectified.
Defects have to reviewed first so as to analyze what kind of methods will be be required to remove them. This is done through a meeting considering the managers and the people associated with the software development.
Stage 3- Debugging of the defects is done and they are completely removed from the application.
Defects are classified into categories and the team for the removal of the defects is delegated. The source code is analyzed and the identification of the root cause is done.
Stage 4- The defects once removed is checked and it is confirmed that they are permanently removed from the software.
The build software is checked further by the testing team to confirm the status of the software. The status of the software is fixed and closed in this stage.
Advantages of Defect clustering-
There are numerous perks of defect clustering that helps in software industry to maintain the fast and efficient delivery of the build software.
It saves time of the management team and the testers so that the defects can be spotted earlier. It is said the "Hot spot" where there are numerous defects is located via this process which is cleared up to avoid any other defects in the application software.
The initial cost of finding defects can be reduced to a significant level. As we focus on certain areas more defects can be found and rectified to improve the quality of the software.
Initial iterations of testing and identifying the defect cluster are useful. The created test cases have a high coverage percentage and high rate of finding defects. This gives a leverage to the testers as they use the information while testing the application software.
Disadvantages of defect clustering-
The initial iterations are useful but we cannot base our final test cases on the initial ones, further defects are ought to be checked out in a software application. One can’t draw a conclusion regarding the application through its initial iterations.
There is a need for reviewing test cases carefully to avoid further introduction of defects. Further introduction or un-reviewed test cases further creates confusion and wastage of time. Furthermore, it hampers the quality and efficiency of a software.
This is all defect clustering is about. It has the greater significance in software testing arena.