Technical debt in pull requests : insights from static code analysis and human reviews.

Dívida técnica (DT) refere-se a soluções técnicas rápidas que aceleram a entrega, mas degradam a qualidade do software ao longo do tempo, tornando os sistemas mais difíceis de manter, evoluir e testar. Estudos anteriores analisaram principalmente a evolução de longo prazo da DT por meio de commits o...

Descripción completa

Detalles Bibliográficos
Autor: CALIXTO, Felipe Emerson de Oliveira.
Tipo de recurso: tesis de maestría
Estado:Versión publicada
Fecha de publicación:2025
País:Brasil
Institución:Universidade Federal de Campina Grande (UFCG)
Repositorio:Biblioteca Digital de Teses e Dissertações da UFCG
Idioma:portugués
OAI Identifier:oai:dspace.sti.ufcg.edu.br:riufcg/43638
Acceso en línea:https://dspace.sti.ufcg.edu.br/handle/riufcg/43638
Access Level:acceso abierto
Palabra clave:SonarQube
Mining software repositories
Software evolution
Empirical study
Code review
Pull request
Technical debt
Mineração de repositórios de software
Evolução do software
Estudo empírico
Revisão de código
Solicitação de pull
Dívida técnica
Ciência da Computação
Descripción
Sumario:Dívida técnica (DT) refere-se a soluções técnicas rápidas que aceleram a entrega, mas degradam a qualidade do software ao longo do tempo, tornando os sistemas mais difíceis de manter, evoluir e testar. Estudos anteriores analisaram principalmente a evolução de longo prazo da DT por meio de commits ou releases, focando na detecção automatizada ou em revisões de código. No entanto, pouco se sabe sobre sua dinâmica de curto prazo — isto é, como desenvolvedores e revisores lidam com a DT em pull requests (PRs), principal ponto de integração de código. Para preencher essa lacuna, conduzimos um estudo empírico em 12 projetos Java da Apache, analisando a DT em PRs sob duas perspectivas: (i) um estudo quantitativo com o SonarQube para avaliar a DT em 2.056 PRs aceitos (merged), examinando tendências da dívida (reduzida, inalterada ou aumentada), influências temporais e categorias de problemas frequentemente ignorados ou resolvidos; e (ii) um estudo qualitativo de 250 PRs e 929 threads de revisão para investigar como revisores e desenvolvedores lidam com a DT, identificando gatilhos para discussões sobre DT e a natureza das sugestões apresentadas para tratá-la. Nossos resultados mostram que a DT é prevalente, aparecendo em 96,26% dos PRs (detectada por ferramenta) e em 84,4% (revisões de código), com 76% dos review threads discutindo DT. A evolução da DT segue uma razão de 1:2:1 (reduzida:inalterada:aumentada). Os problemas mais comuns incluem duplicação de código, inconsistências de nomenclatura, complexidade cognitiva e práticas inadequadas de logging, sendo alguns considerados toleráveis em determinados contextos. Embora 96% das discussões sobre DT incluam sugestões de correção e mais de 80% delas sejam de fato implementadas, quase 40% não apresentam confirmação explícita do desenvolvedor — proporção que chega a 90% nos casos em que o problema permanece sem solução. Esses achados podem orientar profissionais no gerenciamento da DT, apoiar desenvolvedores de ASATs no aprimoramento ou criação de novas ferramentas e fornecer uma base para pesquisas futuras utilizando nossa metodologia e datasets.