Andreas Zeller, Thomas Zimmermann, and Christian Bird
Background: The past years have seen a surge of techniques
predicting failure-prone locations based on more or less complex
metrics. Few of these metrics are actionable, though.
Aims: This paper explores a simple, easy-to-implement method
to predict and avoid failures in software systems. The IROP
method links elementary source code features to known software
failures in a lightweight, easy-to-implement fashion.
Method: We sampled the Eclipse data set mapping defects to
files in three Eclipse releases. We used logistic regression to as-
sociate programmer actions with defects, tested the predictive
power of the resulting classifier in terms of precision and recall,
and isolated the most defect-prone actions. We also collected
initial feedback on possible remedies.
Results: In our sample set, IROP correctly predicted up to 74% of
the failure-prone modules, which is on par with the most elaborate
predictors available. We isolated a set of four easy-to-remember
recommendations, telling programmers precisely what to do to
avoid errors. Initial feedback from developers suggests that these
recommendations are straightforward to follow in practice.
Conclusions: With the abundance of software development data,
even the simplest methods can produce “actionable” results.
|Published in||Proceedings of the 7th International Conference on Predictive Models in Software Engineering|