Abstract:
Software lifecycle is becoming more human-independent with the help of new methodologies and tools. Many of the research in this field focus on defect reduction, defect identification and defect prediction. Defect prediction is a relatively new research area using various methods from artificial intelligence to data mining. Currently, software engineering literature still does not have a complete defect prediction solution for new versions of a software product. In this research our aim is to propose a model for predicting the number of defects in a new version of a software product relative to the previous version by considering the changes. These changes might be introduced as a new feature or a change of algorithm or even as a form of a bug fix. Analyzing the types of changes in an objective and formal manner and considering the lines of code change, we aim to predict the new defects introduced into the new version. Using such a proposed model will benefit to a more focused testing phase which will decrease the overall effort and cost. Also, this method can help to determine the stability of a software version before publishing the product. The method also helps us to understand the individual effect of a feature, bug fix or change in terms of probability of a new defect introduction.