Abstract:
The main aim of software fault prediction is the identification of such classes and
methods where faults are expected. Fault prediction used properties of the software
project to predict faults at the early stage of SDLC. Early-stage prediction of software
faults supports software quality assurance activities.
Evaluation of code smells for anticipating software faults is basic to ensure its
importance in the field of software quality. In this thesis, we will investigate that how
code smells help in software fault prediction at the class level and method level.
Previous studies show the impact of code smells on fault prediction. However, using
code smells for class level faults prediction and method level fault prediction needs
more concern.
We make use of the defects4j repository to create the dataset that we use for training
and testing of the software fault prediction model. We use pseudo labeling for class
level prediction and bagging for method level prediction. We use accuracy, precision,
recall, f1 score, and 10-fold cross-validation method for the evaluation of models.
To do validation, we use a case study. We extract code smells from different classes
and methods, and we then make use of these code smells for fault prediction. We
compare our prediction results with actual results and see if our prediction is correct.