An Exploratory Study of the Relationship Between Software Test Smells and Fault-Proneness

Test smells have been defined as indicators of poorly designed tests. Their presence negatively affects the maintainability of a test suite as well as the production code. Despite the many studies that address the negative impacts of various test smells, until now there has been no empirical evidenc...

Full description

Bibliographic Details
Main Authors: Abdallah Qusef, Mahmoud O. Elish, David Binkley
Format: Article
Language:English
Published: IEEE 2019-01-01
Series:IEEE Access
Subjects:
Online Access:https://ieeexplore.ieee.org/document/8847402/
_version_ 1811274005902000128
author Abdallah Qusef
Mahmoud O. Elish
David Binkley
author_facet Abdallah Qusef
Mahmoud O. Elish
David Binkley
author_sort Abdallah Qusef
collection DOAJ
description Test smells have been defined as indicators of poorly designed tests. Their presence negatively affects the maintainability of a test suite as well as the production code. Despite the many studies that address the negative impacts of various test smells, until now there has been no empirical evidence considering the relation between the evolution of test smells and that of faults in the production code. This paper presents such evidence. It presents a case study of data collected from 28 versions of Apache Ant that include a total of 4,447 unit tests. Three key results arise from the data. First, the absolute number of test smells increases as Apache Ant evolves. Second, some test smells are positively correlated with the existence of faults in the production code. Finally, our results show that it is possible to predict faults in the production code based on the existence of test smells in the code’s unit tests. In addition, the resulting prediction model is more accurate at predicting high-severity faults than low-severity faults. This is an important result as it enables an engineer to focus preventative maintenance efforts, applied to the production code, using test smells found in the unit tests.
first_indexed 2024-04-12T23:10:02Z
format Article
id doaj.art-f95a4fa923cc4c23a80ecbc131cbc752
institution Directory Open Access Journal
issn 2169-3536
language English
last_indexed 2024-04-12T23:10:02Z
publishDate 2019-01-01
publisher IEEE
record_format Article
series IEEE Access
spelling doaj.art-f95a4fa923cc4c23a80ecbc131cbc7522022-12-22T03:12:49ZengIEEEIEEE Access2169-35362019-01-01713952613953610.1109/ACCESS.2019.29434888847402An Exploratory Study of the Relationship Between Software Test Smells and Fault-PronenessAbdallah Qusef0https://orcid.org/0000-0003-4769-6992Mahmoud O. Elish1David Binkley2Software Engineering Department, Princess Sumaya University for Technology, Amman, JordanComputer Science Department, Gulf University for Science and Technology, Mishref, KuwaitDepartment of Computer Science, Loyola University Maryland, Baltimore, MD, USATest smells have been defined as indicators of poorly designed tests. Their presence negatively affects the maintainability of a test suite as well as the production code. Despite the many studies that address the negative impacts of various test smells, until now there has been no empirical evidence considering the relation between the evolution of test smells and that of faults in the production code. This paper presents such evidence. It presents a case study of data collected from 28 versions of Apache Ant that include a total of 4,447 unit tests. Three key results arise from the data. First, the absolute number of test smells increases as Apache Ant evolves. Second, some test smells are positively correlated with the existence of faults in the production code. Finally, our results show that it is possible to predict faults in the production code based on the existence of test smells in the code’s unit tests. In addition, the resulting prediction model is more accurate at predicting high-severity faults than low-severity faults. This is an important result as it enables an engineer to focus preventative maintenance efforts, applied to the production code, using test smells found in the unit tests.https://ieeexplore.ieee.org/document/8847402/Test smellsunit testingmining software repositoriesexploratory studies
spellingShingle Abdallah Qusef
Mahmoud O. Elish
David Binkley
An Exploratory Study of the Relationship Between Software Test Smells and Fault-Proneness
IEEE Access
Test smells
unit testing
mining software repositories
exploratory studies
title An Exploratory Study of the Relationship Between Software Test Smells and Fault-Proneness
title_full An Exploratory Study of the Relationship Between Software Test Smells and Fault-Proneness
title_fullStr An Exploratory Study of the Relationship Between Software Test Smells and Fault-Proneness
title_full_unstemmed An Exploratory Study of the Relationship Between Software Test Smells and Fault-Proneness
title_short An Exploratory Study of the Relationship Between Software Test Smells and Fault-Proneness
title_sort exploratory study of the relationship between software test smells and fault proneness
topic Test smells
unit testing
mining software repositories
exploratory studies
url https://ieeexplore.ieee.org/document/8847402/
work_keys_str_mv AT abdallahqusef anexploratorystudyoftherelationshipbetweensoftwaretestsmellsandfaultproneness
AT mahmoudoelish anexploratorystudyoftherelationshipbetweensoftwaretestsmellsandfaultproneness
AT davidbinkley anexploratorystudyoftherelationshipbetweensoftwaretestsmellsandfaultproneness
AT abdallahqusef exploratorystudyoftherelationshipbetweensoftwaretestsmellsandfaultproneness
AT mahmoudoelish exploratorystudyoftherelationshipbetweensoftwaretestsmellsandfaultproneness
AT davidbinkley exploratorystudyoftherelationshipbetweensoftwaretestsmellsandfaultproneness