SEMar 27, 2021

An empirical study into the relationship between class features and test smells

arXiv:2103.14781v119 citationsHas Code
Originality Incremental advance
AI Analysis

This addresses the problem of identifying test code quality issues for software developers working with open source code, though it is incremental research building on existing test smell studies.

The study investigated whether complexity metrics of production classes can predict test smells in associated unit tests, finding that Cyclomatic Complexity, Weighted Methods per Class, and Lack of Cohesion of Methods are strong indicators, especially for Eager Test and Duplicated Code smells, based on analysis of 975 class-test pairs from five open source systems.

While a substantial body of prior research has investigated the form and nature of production code, comparatively little attention has examined characteristics of test code, and, in particular, test smells in that code. In this paper, we explore the relationship between production code properties (at the class level) and a set of test smells, in five open source systems. Specifically, we examine whether complexity properties of a production class can be used as predictors of the presence of test smells in the associated unit test. Our results, derived from the analysis of 975 production class-unit test pairs, show that the Cyclomatic Complexity (CC) and Weighted Methods per Class (WMC) of production classes are strong indicators of the presence of smells in their associated unit tests. The Lack of Cohesion of Methods in a production class (LCOM) also appears to be a good indicator of the presence of test smells. Perhaps more importantly, all three metrics appear to be good indicators of particular test smells, especially Eager Test and Duplicated Code. The Depth of the Inheritance Tree (DIT), on the other hand, was not found to be significantly related to the incidence of test smells. The results have important implications for large-scale software development, particularly in a context where organizations are increasingly using, adopting or adapting open source code as part of their development strategy and need to ensure that classes and methods are kept as simple as possible.

Foundations

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

Your Notes