Abstract

Software testing is the main step of detecting the faults in Software through executing it. Therefore, it is substantial to predict the faults that may happen while executing the software to maintain the existence of the software. There are different techniques of artificial intelligence that are utilized to predict future defects. The Machine learning is one of the most significant technique that used to build predicting models. In this paper, conducted a systematic review of the supervised machine learning techniques which are used for software defect prediction and evaluated the performance. Thus, using five state-of-the-art supervised machine learning (classifiers), for the evaluation, several of the data are used to predict software fault. In addition to, compared the performance of these classifiers with various parameters. After that, proceeds many experiments to improve the efficiency of the prediction of the defect through modifying the default parameters of the classifier. The results showed the ability of supervised machine learning algorithms to classify classes as bugs or not bugs. Thus, using supervised machine learning models for predicting software bugs is better than the traditional statistical models. Additionally, using PCA never noticeable impact on prediction systems performance while modifying the default parameters positively impact classifier values, especially with Artificial Neural Network (ANN).The main finding of this paper is gained through the application of Ensemble Learning methods, whereas Bagging achieves 95.1% accuracy with Mozilla dataset and Voting achieves 93.79% accuracy with kc1 dataset.