How Far We Have Progressed in the Journey? An Examination of Cross-Project Defect Prediction

Background. Recent years have seen an increasing interest in cross-project defect prediction (CPDP), which aims to apply defect prediction models built on source projects to a target project. Currently, a variety of (complex) CPDP models have been proposed with a promising prediction performance. Problem. Most, if not all, of the existing CPDP models are not compared against those simple module size models that are easy to implement and have shown a good performance in defect prediction in the literature. Objective. We aim to investigate how far we have really progressed in the journey by comparing the performance in defect prediction between the existing CPDP models and simple module size models. Method. We first use module size in the target project to build two simple defect prediction models, ManualDown and ManualUp, which do not require any training data from source projects. ManualDown considers a larger module as more defect-prone, while ManualUp considers a smaller module as more defect-prone. Then, we take the following measures to ensure a fair comparison on the performance in defect prediction between the existing CPDP models and the simple module size models: using the same publicly available data sets, using the same performance indicators, and using the prediction performance reported in the original cross-project defect prediction studies. Result. The simple module size models have a prediction performance comparable or even superior to most of the existing CPDP models in the literature, including many newly proposed models. Conclusion. The results caution us that, if the prediction performance is the goal, the real progress in CPDP is not being achieved as it might have been envisaged. We hence recommend that future studies should include ManualDown/ManualUp as the baseline models for comparison when developing new CPDP models to predict defects in a complete target project.

[1]  Tim Menzies,et al.  Too much automation? The bellwether effect and its implications for transfer learning , 2016, 2016 31st IEEE/ACM International Conference on Automated Software Engineering (ASE).

[2]  Xiaoyan Zhu,et al.  Does bug prediction support human developers? Findings from a Google case study , 2013, 2013 35th International Conference on Software Engineering (ICSE).

[3]  Andreas Zeller,et al.  Mining metrics to predict component failures , 2006, ICSE.

[4]  Tiago L. Alves,et al.  Deriving metric thresholds from benchmark data , 2010, 2010 IEEE International Conference on Software Maintenance.

[5]  Andreas Zeller,et al.  Predicting defects using change genealogies , 2013, 2013 IEEE 24th International Symposium on Software Reliability Engineering (ISSRE).

[6]  Y. Benjamini,et al.  Controlling the false discovery rate: a practical and powerful approach to multiple testing , 1995 .

[7]  Premkumar T. Devanbu,et al.  Recalling the "imprecision" of cross-project defect prediction , 2012, SIGSOFT FSE.

[8]  Ayse Basar Bener,et al.  Data mining source code for locating software bugs: A case study in telecommunication industry , 2009, Expert Syst. Appl..

[9]  Ashkan Sami,et al.  Using complexity metrics to improve software security , 2013 .

[10]  Ying Zou,et al.  Data Transformation in Cross-project Defect Prediction , 2017, Empirical Software Engineering.

[11]  Bart Baesens,et al.  Investigating Associative Classification for Software Fault Prediction: An Experimental Perspective , 2014, Int. J. Softw. Eng. Knowl. Eng..

[12]  Pornsiri Muenchaisri,et al.  Predicting Faulty Classes Using Design Metrics with Discriminant Analysis , 2003, Software Engineering Research and Practice.

[13]  Michele Lanza,et al.  Evaluating defect prediction approaches: a benchmark and an extensive comparison , 2011, Empirical Software Engineering.

[14]  Alok Mishra,et al.  Experience in Predicting Fault-Prone Software Modules Using Complexity Metrics , 2012 .

[15]  Jens Grabowski,et al.  Global vs. local models for cross-project defect prediction , 2017, Empirical Software Engineering.

[16]  Rongxin Wu,et al.  ReLink: recovering links between bugs and changes , 2011, ESEC/FSE '11.

[17]  Yuming Zhou,et al.  On the ability of complexity metrics to predict fault-prone classes in object-oriented systems , 2010, J. Syst. Softw..

[18]  Baowen Xu,et al.  An Improved SDA Based Defect Prediction Framework for Both Within-Project and Cross-Project Class-Imbalance Problems , 2017, IEEE Transactions on Software Engineering.

[19]  Tim Menzies,et al.  Local vs. global models for effort estimation and defect prediction , 2011, 2011 26th IEEE/ACM International Conference on Automated Software Engineering (ASE 2011).

[20]  Ayse Basar Bener,et al.  Empirical evaluation of the effects of mixed project data on learning defect predictors , 2013, Inf. Softw. Technol..

