Test Smell Detection Tools: A Systematic Mapping Study

04/29/2021
by   Wajdi Aljedaani, et al.
0

Test smells are defined as sub-optimal design choices developers make when implementing test cases. Hence, similar to code smells, the research community has produced numerous test smell detection tools to investigate the impact of test smells on the quality and maintenance of test suites. However, little is known about the characteristics, type of smells, target language, and availability of these published tools. In this paper, we provide a detailed catalog of all known, peer-reviewed, test smell detection tools. We start with performing a comprehensive search of peer-reviewed scientific publications to construct a catalog of 22 tools. Then, we perform a comparative analysis to identify the smell types detected by each tool and other salient features that include programming language, testing framework support, detection strategy, and adoption, among others. From our findings, we discover tools that detect test smells in Java, Scala, Smalltalk, and C++ test suites, with Java support favored by most tools. These tools are available as command-line and IDE plugins, among others. Our analysis also shows that most tools overlap in detecting specific smell types, such as General Fixture. Further, we encounter four types of techniques these tools utilize to detect smells. We envision our study as a one-stop source for researchers and practitioners in determining the tool appropriate for their needs. Our findings also empower the community with information to guide future tool development.

READ FULL TEXT

page 3

page 5

page 6

page 7

page 8

research
01/21/2021

A Critical Comparison on Six Static Analysis Tools: Detection, Agreement, and Precision

Background. Developers use Automated Static Analysis Tools (ASATs) to co...
research
03/07/2023

Do the Test Smells Assertion Roulette and Eager Test Impact Students' Troubleshooting and Debugging Capabilities?

To ensure the quality of a software system, developers perform an activi...
research
05/12/2019

Static Analyzers and Potential Future Research Directions for Scala: An Overview

Static analyzers are tool sets which are proving to be indispensable to ...
research
12/07/2021

Evaluation of Static Vulnerability Detection Tools with Java Cryptographic API Benchmarks

Several studies showed that misuses of cryptographic APIs are common in ...
research
03/15/2019

Automatically Generating Documentation for Lambda Expressions in Java

When lambda expressions were introduced to the Java programming language...
research
05/15/2023

A Language Model of Java Methods with Train/Test Deduplication

This tool demonstration presents a research toolkit for a language model...
research
01/21/2020

Scientific Image Tampering Detection Based On Noise Inconsistencies: A Method And Datasets

Scientific image tampering is a problem that affects not only authors bu...

Please sign up or login with your details

Forgot password? Click here to reset