ASTER: Natural and Multi-language Unit Test Generation with LLMs

Fuente: arXiv
Guardado en:
Detalles Bibliográficos
Autores principales: Pan, Rangeet, Kim, Myeongsoo, Krishna, Rahul, Pavuluri, Raju, Sinha, Saurabh
Formato: Preprint
Publicado: 2024
Materias:
Acceso en línea:
Etiquetas: Agregar Etiqueta
Sin Etiquetas, Sea el primero en etiquetar este registro!
_version_ 1866916566543630336
author Pan, Rangeet
Kim, Myeongsoo
Krishna, Rahul
Pavuluri, Raju
Sinha, Saurabh
author_facet Pan, Rangeet
Kim, Myeongsoo
Krishna, Rahul
Pavuluri, Raju
Sinha, Saurabh
contents Implementing automated unit tests is an important but time-consuming activity in software development. To assist developers in this task, many techniques for automating unit test generation have been developed. However, despite this effort, usable tools exist for very few programming languages. Moreover, studies have found that automatically generated tests suffer poor readability and do not resemble developer-written tests. In this work, we present a rigorous investigation of how large language models (LLMs) can help bridge the gap. We describe a generic pipeline that incorporates static analysis to guide LLMs in generating compilable and high-coverage test cases. We illustrate how the pipeline can be applied to different programming languages, specifically Java and Python, and to complex software requiring environment mocking. We conducted an empirical study to assess the quality of the generated tests in terms of code coverage and test naturalness -- evaluating them on standard as well as enterprise Java applications and a large Python benchmark. Our results demonstrate that LLM-based test generation, when guided by static analysis, can be competitive with, and even outperform, state-of-the-art test-generation techniques in coverage achieved while also producing considerably more natural test cases that developers find easy to understand. We also present the results of a user study, conducted with 161 professional developers, that highlights the naturalness characteristics of the tests generated by our approach.
format Preprint
id arxiv_https___arxiv_org_abs_2409_03093
institution arXiv
publishDate 2024
record_format arxiv
spellingShingle ASTER: Natural and Multi-language Unit Test Generation with LLMs
Pan, Rangeet
Kim, Myeongsoo
Krishna, Rahul
Pavuluri, Raju
Sinha, Saurabh
Software Engineering
Implementing automated unit tests is an important but time-consuming activity in software development. To assist developers in this task, many techniques for automating unit test generation have been developed. However, despite this effort, usable tools exist for very few programming languages. Moreover, studies have found that automatically generated tests suffer poor readability and do not resemble developer-written tests. In this work, we present a rigorous investigation of how large language models (LLMs) can help bridge the gap. We describe a generic pipeline that incorporates static analysis to guide LLMs in generating compilable and high-coverage test cases. We illustrate how the pipeline can be applied to different programming languages, specifically Java and Python, and to complex software requiring environment mocking. We conducted an empirical study to assess the quality of the generated tests in terms of code coverage and test naturalness -- evaluating them on standard as well as enterprise Java applications and a large Python benchmark. Our results demonstrate that LLM-based test generation, when guided by static analysis, can be competitive with, and even outperform, state-of-the-art test-generation techniques in coverage achieved while also producing considerably more natural test cases that developers find easy to understand. We also present the results of a user study, conducted with 161 professional developers, that highlights the naturalness characteristics of the tests generated by our approach.
title ASTER: Natural and Multi-language Unit Test Generation with LLMs
topic Software Engineering
url https://arxiv.org/abs/2409.03093