Saved in:
Bibliographic Details
Main Authors: Wang, Han, Hu, Han, Chen, Chunyang, Turhan, Burak
Format: Preprint
Published: 2024
Subjects:
Online Access:https://arxiv.org/abs/2407.21429
Tags: Add Tag
No Tags, Be the first to tag this record!
_version_ 1866917738074603520
author Wang, Han
Hu, Han
Chen, Chunyang
Turhan, Burak
author_facet Wang, Han
Hu, Han
Chen, Chunyang
Turhan, Burak
contents Unit testing is an essential component of software testing, with the assert statements playing an important role in determining whether the tested function operates as expected. Although research has explored automated test case generation, generating meaningful assert statements remains an ongoing challenge. While several studies have investigated assert statement generation in Java, limited work addresses this task in popular dynamically-typed programming languages like Python. In this paper, we introduce Chat-like execution-based Asserts Prediction (\tool), a novel Large Language Model-based approach for generating meaningful assert statements for Python projects. \tool utilizes the persona, Chain-of-Thought, and one-shot learning techniques in the prompt design, and conducts rounds of communication with LLM and Python interpreter to generate meaningful assert statements. We also present a Python assert statement dataset mined from GitHub. Our evaluation demonstrates that \tool achieves 64.7\% accuracy for single assert statement generation and 62\% for overall assert statement generation, outperforming the existing approaches. We also analyze the mismatched assert statements, which may still share the same functionality and discuss the potential help \tool could offer to the automated Python unit test generation. The findings indicate that \tool has the potential to benefit the SE community through more practical usage scenarios.
format Preprint
id arxiv_https___arxiv_org_abs_2407_21429
institution arXiv
publishDate 2024
record_format arxiv
spellingShingle Chat-like Asserts Prediction with the Support of Large Language Model
Wang, Han
Hu, Han
Chen, Chunyang
Turhan, Burak
Software Engineering
Unit testing is an essential component of software testing, with the assert statements playing an important role in determining whether the tested function operates as expected. Although research has explored automated test case generation, generating meaningful assert statements remains an ongoing challenge. While several studies have investigated assert statement generation in Java, limited work addresses this task in popular dynamically-typed programming languages like Python. In this paper, we introduce Chat-like execution-based Asserts Prediction (\tool), a novel Large Language Model-based approach for generating meaningful assert statements for Python projects. \tool utilizes the persona, Chain-of-Thought, and one-shot learning techniques in the prompt design, and conducts rounds of communication with LLM and Python interpreter to generate meaningful assert statements. We also present a Python assert statement dataset mined from GitHub. Our evaluation demonstrates that \tool achieves 64.7\% accuracy for single assert statement generation and 62\% for overall assert statement generation, outperforming the existing approaches. We also analyze the mismatched assert statements, which may still share the same functionality and discuss the potential help \tool could offer to the automated Python unit test generation. The findings indicate that \tool has the potential to benefit the SE community through more practical usage scenarios.
title Chat-like Asserts Prediction with the Support of Large Language Model
topic Software Engineering
url https://arxiv.org/abs/2407.21429