SEAILGPLMar 24, 2024

CoverUp: Effective High Coverage Test Generation for Python

arXiv:2403.16218v454 citationsh-index: 37Has CodeProc. ACM Softw. Eng.
Originality Highly original
AI Analysis

This addresses the labor-intensive task of test creation for Python developers, showing substantial improvements over existing state-of-the-art methods.

The paper tackles the problem of automating high-coverage test generation for Python by proposing CoverUp, which combines coverage analysis, code context, and feedback in prompts to guide an LLM, achieving median line+branch coverage of 80% vs. 47% compared to CodaMosa and 89% vs. 77% compared to MuTAP.

Testing is an essential part of software development. Test generation tools attempt to automate the otherwise labor-intensive task of test creation, but generating high-coverage tests remains challenging. This paper proposes CoverUp, a novel approach to driving the generation of high-coverage Python regression tests. CoverUp combines coverage analysis, code context, and feedback in prompts that iteratively guide the LLM to generate tests that improve line and branch coverage. We evaluate our prototype CoverUp implementation across a benchmark of challenging code derived from open-source Python projects and show that CoverUp substantially improves on the state of the art. Compared to CodaMosa, a hybrid search/LLM-based test generator, CoverUp achieves a per-module median line+branch coverage of 80% (vs. 47%). Compared to MuTAP, a mutation- and LLM-based test generator, CoverUp achieves an overall line+branch coverage of 89% (vs. 77%). We also demonstrate that CoverUp's performance stems not only from the LLM used but from the combined effectiveness of its components.

Code Implementations3 repos
Foundations

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

Your Notes