当前位置:
X-MOL 学术
›
arXiv.cs.SE
›
论文详情
Our official English website, www.x-mol.net, welcomes your feedback! (Note: you will need to create a separate account there.)
Unit Test Case Generation with Transformers
arXiv - CS - Software Engineering Pub Date : 2020-09-11 , DOI: arxiv-2009.05617 Michele Tufano, Dawn Drain, Alexey Svyatkovskiy, Shao Kun Deng, Neel Sundaresan
arXiv - CS - Software Engineering Pub Date : 2020-09-11 , DOI: arxiv-2009.05617 Michele Tufano, Dawn Drain, Alexey Svyatkovskiy, Shao Kun Deng, Neel Sundaresan
Automated Unit Test Case generation has been the focus of extensive
literature within the research community. Existing approaches are usually
guided by the test coverage criteria, generating synthetic test cases that are
often difficult to read or understand for developers. In this paper we propose
AthenaTest, an approach that aims at generating unit test cases by learning
from real-world, developer-written test cases. Our approach relies on a
state-of-the-art sequence-to-sequence transformer model which is able to write
useful test cases for a given method under test (i.e., focal method). We also
introduce methods2test - the largest publicly available supervised parallel
corpus of unit test case methods and corresponding focal methods in Java, which
comprises 630k test cases mined from 70k open-source repositories hosted on
GitHub. We use this dataset to train a transformer model to translate focal
methods into the corresponding test cases. We evaluate the ability of our model
in generating test cases using natural language processing as well as
code-specific criteria. First, we assess the quality of the translation
compared to the target test case, then we analyze properties of the test case
such as syntactic correctness and number and variety of testing APIs (e.g.,
asserts). We execute the test cases, collect test coverage information, and
compare them with test cases generated by EvoSuite and GPT-3. Finally, we
survey professional developers on their preference in terms of readability,
understandability, and testing effectiveness of the generated test cases.
中文翻译:
使用 Transformer 生成单元测试用例
自动化单元测试用例生成一直是研究界广泛文献的焦点。现有方法通常以测试覆盖标准为指导,生成开发人员通常难以阅读或理解的综合测试用例。在本文中,我们提出了 AthenaTest,这是一种旨在通过学习真实世界的开发人员编写的测试用例来生成单元测试用例的方法。我们的方法依赖于最先进的序列到序列转换器模型,该模型能够为给定的测试方法(即焦点方法)编写有用的测试用例。我们还介绍了 methods2test——最大的公开可用的单元测试用例方法和相应的 Java 焦点方法的监督并行语料库,其中包括从 GitHub 上托管的 70k 个开源存储库中挖掘的 630k 个测试用例。我们使用此数据集来训练 Transformer 模型,将焦点方法转换为相应的测试用例。我们评估我们的模型使用自然语言处理以及特定于代码的标准生成测试用例的能力。首先,我们评估与目标测试用例相比的翻译质量,然后我们分析测试用例的属性,例如句法正确性以及测试 API(例如,断言)的数量和种类。我们执行测试用例,收集测试覆盖率信息,并将它们与 EvoSuite 和 GPT-3 生成的测试用例进行比较。最后,我们调查了专业开发人员在生成的测试用例的可读性、可理解性和测试有效性方面的偏好。我们评估我们的模型使用自然语言处理以及特定于代码的标准生成测试用例的能力。首先,我们评估与目标测试用例相比的翻译质量,然后我们分析测试用例的属性,例如句法正确性以及测试 API(例如,断言)的数量和种类。我们执行测试用例,收集测试覆盖率信息,并将它们与 EvoSuite 和 GPT-3 生成的测试用例进行比较。最后,我们调查了专业开发人员在生成的测试用例的可读性、可理解性和测试有效性方面的偏好。我们评估我们的模型使用自然语言处理以及特定于代码的标准生成测试用例的能力。首先,我们评估与目标测试用例相比的翻译质量,然后我们分析测试用例的属性,例如句法正确性以及测试 API(例如,断言)的数量和种类。我们执行测试用例,收集测试覆盖率信息,并将它们与 EvoSuite 和 GPT-3 生成的测试用例进行比较。最后,我们调查了专业开发人员在生成的测试用例的可读性、可理解性和测试有效性方面的偏好。然后我们分析测试用例的属性,例如句法正确性以及测试 API(例如,断言)的数量和种类。我们执行测试用例,收集测试覆盖率信息,并将它们与 EvoSuite 和 GPT-3 生成的测试用例进行比较。最后,我们调查了专业开发人员在生成的测试用例的可读性、可理解性和测试有效性方面的偏好。然后我们分析测试用例的属性,例如句法正确性以及测试 API(例如,断言)的数量和种类。我们执行测试用例,收集测试覆盖率信息,并将它们与 EvoSuite 和 GPT-3 生成的测试用例进行比较。最后,我们调查了专业开发人员在生成的测试用例的可读性、可理解性和测试有效性方面的偏好。
更新日期:2020-09-15
中文翻译:
使用 Transformer 生成单元测试用例
自动化单元测试用例生成一直是研究界广泛文献的焦点。现有方法通常以测试覆盖标准为指导,生成开发人员通常难以阅读或理解的综合测试用例。在本文中,我们提出了 AthenaTest,这是一种旨在通过学习真实世界的开发人员编写的测试用例来生成单元测试用例的方法。我们的方法依赖于最先进的序列到序列转换器模型,该模型能够为给定的测试方法(即焦点方法)编写有用的测试用例。我们还介绍了 methods2test——最大的公开可用的单元测试用例方法和相应的 Java 焦点方法的监督并行语料库,其中包括从 GitHub 上托管的 70k 个开源存储库中挖掘的 630k 个测试用例。我们使用此数据集来训练 Transformer 模型,将焦点方法转换为相应的测试用例。我们评估我们的模型使用自然语言处理以及特定于代码的标准生成测试用例的能力。首先,我们评估与目标测试用例相比的翻译质量,然后我们分析测试用例的属性,例如句法正确性以及测试 API(例如,断言)的数量和种类。我们执行测试用例,收集测试覆盖率信息,并将它们与 EvoSuite 和 GPT-3 生成的测试用例进行比较。最后,我们调查了专业开发人员在生成的测试用例的可读性、可理解性和测试有效性方面的偏好。我们评估我们的模型使用自然语言处理以及特定于代码的标准生成测试用例的能力。首先,我们评估与目标测试用例相比的翻译质量,然后我们分析测试用例的属性,例如句法正确性以及测试 API(例如,断言)的数量和种类。我们执行测试用例,收集测试覆盖率信息,并将它们与 EvoSuite 和 GPT-3 生成的测试用例进行比较。最后,我们调查了专业开发人员在生成的测试用例的可读性、可理解性和测试有效性方面的偏好。我们评估我们的模型使用自然语言处理以及特定于代码的标准生成测试用例的能力。首先,我们评估与目标测试用例相比的翻译质量,然后我们分析测试用例的属性,例如句法正确性以及测试 API(例如,断言)的数量和种类。我们执行测试用例,收集测试覆盖率信息,并将它们与 EvoSuite 和 GPT-3 生成的测试用例进行比较。最后,我们调查了专业开发人员在生成的测试用例的可读性、可理解性和测试有效性方面的偏好。然后我们分析测试用例的属性,例如句法正确性以及测试 API(例如,断言)的数量和种类。我们执行测试用例,收集测试覆盖率信息,并将它们与 EvoSuite 和 GPT-3 生成的测试用例进行比较。最后,我们调查了专业开发人员在生成的测试用例的可读性、可理解性和测试有效性方面的偏好。然后我们分析测试用例的属性,例如句法正确性以及测试 API(例如,断言)的数量和种类。我们执行测试用例,收集测试覆盖率信息,并将它们与 EvoSuite 和 GPT-3 生成的测试用例进行比较。最后,我们调查了专业开发人员在生成的测试用例的可读性、可理解性和测试有效性方面的偏好。