[21]  Burak Turhan,et al.  A Systematic Literature Review and Meta-Analysis on Cross Project Defect Prediction , 2019, IEEE Transactions on Software Engineering.

[22]  Jongmoon Baik,et al.  Value-cognitive boosting with a support vector machine for cross-project defect prediction , 2014, Empirical Software Engineering.

[23]  Naoyasu Ubayashi,et al.  Studying just-in-time defect prediction using cross-project models , 2015, Empirical Software Engineering.

[24]  Zhaowei Shang,et al.  Negative samples reduction in cross-company software defects prediction , 2015, Inf. Softw. Technol..

[25]  Khaled El Emam,et al.  The Confounding Effect of Class Size on the Validity of Object-Oriented Metrics , 2001, IEEE Trans. Software Eng..

[26]  Harald C. Gall,et al.  Cross-project defect prediction: a large scale experiment on data vs. domain vs. process , 2009, ESEC/SIGSOFT FSE.

[27]  Andrea De Lucia,et al.  Cross-project defect prediction models: L'Union fait la force , 2014, 2014 Software Evolution Week - IEEE Conference on Software Maintenance, Reengineering, and Reverse Engineering (CSMR-WCRE).

[28]  Min Jiang,et al.  Exploiting Correlation Subspace to Predict Heterogeneous Cross-Project Defects , 2016, Int. J. Softw. Eng. Knowl. Eng..

[29]  Çağatay Çatal The use of cross-company fault data for the software fault prediction problem , 2016 .

[30]  Ye Yang,et al.  An investigation on the feasibility of cross-project defect prediction , 2012, Automated Software Engineering.

[31]  Qing Sun,et al.  Software defect prediction via transfer learning based neural network , 2015, 2015 First International Conference on Reliability Systems Engineering (ICRSE).

[32]  Pradeep Singh,et al.  Cross Project Software Fault Prediction at Design Phase , 2015 .

[33]  Tim Menzies,et al.  Better cross company defect prediction , 2013, 2013 10th Working Conference on Mining Software Repositories (MSR).

[34]  Geeta Sikka,et al.  An investigation on the effect of cross project data for prediction accuracy , 2017, Int. J. Syst. Assur. Eng. Manag..

[35]  Yutao Ma,et al.  TDSelector: A Training Data Selection Method for Cross-Project Defect Prediction , 2016, ArXiv.

[36]  Riccardo Scandariato,et al.  The Effect of Dimensionality Reduction on Software Vulnerability Prediction Models , 2017, IEEE Transactions on Reliability.

[37]  Baowen Xu,et al.  Cost-sensitive transfer kernel canonical correlation analysis for heterogeneous defect prediction , 2018, Automated Software Engineering.

[38]  Shujuan Jiang,et al.  Which Is More Important for Cross-Project Defect Prediction: Instance or Feature? , 2016, 2016 International Conference on Software Analysis, Testing and Evolution (SATE).

[39]  J. Hanley,et al.  The meaning and use of the area under a receiver operating characteristic (ROC) curve. , 1982, Radiology.

[40]  Akito Monden,et al.  An Ensemble Approach of Simple Regression Models to Cross-Project Fault Prediction , 2012, 2012 13th ACIS International Conference on Software Engineering, Artificial Intelligence, Networking and Parallel/Distributed Computing.

[41]  Akito Monden,et al.  Assessing the Cost Effectiveness of Fault Prediction in Acceptance Testing , 2013, IEEE Transactions on Software Engineering.

[42]  Ayse Basar Bener,et al.  Defect prediction from static code features: current results, limitations, new approaches , 2010, Automated Software Engineering.

[43]  Ayse Basar Bener,et al.  Regularities in Learning Defect Predictors , 2010, PROFES.

