- Publicado el
Prediciendo Evaluaciones de Expertos en Revisiones de Código de Software

Este artículo explora el uso de un modelo algorítmico para predecir las evaluaciones de expertos sobre commits de código de software, centrándose en aspectos que a menudo se pasan por alto en las revisiones manuales de código debido a limitaciones de tiempo. La investigación tiene como objetivo complementar, no reemplazar, la revisión humana al proporcionar insights automatizados en áreas como el tiempo de codificación, el tiempo de implementación y la complejidad del código.
Introducción
La investigación tiene como objetivo complementar, no reemplazar, la revisión humana al proporcionar insights automatizados en áreas como el tiempo de codificación, el tiempo de implementación y la complejidad del código.
Metodología
Se entrenó un modelo de random forest con evaluaciones de diez expertos en Java en 70 commits de código, cubriendo aspectos como la estructura del código, métricas de calidad, detalles de implementación y elementos arquitectónicos. El modelo utiliza análisis estático de código vinculado a commits de Git.
Resultados
El modelo demostró fuertes correlaciones con el juicio humano, particularmente para el tiempo de codificación (r=0.82) y el tiempo de implementación (r=0.86). Esto sugiere un potencial para una estimación precisa y automatizada del esfuerzo. Si bien fue efectivo para métricas basadas en el tiempo, el rendimiento del modelo fue menos robusto para cualidades subjetivas como la mantenibilidad del código y la experiencia del autor, destacando el desafío de automatizar estas evaluaciones matizadas. Esto probablemente fue influenciado por un menor acuerdo entre evaluadores en estos aspectos subjetivos.
Discusión
La eficiencia del modelo (tiempo de procesamiento de menos de un segundo por commit) ofrece ahorros de tiempo significativos en comparación con las revisiones manuales, permitiendo que los revisores humanos se concentren en aspectos de mayor nivel.
Conclusión
Esta investigación indica que los modelos algorítmicos pueden complementar efectivamente las revisiones manuales de código al proporcionar evaluaciones rápidas y objetivas de ciertas características del código, especialmente aquellas relacionadas con el esfuerzo de desarrollo. Este enfoque permite que los revisores humanos se concentren en aspectos más complejos y subjetivos de la calidad del código, lo que en última instancia conduce a un proceso de revisión más eficiente y completo. Se necesita más investigación para mejorar el manejo del modelo de cualidades subjetivas y extender su aplicabilidad a otros lenguajes de programación.
Fuente(s):
¿Disfrutaste este post? ¿Lo encontraste útil? No dudes en dejar un comentario a continuación para compartir tus pensamientos o hacer preguntas. Se requiere una cuenta de GitHub para unirse a la discusión.