SEAINov 19, 2020

ReAssert: Deep Learning for Assert Generation

arXiv:2011.09784v118 citations
AI Analysis

This work aims to reduce the time and effort for software developers in building test code by automating assert generation, offering an incremental improvement over existing methods.

This paper tackles the problem of automatically generating JUnit test asserts, achieving up to 44% exact matches with ground truth for a single project and 51% for compilable asserts. It also improves upon previous work (ATLAS) by 28% using the Reformer model.

The automated generation of test code can reduce the time and effort required to build software while increasing its correctness and robustness. In this paper, we present RE-ASSERT, an approach for the automated generation of JUnit test asserts which produces more accurate asserts than previous work with fewer constraints. This is achieved by targeting projects individually, using precise code-to-test traceability for learning and by generating assert statements from the method-under-test directly without the need to write an assert-less test first. We also utilise Reformer, a state-of-the-art deep learning model, along with two models from previous work to evaluate ReAssert and an existing approach, known as ATLAS, using lexical accuracy,uniqueness, and dynamic analysis. Our evaluation of ReAssert shows up to 44% of generated asserts for a single project match exactly with the ground truth, increasing to 51% for generated asserts that compile. We also improve on the ATLAS results through our use of Reformer with 28% of generated asserts matching exactly with the ground truth. Reformer also produces the greatest proportion of unique asserts (71%), giving further evidence that Reformer produces the most useful asserts.

Foundations

The foundational work for this paper's niche, ranked by how specifically the neighbourhood builds on it — not by global fame.

Your Notes