[44]  A. Zeller,et al.  Predicting Defects for Eclipse , 2007, Third International Workshop on Predictor Models in Software Engineering (PROMISE'07: ICSE Workshops 2007).

[45]  Martin Monperrus,et al.  A critical review of "automatic patch generation learned from human-written patches": essay on the problem statement and the evaluation of automatic software repair , 2014, ICSE.

[46]  Witold Pedrycz,et al.  A comparative analysis of the efficiency of change metrics and static code attributes for defect prediction , 2008, 2008 ACM/IEEE 30th International Conference on Software Engineering.

[47]  Hongfang Liu,et al.  Testing the theory of relative defect proneness for closed-source software , 2010, Empirical Software Engineering.

[48]  Audris Mockus,et al.  Towards building a universal defect prediction model with rank transformed predictors , 2016, Empirical Software Engineering.

[49]  Gerardo Canfora,et al.  Defect prediction as a multiobjective optimization problem , 2015, Softw. Test. Verification Reliab..

[50]  Hareton K. N. Leung,et al.  An in-depth study of the potentially confounding effect of class size in fault prediction , 2014, TSEM.

[51]  Tracy Hall,et al.  A Systematic Literature Review on Fault Prediction Performance in Software Engineering , 2012, IEEE Transactions on Software Engineering.

[52]  Igor Scaliante Wiese,et al.  An exploratory study about the cross-project defect prediction: Impact of using different classification algorithms and a measure of performance in building predictive models , 2015, 2015 Latin American Computing Conference (CLEI).

[53]  Lionel C. Briand,et al.  Assessing the Applicability of Fault-Proneness Models Across Object-Oriented Software Projects , 2002, IEEE Trans. Software Eng..

[54]  Taghi M. Khoshgoftaar,et al.  Evolutionary Optimization of Software Quality Modeling with Multiple Repositories , 2010, IEEE Transactions on Software Engineering.

[55]  Burak Turhan,et al.  Search Based Training Data Selection For Cross Project Defect Prediction , 2016, PROMISE.

[56]  Jaechang Nam,et al.  CLAMI: Defect Prediction on Unlabeled Datasets , 2015, ASE 2015.

[57]  Rahul Premraj,et al.  Network Versus Code Metrics to Predict Defects: A Replication Study , 2011, 2011 International Symposium on Empirical Software Engineering and Measurement.

[58]  Song Wang,et al.  Automatically Learning Semantic Features for Defect Prediction , 2016, 2016 IEEE/ACM 38th International Conference on Software Engineering (ICSE).

[59]  Jens Grabowski,et al.  [Journal First] A Comparative Study to Benchmark Cross-Project Defect Prediction Approaches , 2018, 2018 IEEE/ACM 40th International Conference on Software Engineering (ICSE).

[60]  Hongyu Zhang,et al.  An Empirical Study of Class Sizes for Large Java Systems , 2007, 14th Asia-Pacific Software Engineering Conference (APSEC'07).

[61]  Adenilso da Silva Simão,et al.  Feature Subset Selection and Instance Filtering for Cross-project Defect Prediction - Classification and Ranking , 2016, CLEI Electron. J..

[62]  David Lo,et al.  HYDRA: Massively Compositional Model for Cross-Project Defect Prediction , 2016, IEEE Transactions on Software Engineering.

[63]  Show-Li Jan,et al.  Power and sample size determinations for the Wilcoxon signed-rank test , 2007 .

[64]  Jongmoon Baik,et al.  A transfer cost-sensitive boosting approach for cross-project defect prediction , 2017, Software Quality Journal.

[65]  Jaechang Nam,et al.  CLAMI: Defect Prediction on Unlabeled Datasets (T) , 2015, 2015 30th IEEE/ACM International Conference on Automated Software Engineering (ASE).

[66]  Andreas Zeller,et al.  Change Bursts as Defect Predictors , 2010, 2010 IEEE 21st International Symposium on Software Reliability Engineering.

[67]  Brendan Murphy,et al.  Using Historical In-Process and Product Metrics for Early Estimation of Software Failures , 2006, 2006 17th International Symposium on Software Reliability Engineering.

[68]  Osamu Mizuno,et al.  A Cross-Project Evaluation of Text-Based Fault-Prone Module Prediction , 2014, 2014 6th International Workshop on Empirical Software Engineering in Practice.

[69]  G. H. Slusser,et al.  Statistical analysis in psychology and education , 1960 .

[70]  Sousuke Amasaki,et al.  Improving Relevancy Filter Methods for Cross-Project Defect Prediction , 2015, 2015 3rd International Conference on Applied Computing and Information Technology/2nd International Conference on Computational Science and Intelligence.

[71]  Tim Menzies,et al.  Privacy and utility for defect prediction: Experiments with MORPH , 2012, 2012 34th International Conference on Software Engineering (ICSE).

[72]  Jens Grabowski,et al.  A Comparative Study to Benchmark Cross-Project Defect Prediction Approaches , 2018, IEEE Transactions on Software Engineering.

[73]  Sandro Morasca,et al.  Property-based Software Engineering Measurement 2 . Basic Definitions Definition 1: Representation of Systems and Modules , 1996 .

[74]  Ashkan Sami,et al.  Evaluating and comparing complexity, coupling and a new proposed set of coupling metrics in cross-project vulnerability prediction , 2016, SAC.

[75]  Neha Kapoor,et al.  Token based approach for cross project prediction of fault prone modules , 2016, 2016 International Conference on Computational Techniques in Information and Communication Technologies (ICCTICT).

[76]  Guangchun Luo,et al.  Transfer learning for cross-company software defect prediction , 2012, Inf. Softw. Technol..

[77]  David Lo,et al.  An Empirical Study of Classifier Combination for Cross-Project Defect Prediction , 2015, 2015 IEEE 39th Annual Computer Software and Applications Conference.

[78]  F. Wilcoxon Individual Comparisons by Ranking Methods , 1945 .

[79]  Sinno Jialin Pan,et al.  Transfer defect learning , 2013, 2013 35th International Conference on Software Engineering (ICSE).

[80]  Hongfang Liu,et al.  An Investigation into the Functional Form of the Size-Defect Relationship for Software Modules , 2009, IEEE Transactions on Software Engineering.

[81]  Sandro Morasca,et al.  Slope-based fault-proneness thresholds for software engineering measures , 2016, EASE.

[82]  Edgar Erdfelder,et al.  G*Power 3: A flexible statistical power analysis program for the social, behavioral, and biomedical sciences , 2007, Behavior research methods.

[83]  Peter A. Whigham,et al.  A Baseline Model for Software Effort Estimation , 2015, TSEM.

[84]  Sandro Morasca,et al.  Identifying Thresholds for Software Faultiness via Optimistic and Pessimistic Estimations , 2016, ESEM.

[85]  Gerardo Canfora,et al.  Multi-objective Cross-Project Defect Prediction , 2013, 2013 IEEE Sixth International Conference on Software Testing, Verification and Validation.

[86]  Andreas Zeller,et al.  When do changes induce fixes? , 2005, ACM SIGSOFT Softw. Eng. Notes.

[87]  Taghi M. Khoshgoftaar,et al.  Software quality analysis by combining multiple projects and learners , 2008, Software Quality Journal.

[88]  Haruhiko Kaiya,et al.  Adapting a fault prediction model to allow inter languagereuse , 2008, PROMISE '08.

[89]  Claes Wohlin,et al.  Guidelines for snowballing in systematic literature studies and a replication in software engineering , 2014, EASE '14.

[90]  Jacob Cohen Statistical Power Analysis for the Behavioral Sciences , 1969, The SAGE Encyclopedia of Research Design.

[91]  Audris Mockus,et al.  Thresholds for Size and Complexity Metrics: A Case Study from the Perspective of Defect Density , 2016, 2016 IEEE International Conference on Software Quality, Reliability and Security (QRS).

[92]  Franz Wotawa,et al.  Novel Insights on Cross Project Fault Prediction Applied to Automotive Software , 2015, ICTSS.

[93]  Sousuke Amasaki,et al.  Improving Cross-Project Defect Prediction Methods with Data Simplification , 2015, 2015 41st Euromicro Conference on Software Engineering and Advanced Applications.

[94]  Fumio Akiyama,et al.  An Example of Software System Debugging , 1971, IFIP Congress.

[95]  Lucas Layman,et al.  LACE2: Better Privacy-Preserving Data Sharing for Cross Project Defect Prediction , 2015, 2015 IEEE/ACM 37th IEEE International Conference on Software Engineering.

[96]  Yutao Ma,et al.  An Empirical Study of Ranking-Oriented Cross-Project Software Defect Prediction , 2016, Int. J. Softw. Eng. Knowl. Eng..

[97]  Tim Menzies,et al.  Heterogeneous Defect Prediction , 2018, IEEE Trans. Software Eng..

[98]  Beijun Shen,et al.  Cross-Project Software Defect Prediction Using Feature-Based Transfer Learning , 2015, Internetware.

[99]  Jin Liu,et al.  A Multi-Source TrAdaBoost Approach for Cross-Company Defect Prediction , 2016, SEKE.

[100]  Xiang Chen,et al.  MULTI: Multi-objective effort-aware just-in-time software defect prediction , 2018, Inf. Softw. Technol..

[101]  Om Prakash Vyas,et al.  Cross Company and within Company Fault Prediction using Object Oriented Metrics , 2013 .

[102]  Hongfang Liu,et al.  Theory of relative defect proneness , 2008, Empirical Software Engineering.

[103]  Yutao Ma,et al.  Towards Cross-Project Defect Prediction with Imbalanced Feature Sets , 2014, ArXiv.

[104]  Ahmed E. Hassan,et al.  Replicating and Re-Evaluating the Theory of Relative Defect-Proneness , 2015, IEEE Transactions on Software Engineering.

[105]  Jongmoon Baik,et al.  A Hybrid Instance Selection Using Nearest-Neighbor for Cross-Project Defect Prediction , 2015, Journal of Computer Science and Technology.

[106]  Xiao-Yuan Jing,et al.  Heterogeneous Defect Prediction Through Multiple Kernel Learning and Ensemble Learning , 2017, 2017 IEEE International Conference on Software Maintenance and Evolution (ICSME).

[107]  Ahmed E. Hassan,et al.  Predicting faults using the complexity of code changes , 2009, 2009 IEEE 31st International Conference on Software Engineering.

[108]  Michele Lanza,et al.  The Tragedy of Defect Prediction, Prince of Empirical Software Engineering Research , 2016, IEEE Softw..

[109]  Xiao Liu,et al.  An empirical study on software defect prediction with a simplified metric set , 2014, Inf. Softw. Technol..

[110]  Steffen Herbold,et al.  Training data selection for cross-project defect prediction , 2013, PROMISE.

[111]  Qinbao Song,et al.  Data Quality: Some Comments on the NASA Software Defect Datasets , 2013, IEEE Transactions on Software Engineering.

[112]  Arvinder Kaur,et al.  Value and Applicability of Academic Projects Defect Datasets in Cross-Project Software Defect Prediction , 2016, 2016 2nd International Conference on Computational Intelligence and Networks (CINE).

[113]  Elaine J. Weyuker,et al.  Comparing the effectiveness of several modeling methods for fault prediction , 2010, Empirical Software Engineering.

[114]  Sandro Morasca,et al.  An Empirical Evaluation of Distribution-based Thresholds for Internal Software Measures , 2016, PROMISE.

[115]  Baowen Xu,et al.  Heterogeneous cross-company defect prediction by unified metric representation and CCA-based transfer learning , 2015, ESEC/SIGSOFT FSE.

[116]  Victor R. Basili,et al.  The influence of organizational structure on software quality , 2008, 2008 ACM/IEEE 30th International Conference on Software Engineering.

[117]  Lionel C. Briand,et al.  A systematic and comprehensive investigation of methods to build and evaluate fault prediction models , 2010, J. Syst. Softw..

[118]  Marco Tulio Valente,et al.  Extracting relative thresholds for source code metrics , 2014, 2014 Software Evolution Week - IEEE Conference on Software Maintenance, Reengineering, and Reverse Engineering (CSMR-WCRE).

[119]  Tim Menzies,et al.  Learning from Open-Source Projects: An Empirical Study on Defect Prediction , 2013, 2013 ACM / IEEE International Symposium on Empirical Software Engineering and Measurement.

[120]  Djuradj Babic Adaptive software fault prediction approach using object-oriented metrics , 2012 .

[121]  Dimuthu Gunarathna A systematic literature review on cross-project defect prediction , 2016 .

[122]  Chenggang Bai,et al.  Cross-Project Aging Related Bug Prediction , 2015, 2015 IEEE International Conference on Software Quality, Reliability and Security.

[123]  Koichiro Ochimizu,et al.  Towards logistic regression models for predicting fault-prone code across software projects , 2009, ESEM 2009.

[124]  Jens Grabowski,et al.  Correction of "A Comparative Study to Benchmark Cross-project Defect Prediction Approaches" , 2019, IEEE Trans. Software Eng..

[125]  Jongmoon Baik,et al.  Effective multi-objective naïve Bayes learning for cross-project defect prediction , 2016, Appl. Soft Comput..

[126]  Ying Zou,et al.  Cross-Project Defect Prediction Using a Connectivity-Based Unsupervised Classifier , 2016, 2016 IEEE/ACM 38th International Conference on Software Engineering (ICSE).

[127]  Lech Madeyski,et al.  Towards identifying software project clusters with regard to defect prediction , 2010, PROMISE '10.

[128]  Ayse Basar Bener,et al.  On the relative value of cross-company and within-company data for defect prediction , 2009, Empirical Software Engineering.

[129]  Yutao Ma,et al.  Simplification of Training Data for Cross-Project Defect Prediction , 2014, ArXiv.

[130]  Tim Menzies,et al.  Balancing Privacy and Utility in Cross-Company Defect Prediction , 2013, IEEE Transactions on Software Engineering.