AromaDr: A Language-Independent Tool for Detecting Test Smells

Abstract


Ensuring high-quality test code is critical for the success and maintainability of software projects. Poorly designed tests, known as test smells, can undermine this goal by making test code harder to understand, maintain, and extend. Although various tools exist to detect and refactor test smells, most are tailored to specific programming languages, limiting their effectiveness in polyglot development environments. To overcome this limitation, we introduce AromaDr, a language-independent tool capable of detecting ten common test smells across multiple programming languages, including C#, Java, JavaScript, TypeScript, and Python. The smells detected by AromaDr include: Assertion Roulette, Conditional Test Logic, Duplicate Assert, Empty Test, Exception Handling, Ignored Test, Magic Number, Redundant Print, Sleepy Test, and Unknown Test. Beyond its language-independent detection capabilities, AromaDr offers several practical features: a graphical user interface for intuitive interaction, precise localization of test smells within the code, and an API that facilitates seamless integration with other development tools. To our knowledge, AromaDr currently supports the broadest range of programming languages among available test smell detection tools. In addition, AromaDr provides several features that distinguish it from other test-smell detection tools: a graphical interface (many alternatives are command-line only), the ability to pinpoint the exact line where each test smell occurs and a REST API that enables seamless integration with other tools. Video: https://zenodo.org/records/15467769

Keywords: Test Smell, Detection, Tool, Language-Independent

References

Wajdi Aljedaani, Anthony Peruma, Ahmed Aljohani, Mazen Alotaibi, Mohamed Wiem Mkaouer, Ali Ouni, Christian D. Newman, Abdullatif Ghallab, and Stephanie Ludi. 2021. Test Smell Detection Tools: A Systematic Mapping Study. In Proceedings of the 25th International Conference on Evaluation and Assessment in Software Engineering (Trondheim, Norway) (EASE ’21). Association for Computing Machinery, New York, NY, USA, 170–180. DOI: 10.1145/3463274.3463335

Luca Ardito, Luca Barbato, Marco Castelluccio, Riccardo Coppola, Calixte Denizet, Sylvestre Ledru, and Michele Valsesia. 2020. rust-code-analysis: A Rust library to analyze and extract maintainability information from source codes. SoftwareX 12 (2020), 100635. DOI: 10.1016/j.softx.2020.100635

Moritz Beller, Georgios Gousios, Annibale Panichella, and Andy Zaidman. 2015. When, how, and why developers (do not) test in their IDEs. In Proceedings of the 2015 10th Joint Meeting on Foundations of Software Engineering (Bergamo, Italy) (ESEC/FSE 2015). Association for Computing Machinery, New York, NY, USA, 179–190. DOI: 10.1145/2786805.2786843

Alexandru Bodea. 2022. Pytest-Smell: a smell detection tool for Python unit tests. In Proceedings of the 31st ACM SIGSOFT International Symposium on Software Testing and Analysis (Virtual, South Korea) (ISSTA 2022). Association for Computing Machinery, New York, NY, USA, 793–796. DOI: 10.1145/3533767.3543290

Vahid Garousi and Barış Küçük. 2018. Smells in software test code: A survey of knowledge in industry and academia. Journal of Systems and Software 138 (2018), 52–81. DOI: 10.1016/j.jss.2017.12.013

Dalton Jorge, Patricia Machado, and Wilkerson Andrade. 2021. Investigating Test Smells in JavaScript Test Code. In Proceedings of the 6th Brazilian Symposium on Systematic and Automated Software Testing (Joinville, Brazil) (SAST ’21). Association for Computing Machinery, New York, NY, USA, 36–45. DOI: 10.1145/3482909.3482915

Gustavo Lopes, Davi Romão, Elvys Soares, Márcio Ribeiro, Guilherme Amaral, Rohit Gheyi, and Ivan Machado. 2024. A Road to Find Them All: Towards an Agnostic Strategy for Test Smell Detection. In Proceedings of the XXIII Brazilian Symposium on Software Quality (SBQS ’24). Association for Computing Machinery, New York, NY, USA, 231–241. DOI: 10.1145/3701625.3701662

Annibale Panichella, Sebastiano Panichella, Gordon Fraser, Anand Ashok Sawant, and Vincent J. Hellendoorn. 2022. Test smells 20 years later: detectability, validity, and reliability. Empirical Software Engineering 27, 7 (20 Sep 2022), 170. DOI: 10.1007/s10664-022-10207-5

