Temporal Convolutional Networks for Just-in-Time Software Defect Prediction

: Defect prediction and estimation techniques play a significant role in software maintenance and evolution. Recently, several research studies proposed just-in-time techniques to predict defective changes. Such prediction models make the developers check and fix the defects just at the time they are introduced (commit level). Nev-ertheless, early prediction of defects is still a challenging task that needs to be addressed and can be improved by getting higher performances. To address this issue this paper proposes an approach exploiting a large set of features corresponding to source code metrics detected from commits history of software projects. In partic-ular, the approach uses deep temporal convolutional networks to make the fault prediction. The evaluation is performed on a large data-set, concerning four well-known open-source projects and shows that, under certain considerations, the proposed approach has effective defect proneness prediction ability.

[1]  Xiapu Luo,et al.  LDFR: Learning deep feature representation for software defect prediction , 2019, J. Syst. Softw..

[2]  Jiqiang Liu,et al.  Assessing Optimizer Impact on DNN Model Sensitivity to Adversarial Examples , 2019, IEEE Access.

[3]  Fabio Martinelli,et al.  Keystroke Analysis for User Identification using Deep Neural Networks , 2019, 2019 International Joint Conference on Neural Networks (IJCNN).

[4]  David Lo,et al.  DeepJIT: An End-to-End Deep Learning Framework for Just-in-Time Defect Prediction , 2019, 2019 IEEE/ACM 16th International Conference on Mining Software Repositories (MSR).

[5]  Leandro L. Minku,et al.  Class Imbalance Evolution and Verification Latency in Just-in-Time Software Defect Prediction , 2019, 2019 IEEE/ACM 41st International Conference on Software Engineering (ICSE).

[6]  Fabio Palomba,et al.  Fine-grained just-in-time defect prediction , 2019, J. Syst. Softw..

[7]  Matthias Weidlich,et al.  Crossbow: Scaling Deep Learning with Small Batch Sizes on Multi-GPU Servers , 2019, Proc. VLDB Endow..

[8]  Ayse Basar Bener,et al.  A Replication Study: Just-in-Time Defect Prediction with Ensemble Learning , 2018, 2018 IEEE/ACM 6th International Workshop on Realizing Artificial Intelligence Synergies in Software Engineering (RAISE).

[9]  Vladlen Koltun,et al.  An Empirical Evaluation of Generic Convolutional and Recurrent Networks for Sequence Modeling , 2018, ArXiv.

[10]  C. Manjula,et al.  Deep neural network based hybrid approach for software defect prediction using software metrics , 2018, Cluster Computing.

[11]  Quoc V. Le,et al.  Searching for Activation Functions , 2018, arXiv.

[12]  Mario Luca Bernardi,et al.  A Multi-source Machine Learning Approach to Predict Defect Prone Components , 2018, ICSOFT.

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

[14]  Xinli Yang,et al.  TLEL: A two-layer ensemble learning approach for just-in-time defect prediction , 2017, Inf. Softw. Technol..

[15]  Yuming Zhou,et al.  Effort-aware just-in-time defect prediction: simple unsupervised models could be better than supervised models , 2016, SIGSOFT FSE.

[16]  Diyi Yang,et al.  Hierarchical Attention Networks for Document Classification , 2016, NAACL.

[17]  Xiaoyuan Jing,et al.  Multiple kernel ensemble learning for software defect prediction , 2015, Automated Software Engineering.

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

[19]  Xinli Yang,et al.  Deep Learning for Just-in-Time Defect Prediction , 2015, 2015 IEEE International Conference on Software Quality, Reliability and Security.

[20]  Sergey Ioffe,et al.  Batch Normalization: Accelerating Deep Network Training by Reducing Internal Covariate Shift , 2015, ICML.

[21]  Dong Yu,et al.  Deep Learning: Methods and Applications , 2014, Found. Trends Signal Process..

[22]  Tom Schaul,et al.  Unit Tests for Stochastic Optimization , 2013, ICLR.

[23]  Geoffrey E. Hinton,et al.  On the importance of initialization and momentum in deep learning , 2013, ICML.

[24]  Audris Mockus,et al.  A large-scale empirical study of just-in-time quality assurance , 2013, IEEE Transactions on Software Engineering.

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

[26]  Yoshua Bengio,et al.  Algorithms for Hyper-Parameter Optimization , 2011, NIPS.

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

[28]  Mario Luca Bernardi,et al.  An Interprocedural Aspect Control Flow Graph to Support the Maintenance of Aspect Oriented Systems , 2007, ICSM.

[29]  Shie Mannor,et al.  The cross entropy method for classification , 2005, ICML.

[30]  Harald C. Gall,et al.  Populating a Release History Database from version control and bug tracking systems , 2003, International Conference on Software Maintenance, 2003. ICSM 2003. Proceedings..

[31]  Nitesh V. Chawla,et al.  SMOTE: Synthetic Minority Over-sampling Technique , 2002, J. Artif. Intell. Res..

[32]  Victor R. Basili,et al.  A Validation of Object-Oriented Design Metrics as Quality Indicators , 1996, IEEE Trans. Software Eng..

[33]  Fernando Brito e Abreu,et al.  Evaluating the impact of object-oriented design on software quality , 1996, Proceedings of the 3rd International Software Metrics Symposium.

[34]  Chris F. Kemerer,et al.  A Metrics Suite for Object Oriented Design , 2015, IEEE Trans. Software Eng..

[35]  A. Frank Ackerman,et al.  Software inspections: an effective verification process , 1989, IEEE Software.

[36]  Glenford J. Myers,et al.  Art of Software Testing , 1979 .

[37]  M. Stone Cross‐Validatory Choice and Assessment of Statistical Predictions , 1976 .