Ticket-Augmented Just-In-Time Defect Prediction
摘要
Context: With the aim to focus software testing where it is most needed, Just-In-Time Defect Prediction (JIT) consists of predicting the likelihood of a set of changes, i.e., commits, to be buggy. As a commit is intended to implement a (set of) ticket(s), the intuition in this paper is that ticket-level information could support the bugginess prediction of the commits implementing it. Aim: In this paper we propose and validate an approach called Ticket Augmented JIT, i.e., TA-JIT, which complements the standard 13 features used in JIT with 58 ticket-level features. Method: We compared the prediction accuracy of JIT vs TA-JIT using a sliding-window, balancing, feature selection, and three machine learning (ML) classifiers on about 10,000 tickets of two Apache open-source projects. Moreover, we investigate which of the 58 ticket features contributed to improving JIT prediction accuracy. Results: Our results show that the ticket-level information supports JIT. Specifically, TA-JIT was statistically significantly more accurate than JIT in about 75% of cases with large effect size in about 80% of cases. Regarding the importance of ticket-level features, results show that at least three ticket-level features are selected in each window and the type of selected ticket-level features varies across windows. Conclusions: By reducing false-positive alarms, TA-JIT enables teams to re-allocate verification effort, shortening feedback loops in continuous-delivery pipelines.