Unit Test Generation using Generative AI : A Comparative Performance Analysis of Autogeneration Tools

Fuente: arXiv
Saved in:
Bibliographic Details
Main Authors: Bhatia, Shreya, Gandhi, Tarushi, Kumar, Dhruv, Jalote, Pankaj
Format: Preprint
Published: 2023
Subjects:
Online Access:
Tags: Add Tag
No Tags, Be the first to tag this record!
_version_ 1866913233146740736
author Bhatia, Shreya
Gandhi, Tarushi
Kumar, Dhruv
Jalote, Pankaj
author_facet Bhatia, Shreya
Gandhi, Tarushi
Kumar, Dhruv
Jalote, Pankaj
contents Generating unit tests is a crucial task in software development, demanding substantial time and effort from programmers. The advent of Large Language Models (LLMs) introduces a novel avenue for unit test script generation. This research aims to experimentally investigate the effectiveness of LLMs, specifically exemplified by ChatGPT, for generating unit test scripts for Python programs, and how the generated test cases compare with those generated by an existing unit test generator (Pynguin). For experiments, we consider three types of code units: 1) Procedural scripts, 2) Function-based modular code, and 3) Class-based code. The generated test cases are evaluated based on criteria such as coverage, correctness, and readability. Our results show that ChatGPT's performance is comparable with Pynguin in terms of coverage, though for some cases its performance is superior to Pynguin. We also find that about a third of assertions generated by ChatGPT for some categories were incorrect. Our results also show that there is minimal overlap in missed statements between ChatGPT and Pynguin, thus, suggesting that a combination of both tools may enhance unit test generation performance. Finally, in our experiments, prompt engineering improved ChatGPT's performance, achieving a much higher coverage.
format Preprint
id arxiv_https___arxiv_org_abs_2312_10622
institution arXiv
publishDate 2023
record_format arxiv
spellingShingle Unit Test Generation using Generative AI : A Comparative Performance Analysis of Autogeneration Tools
Bhatia, Shreya
Gandhi, Tarushi
Kumar, Dhruv
Jalote, Pankaj
Software Engineering
Artificial Intelligence
Generating unit tests is a crucial task in software development, demanding substantial time and effort from programmers. The advent of Large Language Models (LLMs) introduces a novel avenue for unit test script generation. This research aims to experimentally investigate the effectiveness of LLMs, specifically exemplified by ChatGPT, for generating unit test scripts for Python programs, and how the generated test cases compare with those generated by an existing unit test generator (Pynguin). For experiments, we consider three types of code units: 1) Procedural scripts, 2) Function-based modular code, and 3) Class-based code. The generated test cases are evaluated based on criteria such as coverage, correctness, and readability. Our results show that ChatGPT's performance is comparable with Pynguin in terms of coverage, though for some cases its performance is superior to Pynguin. We also find that about a third of assertions generated by ChatGPT for some categories were incorrect. Our results also show that there is minimal overlap in missed statements between ChatGPT and Pynguin, thus, suggesting that a combination of both tools may enhance unit test generation performance. Finally, in our experiments, prompt engineering improved ChatGPT's performance, achieving a much higher coverage.
title Unit Test Generation using Generative AI : A Comparative Performance Analysis of Autogeneration Tools
topic Software Engineering
Artificial Intelligence
url https://arxiv.org/abs/2312.10622