From Reactive to Preventive: Real-Time Test Smell Avoidance with Linting
Resumo
Test code plays a fundamental role in ensuring software quality, yet its own quality is often overlooked. Poor implementation practices, commonly known as test smells, can reduce the readability, maintainability, and reliability of test suites. Existing tools, such as tsDetect, JNose, and RAIDE, detect test smells only after the test code has been written, limiting their ability to support developers during implementation. To address this limitation, we present AriesLinter, a tool that detects seventeen types of test smells in real time as developers write test code. We evaluated AriesLinter through two complementary studies. First, we investigated developers’ perceptions of real-time detection with respect to code quality, learning, and maintainability, obtaining positive feedback on its usefulness during development. Second, we evaluated the accuracy of AriesLinter against a manually constructed oracle. The results suggest that integrating test smell detection into the development process provides timely feedback while maintaining reliable detection, supporting continuous improvement in test code quality.
Palavras-chave:
Test Smells, Linter, Static Analysis, Test Code
Referências
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. 793–796.
Checkstyle Development Team. 2025. Checkstyle - A development tool to help programmers write Java code that adheres to a coding standard. [link]. Accessed: 2025-05-10.
Humberto Damasceno, Carla Bezerra, Denivan Campos, Ivan Machado, and Emanuel Coutinho. 2023. Test smell refactoring revisited: What can internal quality attributes and developers’ experience tell us? Journal of Software Engineering Research and Development 11, 1 (Oct. 2023), 13:1 – 13:16. DOI: 10.5753/jserd.2023.3195
Jonas De Bleser, Dario Di Nucci, and Coen De Roover. 2019. Socrates: Scala radar for test smells. In Proceedings of the Tenth ACM SIGPLAN Symposium on Scala. 22–26.
Vahid Garousi, Baris Kucuk, and Michael Felderer. 2019. What We Know About Smells in Software Test Code. IEEE Software 36, 3 (2019), 61–73. DOI: 10.1109/MS.2018.2875843
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
Stephen C. Johnson. 1988. Lint, a C Program Checker.
P. Louridas. 2006. Static code analysis. IEEE Software 23, 4 (2006), 58–61. DOI: 10.1109/MS.2006.114
Gerard Meszaros. 2007. xUnit test patterns: Refactoring test code. Pearson Education.
Jhonatan Oliveira, Luigi Mateus, Tássio Virgínio, and Larissa Rocha. 2024. SNUTS. js: Sniffing Nasty Unit Test Smells in Javascript. In Simpósio Brasileiro de Engenharia de Software (SBES). SBC, 720–726.
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
Valeria Pontillo, Luana Martins, Ivan Machado, Fabio Palomba, and Filomena Ferrucci. 2025. An empirical investigation into the capabilities of anomaly detection approaches for test smell detection. Journal of Systems and Software 222 (2025), 112320. DOI: 10.1016/j.jss.2024.112320
Rafael Rocha, Eronildo Junior, Tássio Virgínio, Larissa Rocha, Carla Bezerra, and Ivan Machado. 2025. AriesLinter: Sniffing Test Smells Before They Happen. In Anais do XXXIX Simpósio Brasileiro de Engenharia de Software (Recife/PE). SBC, Porto Alegre, RS, Brasil, 990–995. DOI: 10.5753/sbes.2025.11576
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. Science of Computer Programming 231 (2024), 103013. DOI: 10.1016/j.scico.2023.103013
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
Michele Tufano, Fabio Palomba, Gabriele Bavota, Massimiliano Di Penta, Rocco Oliveto, Andrea De Lucia, and Denys Poshyvanyk. 2016. An empirical investigation into the nature of test smells. In Proceedings of the 31st IEEE/ACM International Conference on Automated Software Engineering (Singapore, Singapore) (ASE ’16). Association for Computing Machinery, New York, NY, USA, 4–15. DOI: 10.1145/2970276.2970340
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
Tássio Virgínio, Luana Martins, Railana Santana, Adriana Cruz, Larissa Rocha, Heitor Costa, and Ivan Machado. 2021. On the test smells detection: an empirical study on the JNose Test accuracy. Journal of Software Engineering Research and Development 9, 1 (Sep. 2021), 8:1 – 8:14. DOI: 10.5753/jserd.2021.1893
Checkstyle Development Team. 2025. Checkstyle - A development tool to help programmers write Java code that adheres to a coding standard. [link]. Accessed: 2025-05-10.
Humberto Damasceno, Carla Bezerra, Denivan Campos, Ivan Machado, and Emanuel Coutinho. 2023. Test smell refactoring revisited: What can internal quality attributes and developers’ experience tell us? Journal of Software Engineering Research and Development 11, 1 (Oct. 2023), 13:1 – 13:16. DOI: 10.5753/jserd.2023.3195
Jonas De Bleser, Dario Di Nucci, and Coen De Roover. 2019. Socrates: Scala radar for test smells. In Proceedings of the Tenth ACM SIGPLAN Symposium on Scala. 22–26.
Vahid Garousi, Baris Kucuk, and Michael Felderer. 2019. What We Know About Smells in Software Test Code. IEEE Software 36, 3 (2019), 61–73. DOI: 10.1109/MS.2018.2875843
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
Stephen C. Johnson. 1988. Lint, a C Program Checker.
P. Louridas. 2006. Static code analysis. IEEE Software 23, 4 (2006), 58–61. DOI: 10.1109/MS.2006.114
Gerard Meszaros. 2007. xUnit test patterns: Refactoring test code. Pearson Education.
Jhonatan Oliveira, Luigi Mateus, Tássio Virgínio, and Larissa Rocha. 2024. SNUTS. js: Sniffing Nasty Unit Test Smells in Javascript. In Simpósio Brasileiro de Engenharia de Software (SBES). SBC, 720–726.
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
Valeria Pontillo, Luana Martins, Ivan Machado, Fabio Palomba, and Filomena Ferrucci. 2025. An empirical investigation into the capabilities of anomaly detection approaches for test smell detection. Journal of Systems and Software 222 (2025), 112320. DOI: 10.1016/j.jss.2024.112320
Rafael Rocha, Eronildo Junior, Tássio Virgínio, Larissa Rocha, Carla Bezerra, and Ivan Machado. 2025. AriesLinter: Sniffing Test Smells Before They Happen. In Anais do XXXIX Simpósio Brasileiro de Engenharia de Software (Recife/PE). SBC, Porto Alegre, RS, Brasil, 990–995. DOI: 10.5753/sbes.2025.11576
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. Science of Computer Programming 231 (2024), 103013. DOI: 10.1016/j.scico.2023.103013
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
Michele Tufano, Fabio Palomba, Gabriele Bavota, Massimiliano Di Penta, Rocco Oliveto, Andrea De Lucia, and Denys Poshyvanyk. 2016. An empirical investigation into the nature of test smells. In Proceedings of the 31st IEEE/ACM International Conference on Automated Software Engineering (Singapore, Singapore) (ASE ’16). Association for Computing Machinery, New York, NY, USA, 4–15. DOI: 10.1145/2970276.2970340
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
Tássio Virgínio, Luana Martins, Railana Santana, Adriana Cruz, Larissa Rocha, Heitor Costa, and Ivan Machado. 2021. On the test smells detection: an empirical study on the JNose Test accuracy. Journal of Software Engineering Research and Development 9, 1 (Sep. 2021), 8:1 – 8:14. DOI: 10.5753/jserd.2021.1893
Publicado
08/09/2026
Como Citar
VIEIRA, Rafael; VIRGINIO, Tassio; MACHADO, Ivan.
From Reactive to Preventive: Real-Time Test Smell Avoidance with Linting. In: CONCURSO DE TRABALHOS DE INICIAÇÃO CIENTÍFICA EM ENGENHARIA DE SOFTWARE - CONGRESSO BRASILEIRO DE SOFTWARE: TEORIA E PRÁTICA (CBSOFT), 17. , 2026, Cuiabá/MT.
Anais [...].
Porto Alegre: Sociedade Brasileira de Computação,
2026
.
p. 48-53.
DOI: https://doi.org/10.5753/cbsoft_estendido.2026.31760.
