Methods2Test: A dataset of focal methods mapped to test cases
Unit testing is an essential part of the software development process, which
helps to identify issues with source code in early stages of development and
prevent regressions. Machine learning has emerged as viable approach to help
software developers generate automated unit tests. However, generating reliable
unit test cases that are semantically correct and capable of catching software
bugs or unintended behavior via machine learning requires large, metadata-rich,
datasets. In this paper we present Methods2Test: A dataset of focal methods
mapped to test cases: a large, supervised dataset of test cases mapped to
corresponding methods under test (i.e., focal methods). This dataset contains
780,944 pairs of JUnit tests and focal methods, extracted from a total of
91,385 Java open source projects hosted on GitHub with licenses permitting
re-distribution. The main challenge behind the creation of the Methods2Test was
to establish a reliable mapping between a test case and the relevant focal
method. To this aim, we designed a set of heuristics, based on developers' best
practices in software testing, which identify the likely focal method for a
given test case. To facilitate further analysis, we store a rich set of
metadata for each method-test pair in JSON-formatted files. Additionally, we
extract textual corpus from the dataset at different context levels, which we
provide both in raw and tokenized forms, in order to enable researchers to
train and evaluate machine learning models for Automated Test Generation.
Methods2Test is publicly available at:
https://github.com/microsoft/methods2test