Early Studies on bug prediction focusedon software complexity measured in lines of code and defects. Drawback withthis method is it uses software size as only predictor of faults. We aim topredict whether a particular file associated with a change is buggy or not.
TraditionallyAll techniques typically follow the following steps:1) Training Data Extraction : For each change, labelit as buggy or clean by mining a project’s revision history and issue trackingsystem. Buggy change means the change contains bugs (one or more), while cleanchange means the change has no bug.2) Feature Extraction. Extract the values of variousfeatures from each change.
Many different features have been used in pastchange classification studies. 3) Model Learning. Build a model by using aclassification algorithm based on the labeled changes and their correspondingfeatures. 4) Model Application.
For a new change, extract thevalues of various features. Input these values to the learned model to predictwhether the change is buggy or clean.