A public unified bug dataset for Java


Background: Bug datasets have been created and used by many researchers to build bug prediction models.

Aims: In this work we collected existing public bug datasets and unified their contents.

Method: We considered 5 public datasets which adhered to all of our criteria. We also downloaded the corresponding source code for each system in the datasets and performed their source code analysis to obtain a common set of source code metrics. This way we produced a unified bug dataset at class and file level that is suitable for further research (e.g. to be used in the building of new bug prediction models). Furthermore, we compared the metric definitions and values of the different bug datasets.

Results: We found that (i) the same metric abbreviation can have different definitions or metrics calculated in the same way can have different names, (ii) in some cases different tools give different values even if the metric definitions coincide because (iii) one tool works on source code while the other calculates metrics on bytecode, or (iv) in several cases the downloaded source code contained more files which influenced the afferent metric values significantly.

Conclusions: Apart from all these imprecisions, we think that having a common metric set can help in building better bug prediction models and deducing more general conclusions. We made the unified dataset publicly available for everyone. By using a public dataset as an input for different bug prediction related investigations, researchers can make their studies reproducible, thus able to be validated and verified.

Proceedings of the 14th International Conference on Predictive Models and Data Analytics in Software Engineering, , Pages 12–21


    author       = {Ferenc, Rudolf and T{\'o}th, Zolt{\'a}n and Lad{\'a}nyi, Gergely and Siket, Istv{\'a}n and Gyim{\'o}thy, Tibor},
    title        = {A public unified bug dataset for Java},
    booktitle    = {Proceedings of the 14th International Conference on Predictive Models and Data Analytics in Software Engineering},
    year         = {2018},
    pages        = {12--21},
    organization = {ACM},
    doi          = {https://dl.acm.org/citation.cfm?doid=3273934.3273936},
    url          = {https://dl.acm.org/citation.cfm?doid=3273934.3273936},