Learning from real bug fixes.
Real bug fixes are not only a valuable resource for learning to localize and repair single token bugs but they can also be effectively exploited for automatic program repair [1]}, [2]}, [3]}, [4]}, [5]} or code mutations [6]}, [7]}. SequenceR [2]}, for example, learns from thousands of bug fixes to predict one-line bug patches. Dlfix [3]} and CoCoNuT [4]} improved the repair performance by proposing more effective learning strategies. In contrast to RealiT, however, these techniques are designed to only repair a given program location and, hence, whether a program is buggy and where the bug has to be fixed has to be known beforehand. In addition, these techniques are often trained on real bug fixes only without considering mutants for the training process. We showed that learning from mutants is actually crucial to achieve high performing models.
This observation is also supported by DrRepair [11]} which showed that pre-training a repair models on artificial errors improved the repair performance on syntactic errors. Still, their approach rely on a compiler to detect this type of bugs. The type of single token bugs which we considered in this work are typically missed by a compiler.
