Journal Article

Improving effort-aware defect prediction by directly learning to rank software modules.

Xiao Yu, Jiqing Rao, Lei Liu, Guancheng Lin, Wenhua Hu, Jacky W. Keung, Junwei Zhou, Jianwen Xiang
Inf. Softw. Technol. 2024 10.1016/j.infsof.2023.107250

Abstract

Context: Effort-Aware Defect Prediction (EADP) ranks software modules according to the defect density of software modules, which allows testers to find more bugs while reviewing a certain amount of Lines Of Code (LOC). Most existing methods regard the EADP task as a regression or classification problem. Optimizing the regression loss or classification accuracy might result in poor effort-aware performance. Objective: Therefore, we propose a method called EALTR to improve the EADP performance by directly maximizing the Proportion of the found Bugs (PofB@20%) value when inspecting the top 20% LOC. Method: EALTR uses the linear regression model to build the EADP model, and then employs the composite differential evolution algorithm to generate a set of coefficient vectors for the linear regression model. Finally, EALTR selects the coefficient vector that achieves the highest PofB@20% value on the training dataset to construct the EADP model. To further reduce the Initial False Alarms (IFA) value of EALTR, we propose a re-ranking strategy in the prediction phase. Results: Our experimental results on eleven project datasets with 41 releases show that EALTR can find 5.83%- 54.47% more bugs than the baseline methods whose IFA values are less than 10 and the re-ranking strategy significantly reduces the IFA value by 16.95%. Conclusion: Our study verifies the effectiveness of directly optimizing the effort-aware metric (i.e., PofB@20%) to build the EADP model. EALTR is recommended as an effective EADP method, since it can help software testers find more bugs. 1. Introduction Software Defect Prediction (SDP) has been concerned by more and more researchers in recent years [1-9]. The SDP technique predicts whether the new software modules are faulty or not based on some software features, e.g., Lines Of Code (LOC) and code complexity. Accurate SDP prediction results assist software testers in assigning limited testing resources by focusing on the predicted faulty modules [10-13] and fault localization [14-18]. However, the traditional binary classificationbased SDP models are not enough to offer a more practical guide for software testing, since they cannot differentiate t

Keywords