Important issues in software fault prediction: A road map

Quality assurance tasks such as testing, verification and validation, fault tolerance, and fault prediction play a major role in software engineering activities. Fault prediction approaches are used when a software company needs to deliver a finished product while it has limited time and budget for testing it. In such cases, identifying and testing parts of the system that are more defect prone is reasonable. In fact, prediction models are mainly used for improving software quality and exploiting available resources. Software fault prediction is studied in this chapter based on different criteria that matters in this research field. Usually, there are certain issues that need to be taken care of such as different machine-learning techniques, artificial intelligence classifiers, variety of software metrics, distinctive performance evaluation metrics, and some statistical analysis. In this chapter, the authors present a roadmap for those researchers who are interested in working in this area. They illustrate problems along with objectives related to each mentioned criterion, which could assist researchers to build the finest software fault prediction model.

[1]  M.J. Khan,et al.  Software quality prediction techniques: A comparative analysis , 2008, 2008 4th International Conference on Emerging Technologies.

[2]  Taghi M. Khoshgoftaar,et al.  Predicting fault-prone modules with case-based reasoning , 1997, Proceedings The Eighth International Symposium on Software Reliability Engineering.

[3]  Taghi M. Khoshgoftaar,et al.  An application of zero-inflated Poisson regression for software fault prediction , 2001, Proceedings 12th International Symposium on Software Reliability Engineering.

[4]  Ayse Basar Bener,et al.  Analysis of Naive Bayes' assumptions on software fault data: An empirical study , 2009, Data Knowl. Eng..

[5]  Tong-Seng Quah,et al.  Application of neural networks for software quality prediction using object-oriented metrics , 2005, J. Syst. Softw..

[6]  Zhao Li,et al.  Multi-faceted quality and defect measurement for web software and source contents , 2010, J. Syst. Softw..

[7]  Susan A. Sherer,et al.  Software fault prediction , 1995, J. Syst. Softw..

[8]  Mian M. Awais,et al.  An FIS for Early Detection of Defect Prone Modules , 2009, ICIC.

[9]  Yue Jiang,et al.  Techniques for evaluating fault prediction models , 2008, Empirical Software Engineering.

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

[11]  Lars Lundberg,et al.  Statistical models vs. expert estimation for fault prediction in modified code - an industrial case study , 2007, J. Syst. Softw..

[12]  Edward B. Allen,et al.  GP-based software quality prediction , 1998 .

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

[14]  Nasib S. Gill,et al.  Component-based measurement: few useful guidelines , 2003, SOEN.

[15]  Banu Diri,et al.  Investigating the effect of dataset size, metrics sets, and feature selection techniques on software fault prediction problem , 2009, Inf. Sci..

[16]  Ioannis Stamelos,et al.  Software Defect Prediction Using Regression via Classification , 2006, IEEE International Conference on Computer Systems and Applications, 2006..

[17]  John C. Munson,et al.  Software evolution: code delta and code churn , 2000, J. Syst. Softw..

[18]  Fernando Brito e Abreu,et al.  Object-Oriented Software Engineering: Measuring and Controlling the Development Process , 1994 .

[19]  Du Zhang,et al.  APPLYING MACHINE LEARNING ALGORITHMS IN SOFTWARE DEVELOPMENT , 2000 .

[20]  Sajjad Mahmood,et al.  A survey of component based system quality assurance and assessment , 2005, Inf. Softw. Technol..

[21]  Taghi M. Khoshgoftaar,et al.  Unsupervised learning for expert-based software quality estimation , 2004, Eighth IEEE International Symposium on High Assurance Systems Engineering, 2004. Proceedings..

[22]  Ebru Ardil,et al.  A soft computing approach for modeling of severity of faults in software systems , 2010 .

[23]  Taghi M. Khoshgoftaar,et al.  An application of fuzzy clustering to software quality prediction , 2000, Proceedings 3rd IEEE Symposium on Application-Specific Systems and Software Engineering Technology.

