Evaluating Large Language Models in Detecting Test Smells
Keila Lucas, Rohit Gheyi, Elvys Soares, Márcio Ribeiro, Ivan Machado
TL;DR
The paper investigates whether large language models can automatically detect software test smells. Using zero-shot prompts, the authors evaluate ChatGPT-4, Gemini Advanced, and Mistral Large against 30 smells drawn from a literature-derived catalog across seven programming languages. ChatGPT-4 achieves the strongest performance, identifying up to 21/30 smells on the first pass and up to 26/30 after multiple attempts, with language-dependent results and some smells remaining undetected. The study demonstrates the potential of LLMs as a tool to augment test smell detection and suggests integration into development environments, while outlining limitations and avenues for future work with broader language support and more LLMs.
Abstract
Test smells are coding issues that typically arise from inadequate practices, a lack of knowledge about effective testing, or deadline pressures to complete projects. The presence of test smells can negatively impact the maintainability and reliability of software. While there are tools that use advanced static analysis or machine learning techniques to detect test smells, these tools often require effort to be used. This study aims to evaluate the capability of Large Language Models (LLMs) in automatically detecting test smells. We evaluated ChatGPT-4, Mistral Large, and Gemini Advanced using 30 types of test smells across codebases in seven different programming languages collected from the literature. ChatGPT-4 identified 21 types of test smells. Gemini Advanced identified 17 types, while Mistral Large detected 15 types of test smells. Conclusion: The LLMs demonstrated potential as a valuable tool in identifying test smells.
