With the continuous expansion of software scale, software update and maintenance have become more and more important. However, frequent software code updates will make the software more likely to introduce new defects. So how to predict the defects quickly and accurately on the software change has become an important problem for software developers. Current defect prediction methods often cannot reflect the feature information of the defect comprehensively, and the detection effect is not ideal enough. Therefore, we propose a novel defect prediction model named ITNB (Improved Transfer Naive Bayes) based on improved transfer Naive Bayesian algorithm in this paper, which mainly considers the following two aspects: (1) Considering that the edge data of the test set may affect the similarity calculation and final prediction result, we remove the edge data of the test set when calculating the data similarity between the training set and the test set; (2) Considering that each feature dimension has different effects on defect prediction, we construct the calculation formula of training data weight based on feature dimension weight and data gravity, and then calculate the prior probability and the conditional probability of training data from the weight information, so as to construct the weighted bayesian classifier for software defect prediction. To evaluate the performance of the ITNB model, we use six datasets from large open source projects, namely Bugzilla, Columba, Mozilla, JDT, Platform and PostgreSQL. We compare the ITNB model with the transfer Naive Bayesian (TNB) model. The experimental results show that our ITNB model can achieve better results than the TNB model in terms of accurary, precision and pd for within-project and cross-project defect prediction.
- Cross-project defect prediction
- Edge data
- Feature dimension weight
- Similarity calculation
- Transfer Naive Bayesian algorithm