[24]  Xiuzhen Zhang,et al.  Comments on "Data Mining Static Code Attributes to Learn Defect Predictors" , 2007, IEEE Trans. Software Eng..

[25]  Izzat Alsmadi,et al.  Evaluating the change of software fault behavior with dataset attributes based on categorical correlation , 2011, Adv. Eng. Softw..

[26]  Jaroslav Král,et al.  Service Orientation and Software-Intensive Systems , 2009 .

[27]  Pierre F. Tiako Designing Software-Intensive Systems: Methods and Principles , 2008 .

[28]  Ali Selamat,et al.  Fault prediction by utilizing self-organizing Map and Threshold , 2013, 2013 IEEE International Conference on Control System, Computing and Engineering.

[29]  Anas N. Al-Rabadi,et al.  A comparison of modified reconstructability analysis and Ashenhurst‐Curtis decomposition of Boolean functions , 2004 .

[30]  Tim Menzies,et al.  Data Mining Static Code Attributes to Learn Defect Predictors , 2007, IEEE Transactions on Software Engineering.

[31]  Yue Jiang,et al.  Misclassification cost-sensitive fault prediction models , 2009, PROMISE '09.

[32]  Thomas Liedtke,et al.  Comparison of conventional approaches and soft-computing approaches for software quality prediction , 1997, 1997 IEEE International Conference on Systems, Man, and Cybernetics. Computational Cybernetics and Simulation.

[33]  Taghi M. Khoshgoftaar,et al.  Prediction of software faults using fuzzy nonlinear regression modeling , 2000, Proceedings. Fifth IEEE International Symposium on High Assurance Systems Engineering (HASE 2000).

[34]  Khaled El Emam,et al.  Comparing case-based reasoning classifiers for predicting high risk software components , 2001, J. Syst. Softw..

[35]  Marek Reformat A Fuzzy-Based Meta-model for Reasoning about Number of Software Defects , 2003, IFSA.

[36]  Taghi M. Khoshgoftaar,et al.  Tree-based software quality estimation models for fault prediction , 2002, Proceedings Eighth IEEE Symposium on Software Metrics.

