We applied an artificial intelligence-based approach to train practicable models for a business environment that enables effective prediction of software faults based on code smells, number of code changes in a time period, number of authors involved and other metrics.


Failures that are not detected during testing can cause problems in deployed software. Based on data from Raiffeisen Software GmbH we investigated which code smells and metrics could help in predicting failures.  We applied an artificial intelligence-based approach to train practicable models for a business environment that enables effective prediction of software faults. The results show that predefined complexity measures encompassed the most defects. While there are commonalities in relevant defect findings in static analysis reports, meaningful prediction models cannot be expected based solely on this data. In addition to the findings of the static analysis, metrics like code changes in a time period or number of authors involved in code changes were considered for building the prediction models. Two of the developed prediction models have a high accuracy and excellent utility rate. These resulting prediction models are currently used at Raiffeisen Software GmbH for a long-term study on failure prediction based on code smells.

For more information contact a.Univ.-Prof. Dr. Reinhold Plösch

A publication about this project can be found here.

Failure Prediction based on Code Smells