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
References
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