Partha P. Paul, Md Tonoy Akanda, M. Raihan Ullah, Dipto Mondal, Nazia S. Chowdhury, and Fazle M. Tawsif. 2024. xNose: A Test Smell Detector for C . In 2024 IEEE/ACM 46th International Conference on Software Engineering: Companion Proceedings (ICSE-Companion). IEEE Computer Society, Los Alamitos, CA, USA, 370–371. DOI: 10.1145/3639478.3643116

Anthony Peruma, Khalid Almalki, Christian D. Newman, Mohamed Wiem Mkaouer, Ali Ouni, and Fabio Palomba. 2020. tsDetect: an open source test smells detection tool. In Proceedings of the 28th ACM Joint Meeting on European Software Engineering Conference and Symposium on the Foundations of Software Engineering (Virtual Event, USA) (ESEC/FSE 2020). Association for Computing Machinery, New York, NY, USA, 1650–1654. DOI: 10.1145/3368089.3417921

Railana Santana, Luana Martins, Larissa Rocha, Tássio Virgínio, Adriana Cruz, Heitor Costa, and Ivan Machado. 2020. RAIDE: a tool for Assertion Roulette and Duplicate Assert identification and refactoring. In Proceedings of the XXXIV Brazilian Symposium on Software Engineering (Natal, Brazil) (SBES ’20). Association for Computing Machinery, New York, NY, USA, 374–379. DOI: 10.1145/3422392.3422510

Railana Santana, Luana Martins, Tássio Virgínio, Larissa Rocha, Heitor Costa, and Ivan Machado. 2024. An empirical evaluation of RAIDE: A semi-automated approach for test smells detection and refactoring. Sci. Comput. Program. 231, C (Jan. 2024), 20 pages. DOI: 10.1016/j.scico.2023.103013

Publio Silva. 2025. AromaDr GitHub Repository. [link] Accessed: 2025-05-18.

Publio Silva, Carla Bezerra, and Ivan Machado. 2024. Toward a Language-Agnostic Approach to Detect Test Smells. In Anais do XXXVIII Simpósio Brasileiro de Engenharia de Software (Curitiba/PR). SBC, Porto Alegre, RS, Brasil, 686–692. DOI: 10.5753/sbes.2024.3647

Nildo Silva Junior, Luana Martins, Larissa Rocha, Heitor Costa, and Ivan Machado. 2021. How are test smells treated in the wild? A tale of two empirical studies. Journal of Software Engineering Research and Development 9, 1 (Sep. 2021), 9:1–9:16. DOI: 10.5753/jserd.2021.1802

Huynh Khanh Vi Tran, Michael Unterkalmsteiner, Jürgen Börstler, and Nauman bin Ali. 2021. Assessing test artifact quality—A tertiary study. Information and Software Technology 139 (2021), 106620. DOI: 10.1016/j.infsof.2021.106620

Tássio Virgínio, Luana Martins, Larissa Rocha, Railana Santana, Adriana Cruz, Heitor Costa, and Ivan Machado. 2020. JNose: Java Test Smell Detector. In Proceedings of the XXXIV Brazilian Symposium on Software Engineering (Natal, Brazil) (SBES ’20). Association for Computing Machinery, New York, NY, USA, 564–569. DOI: 10.1145/3422392.3422499

Tongjie Wang, Yaroslav Golubev, Oleg Smirnov, Jiawei Li, Timofey Bryksin, and Iftekhar Ahmed. 2021. PyNose: A Test Smell Detector For Python . In 2021 36th IEEE/ACM International Conference on Automated Software Engineering (ASE). IEEE Computer Society, Los Alamitos, CA, USA, 593–605. DOI: 10.1109/ASE51524.2021.9678615
Published
2025-09-22
SILVA, Publio; BEZERRA, Carla; MACHADO, Ivan; RIBEIRO, Márcio. AromaDr: A Language-Independent Tool for Detecting Test Smells. In: BRAZILIAN SYMPOSIUM ON SOFTWARE ENGINEERING (SBES), 39. , 2025, Recife/PE. Anais [...]. Porto Alegre: Sociedade Brasileira de Computação, 2025 . p. 914-920. ISSN 2833-0633. DOI: https://doi.org/10.5753/sbes.2025.11114.