Enhancing the Performance of Software Defects Predictors Using Defect Taxonomies
摘要
Software quality remains an important concern in the development process, with many proposed approaches for improving the detection of existing defects as well as predicting their most likely locations in the source code. Software defect prediction (SDP) is a process that aims to estimate the location of yet undiscovered defects and is often carried out through statistical analyses or machine learning techniques. In this paper, we propose a novel two-stage hybrid approach for predicting the error-proneness of classes in a given software version by using a defect taxonomy unsupervisedly uncovered from previous software versions. In the first stage, known defects from all available software versions are labeled using an unsupervised learning approach. The second stage consists of using a supervised classifier to predict the error-proneness of each class of the current software version using the defect taxonomy uncovered in the previous stage. We carried out an initial evaluation of our within-project SDP approach using 16 versions of the open-source Apache Calcite software. We showed that developing predictors for different software defect classes increased the prediction performance by approximately 5% in terms of the average Area under the Receiver Operating Characteristic curve. In addition, the generality of the proposed approach is highlighted through experiments showing that performance improvement in predicting specific types of defects will be preserved by changing the feature-based representation of the software entities.