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...
| Autor: | |
|---|---|
| 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 |
| 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. |
|---|