agile defects prediction
Defects prediction is an important and widely researched area. Multiple models involving various software aspects and metrics have been proposed and evaluated in the past. Most of them look at static properties of a specific version of software system or at the entire history of changes for that system. This often leads to prediction of defects for software elements that had many defects in the past and not necessarily in the present. Moreover, it leads to defect prediction on code that may not have changed for some time and is therefore unlikely to contain new defects. In the paper we present a novel approach for defects prediction that compares two consequent releases of a software artifact by analyzing the changes at different levels of granularity. We show that our approach is able to classify elements that were added or changed during the development of the new version as defect prone with high precision. Additionally, we provide a hierarchical visualization technique that guides the code review and testing process, highlighting defect prone code. This saves review and testing time while improving the quality of the new release of the software. Our technique is aligned with the modern Agile and Dev-Ops development methodologies that have short development cycles and frequent releases, as it focuses only on what has actually changed in the code.