[37]  Shinji Kusumoto,et al.  Prediction of fault-proneness at early phase in object-oriented development , 1999, Proceedings 2nd IEEE International Symposium on Object-Oriented Real-Time Distributed Computing (ISORC'99) (Cat. No.99-61702).

[38]  Rattikorn Hewett,et al.  Mining software defect data to support software testing management , 2011, Applied Intelligence.

[39]  Doo-Hwan Bae,et al.  Software Fault Prediction Models for Web Applications , 2010, 2010 IEEE 34th Annual Computer Software and Applications Conference Workshops.

[40]  Darrel C. Ince,et al.  A critique of three metrics , 1994, J. Syst. Softw..

[41]  Bojan Cukic,et al.  Robust prediction of fault-proneness by random forests , 2004, 15th International Symposium on Software Reliability Engineering.

[42]  Barry W. Boehm,et al.  Understanding and Controlling Software Costs , 1988, IEEE Trans. Software Eng..

[43]  Hongfang Liu,et al.  An investigation of the effect of module size on defect prediction using static measures , 2005, PROMISE@ICSE.

[44]  N. Nagappan,et al.  Static analysis tools as early indicators of pre-release defect density , 2005, Proceedings. 27th International Conference on Software Engineering, 2005. ICSE 2005..

[45]  Wei Li,et al.  Another metric suite for object-oriented programming , 1998, J. Syst. Softw..

[46]  Irena Koprinska,et al.  Learning to classify e-mail , 2007, Inf. Sci..

[47]  Darrel C. Ince,et al.  Software metrics: introduction , 1990 .

[48]  Hongfang Liu,et al.  Building effective defect-prediction models in practice , 2005, IEEE Software.

[49]  Oral Alan,et al.  Thresholds based outlier detection approach for mining class outliers: An empirical case study on software measurement datasets , 2011, Expert Syst. Appl..

[50]  Taghi M. Khoshgoftaar,et al.  Analyzing software measurement data with clustering techniques , 2004, IEEE Intelligent Systems.

[51]  Banu Diri,et al.  Practical development of an Eclipse-based software fault prediction tool using Naive Bayes algorithm , 2011, Expert Syst. Appl..

[52]  Tim Menzies,et al.  Assessing Predictors of Software Defects , 2004 .

[53]  Bart Baesens,et al.  Mining software repositories for comprehensible software fault prediction models , 2008, J. Syst. Softw..

[54]  Neeraj Kumar Goyal,et al.  Fault Prediction Model by Fuzzy Profile Development of Reliability Relevant Software Metrics , 2010 .

[55]  Ayse Basar Bener,et al.  The effect of granularity level on software defect prediction , 2009, 2009 24th International Symposium on Computer and Information Sciences.

[56]  Karim O. Elish,et al.  Predicting defect-prone software modules using support vector machines , 2008, J. Syst. Softw..

[57]  Cagatay Catal,et al.  Software fault prediction: A literature review and current trends , 2011, Expert Syst. Appl..

[58]  Ayse Basar Bener,et al.  Validation of network measures as indicators of defective modules in software systems , 2009, PROMISE '09.

[59]  Qian Yin,et al.  Software Fault Prediction Framework Based on aiNet Algorithm , 2011, 2011 Seventh International Conference on Computational Intelligence and Security.

[60]  Nancy R. Mead,et al.  A Method and Case Study for Using Malware Analysis to Improve Security Requirements , 2015, Int. J. Secur. Softw. Eng..

[61]  Taghi M. Khoshgoftaar,et al.  An assessment of software quality in a C++ environment , 1995, Proceedings of Sixth International Symposium on Software Reliability Engineering. ISSRE'95.

[62]  Raed Shatnawi,et al.  The effectiveness of software metrics in identifying error-prone classes in post-release software evolution process , 2008, J. Syst. Softw..

[63]  Constantin F. Aliferis,et al.  The max-min hill-climbing Bayesian network structure learning algorithm , 2006, Machine Learning.

[64]  Banu Diri,et al.  A systematic review of software fault prediction studies , 2009, Expert Syst. Appl..

[65]  Neeraj Kumar Goyal,et al.  Test effort optimization by prediction and ranking of fault-prone software modules , 2010 .

[66]  Ali Selamat,et al.  A survey on software fault detection based on different prediction approaches , 2014, Vietnam Journal of Computer Science.

[67]  Iker Gondra,et al.  Applying machine learning to software fault-proneness prediction , 2008, J. Syst. Softw..

[68]  S. Kanmani,et al.  Object-oriented software fault prediction using neural networks , 2007, Inf. Softw. Technol..

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

[70]  Gary D. Boetticher,et al.  Improving Credibility of Machine Learner Models in Software Engineering , 2007 .

[71]  Ayse Basar Bener,et al.  Software Defect Prediction Using Call Graph Based Ranking (CGBR) Framework , 2008, 2008 34th Euromicro Conference Software Engineering and Advanced Applications.

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

[73]  Bart Baesens,et al.  Benchmarking Classification Models for Software Defect Prediction: A Proposed Framework and Novel Findings , 2008, IEEE Transactions on Software Engineering.

[74]  Mahmoud O. Elish,et al.  Empirical comparison of three metrics suites for fault prediction in packages of object-oriented systems: A case study of Eclipse , 2011, Adv. Eng. Softw..

[75]  Barbara A. Kitchenham,et al.  Coupling measures and change ripples in C++ application software , 2000, J. Syst. Softw..

[76]  Banu Diri,et al.  Software defect prediction using artificial immune recognition system , 2007 .

[77]  Richard Torkar,et al.  Software fault prediction metrics: A systematic literature review , 2013, Inf. Softw. Technol..

[78]  Banu Diri,et al.  Clustering and Metrics Thresholds Based Software Fault Prediction of Unlabeled Program Modules , 2009, 2009 Sixth International Conference on Information Technology: New Generations.

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

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