Code smells implicam em bugs?
Code smells implicam em bugs?
Um dos meus alunos me questionou, fiz uma pesquisa rápida em alguns artigos científicos. Pois projetos de software muitas vezes utilizam de ferramentas SAST e ignoram seus indicadores. Vários artigos científicos identificaram que os code smell podem levar a bugs e outros problemas em projetos de software:
-
Uma revisão sistemática da literatura publicada em 2018 constatou que, dos 18 estudos analisados, 16 apresentaram evidências de que os code smells influenciam a ocorrência de bugs[1][2]. A revisão concluiu que os code smells podem ter um impacto maior ou menor nos bugs, sendo que apenas 2 estudos não encontraram qualquer influência.
-
Uma revisão terciária de 2020 sobre os code smells e a refactorização identificou 13 questões e desafios em aberto nesta área[4]. O estudo sublinhou que os code smells estão associados a uma conceção e a um estilo de programação deficientes, que frequentemente degradam a qualidade do código e o tornam mais difícil de compreender.
-
Um estudo de 2020 teve como objetivo compreender e classificar o “código nocivo”, analisando-o em termos de código limpo, code smell, com erros e nocivo[5]. O documento apresentou uma nova abordagem para detetar código nocivo com base nestas categorias.
-
Outros trabalhos analisaram tipos específicos de code smell e a sua relação com os erros, como um estudo de 2019 que utilizou uma análise de sobrevivência para investigar o impacto dos cheiros de conceção na propensão para a ocorrência de erros em sistemas multilingues[5].
Em resumo, a maior parte da literatura científica analisada indica que a presença de “code smell” está associada a uma maior probabilidade de ocorrência de “bugs” e outros problemas de software. Identificar e remover os code smell é uma parte importante da manutenção da qualidade do código e da redução da dívida técnica. Mas cuidado, correlação não implica em causalidade.
References: [1] https://www.mdpi.com/2078-2489/9/11/273 [2] https://www.researchgate.net/publication/328165778_The_Impact_of_Code_Smells_on_Software_Bugs_a_Systematic_Literature_Review [3] https://www.researchgate.net/publication/337939946_Software_Defect_Prediction_Using_Bad_Code_Smells_A_Systematic_Literature_Review [4] https://www.sciencedirect.com/science/article/abs/pii/S0164121220300881 [5] https://dl.acm.org/doi/10.1145/3422392.3422420