Smells in System User Interactive Tests
Renaud Rwemalika, Sarra Habchi, Mike Papadakis, Yves Le Traon,, Marie-Claude Brasseur

TL;DR
This paper explores test smells in system user interactive tests, proposing a catalog of 35 specific smells and analyzing their prevalence and refactoring in industrial and open-source projects.
Contribution
It introduces a novel catalog of 35 system test smells and provides an empirical analysis of their occurrence and refactoring practices in real-world projects.
Findings
Smells like Obscure Test, Sneaky Checking, and Over Checking appear in over 70% of tests.
Refactoring of smells is infrequent, with less than 50% of affected tests refactored.
Some smells, such as Narcissistic, are eliminated by removing old tests and adding new ones.
Abstract
Test smells are known as bad development practices that reflect poor design and implementation choices in software tests. Over the last decade, test smells were heavily studied to measure their prevalence and impacts on test maintainability. However, these studies focused mainly on the unit level and to this day, the work on system tests that interact with the System Under Test through a Graphical User Interface remains limited. To fill the gap, we conduct an exploratory analysis of test smells occurring in System User Interactive Tests (SUIT). First, based on a multi-vocal literature review, we propose a catalog of 35 SUIT-specific smells. Then, we conduct an empirical analysis to assess the prevalence and refactoring of these smells in 48 industrial test suites and 12 open-source projects. We show that the same type of smells tends to appear in industrial and open-source projects, but…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Code & Models
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsSoftware Engineering Research · Software Testing and Debugging Techniques · Software System Performance and Reliability
