ASTER: Natural and Multi-language Unit Test Generation with LLMs
Not on the map. Why?
Abstract (arXiv)
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.
Key facts. Cited by 9 papers in the map (data through 7 Oct 2026). First posted on arXiv 4 Sep 2024.
Builds on
No reference list yet.
Built on by
Citing papers per year: 2024: 1; 2025: 2; 2026: 6.
9 papers.
- 2024TDD-Bench Verified: Can LLMs Generate Tests for Issues Before They Get Resolved?cited by 32
- 2025Code Reasoning for Software Engineering Tasks: A Survey and A Call to Actioncited by 4
- 2025Large Language Models for Software Testing: A Research Roadmapcited by 2
- 2026Breaking, Stale, or Missing? Benchmarking Coding Agents on Project-Level Test Evolutioncited by 1
- 2026SCATE: Learning to Supervise Coding Agents for Cost-Effective Test Generationcited by 1
- 2026Program Structure-aware Language Models: Targeted Software Testing beyond Textual Semanticscited by 0
- 2026ConCovUp: Effective Agent-Based Test Driver Generation for Concurrency Testingcited by 0
- 2026Rethinking Code Performance Benchmarks for LLMscited by 0
- 2026Evaluating and Mitigating the Misguidance Effect of Buggy Code in LLM-Generated Unit Testscited by 0
- 2026Evaluating and Mitigating the Misguidance Effect of Buggy Code in LLM-Generated Unit Tests24 Jul 2026
- 2026SCATE: Learning to Supervise Coding Agents for Cost-Effective Test Generation9 Jul 2026
- 2026Rethinking Code Performance Benchmarks for LLMs8 Jul 2026
- 2026ConCovUp: Effective Agent-Based Test Driver Generation for Concurrency Testing10 May 2026
- 2026Breaking, Stale, or Missing? Benchmarking Coding Agents on Project-Level Test Evolution7 May 2026
- 2026Program Structure-aware Language Models: Targeted Software Testing beyond Textual Semantics20 Apr 2026
- 2025Large Language Models for Software Testing: A Research Roadmap29 Sep 2025
- 2025Code Reasoning for Software Engineering Tasks: A Survey and A Call to Action16 Jun 2025
- 2024TDD-Bench Verified: Can LLMs Generate Tests for Issues Before They Get Resolved?3 Dec 2024