With the increasing complexity of and dependency on software, software products may suffer from low quality, high prices, be hard to maintain, etc. Software defects usually produce incorrect or unexpected results and behaviors. Accordingly, software defect prediction (SDP) is one of the most active research fields in software engineering and plays an important role in software quality assurance. Based on the results of SDP analyses, developers can subsequently conduct defect localization and repair on the basis of reasonable resource allocation, which helps to reduce their maintenance costs.
This book offers a comprehensive picture of the current state of SDP research. More specifically, it introduces a range of machine-learning-based SDP approaches proposed for different scenarios (i.e., WPDP, CPDP, and HDP). In addition, the book shares in-depth insights into current SDP approaches’ performance and lessons learned for future SDP research efforts.
We believe these theoretical analyses and emerging challenges will be of considerable interest to all researchers, graduate students, and practitioners who want to gain deeper insights into and/or find new research directions in SDP. It offers a comprehensive introduction to the current state of SDP and detailed descriptions of representative SDP approaches.
Author(s): Haowen Chen, Baowen Xu, Xiao-Yuan Jing
Publisher: Springer
Year: 2024
Language: English
Pages: 216
Preface
Acknowledgments
Contents
1 Introduction
1.1 Software Quality Assurance
1.2 Software Defect Prediction
1.3 Research Directions of SDP
1.3.1 Within-Project Defect Prediction (WPDP)
1.3.2 Cross-Project Defect Prediction (CPDP)
1.3.3 Heterogeneous Defect Prediction (HDP)
1.3.4 Other Research Questions of SDP
1.3.4.1 Cross-Version Defect Prediction
1.3.4.2 Just-in-Time Defect Prediction
1.3.4.3 Effort-Aware Defect Prediction
1.4 Notations and Corresponding Descriptions
1.5 Structure of This Book
References
2 Machine Learning Techniques for Intelligent SDP
2.1 Transfer Learning
2.2 Deep Learning
2.3 Other Techniques
2.3.1 Dictionary Learning
2.3.2 Semi-Supervised Learning
2.3.3 Multi-View Learning
References
3 Within-Project Defect Prediction
3.1 Basic WPDP
3.1.1 Dictionary Learning Based Software Defect Prediction
3.1.1.1 Methodology
3.1.1.2 Experiments
3.1.1.3 Discussions
3.1.2 Collaborative Representation Classification Based Software Defect Prediction
3.1.2.1 Methodology
3.1.2.2 Experiments
3.1.2.3 Discussions
3.2 Semi-supervised WPDP
3.2.1 Sample-Based Software Defect Prediction with Active and Semi-supervised Learning
3.2.1.1 Methodology
3.2.1.2 Experiments
3.2.1.3 Discussions
References
4 Cross-Project Defect Prediction
4.1 Basic CPDP
4.1.1 Manifold Embedded Distribution Adaptation
4.1.1.1 Methodology
4.1.1.2 Experiments
4.1.1.3 Discussions
4.2 Class Imbalance Problem in CPDP
4.2.1 An Improved SDA Based Defect Prediction Framework
4.2.1.1 Methodology
4.2.1.2 Experiments
4.2.1.3 Discussions
4.3 Semi-Supervised CPDP
4.3.1 Cost-Sensitive Kernelized Semi-supervised Dictionary Learning
4.3.1.1 Methodology
4.3.1.2 Experiments
4.3.1.3 Discussion
References
5 Heterogeneous Defect Prediction
5.1 Basic HDP
5.1.1 Unified Metric Representation and CCA-Based Transfer Learning
5.1.1.1 Methodology
5.1.1.2 Experiments
5.1.1.3 Discussions
5.2 Class Imbalance Problem in HDP
5.2.1 Cost-Sensitive Transfer Kernel Canonical Correlation Analysis
5.2.1.1 Methodology
5.2.1.2 Experiments
5.2.1.3 Discussions
5.2.2 Other Solutions
5.3 Multiple Sources and Privacy Preservation Problems in HDP
5.3.1 Multi-Source Selection Based Manifold Discriminant Alignment
5.3.1.1 Methodology
5.3.1.2 Experiments
5.3.1.3 Discussions
5.3.2 Sparse Representation Based Double Obfuscation Algorithm
5.3.2.1 Methodology
5.3.2.2 Experiments
5.3.2.3 Discussions
References
6 An Empirical Study on HDP Approaches
6.1 Goal Question Metric (GQM) Based Research Methodology
6.1.1 Major Challenges
6.1.2 Review of Research Status
6.1.3 Analysis on Research Status
6.1.4 Research Goal
6.1.5 Research Questions
6.1.6 Evaluation Metrics
6.2 Experiments
6.2.1 Datasets
6.2.2 SDP Approaches for Comparisons
6.2.3 Experimental Design
6.2.4 Experimental Results
6.3 Discussions
References
7 Other Research Questions of SDP
7.1 Cross-Version Defect Prediction
7.1.1 Methodology
7.1.2 Experiments
7.1.3 Discussions
7.2 Just-in-Time Defect Prediction
7.2.1 Methodology
7.2.2 Experiments
7.2.2.1 Experiment Setup
7.2.2.2 Evaluation Metrics
7.2.2.3 Research Questions
7.2.3 Discussions
7.3 Effort-Aware Just-in-Time Defect Prediction
7.3.1 Methodology
7.3.1.1 Dependent and Independent Variables
7.3.1.2 Simple Unsupervised Models
7.3.1.3 The Supervised Models
7.3.1.4 Research Questions
7.3.1.5 Performance Indicators
7.3.2 Experiments
7.3.3 Discussions
References
8 Conclusion
8.1 Conclusion