Predicting bugs using antipatterns

Authors: Seyyed Ehsan Salamati Taba Foutse Khomh Ying Zou Ahmed E. Hassan Meiyappan Nagappan

Venue: ICSME   2013 IEEE International Conference on Software Maintenance, pp. 270--279, 2013

Year: 2013

Abstract: Bug prediction models are often used to help allocate software quality assurance efforts. Software metrics (e.g., process metrics and product metrics) are at the heart of bug prediction models. However, some of these metrics like churn are not actionable, on the contrary, antipatterns which refer to specific design and implementation styles can tell the developers whether a design choice is "poor" or not. Poor designs can be fixed by refactoring. Therefore in this paper, we explore the use of antipatterns for bug prediction, and strive to improve the accuracy of bug prediction models by proposing various metrics based on antipatterns. An additional feature to our proposed metrics is that they take into account the history of antipatterns in files from their inception into the system. Through a case study on multiple versions of Eclipse and ArgoUML, we observe that (i) files participating in antipatterns have higher bug density than other files, (ii) our proposed antipattern based metrics can provide additional explanatory power over traditional metrics, and (iii) improve the F-measure of cross-system bug prediction models by 12.5% in average. Managers and quality assurance personnel can use our proposed metrics to better improve their bug prediction models and better focus testing activities and the allocation of support resources.

Preprint: PDF


    author = "Seyyed Ehsan Salamati Taba and Foutse Khomh and Ying Zou and Ahmed E. Hassan and Meiyappan Nagappan",
    title = "Predicting bugs using antipatterns",
    year = "2013",
    pages = "270--279",
    booktitle = "Proc. of 2013 IEEE International Conference on Software Maintenance"

Plain Text:

Seyyed Ehsan Salamati Taba, Foutse Khomh, Ying Zou, Ahmed E. Hassan, and Meiyappan Nagappan, "Predicting bugs using antipatterns," 2013 IEEE International Conference on Software Maintenance, pp. 270--279