Con el creciente uso de herramientas de codificación basadas en IA , las bases de código se han vuelto más propensas a las vulnerabilidades, lo que ha aumentado la necesidad de revisiones de código efectivas. Para abordar este problema, presentamos RevEval (AI Code Review Eval), que compara las cuatro mejores herramientas de revisión de código basadas en IA en 309 solicitudes de extracción de repositorios de diferentes tamaños y evalúa su rendimiento utilizando la información de 10 desarrolladores y un experto en gestión de bibliotecas como juez.
Resultados de referencia
CodeRabbit se clasificó como la herramienta de revisión de código más exitosa en el 51% de 309 solicitudes de extracción (PR):
Para medir la clasificación, utilizamos las puntuaciones del LLM como juez. Analizamos qué herramienta de revisión de código de IA obtuvo la puntuación más alta en cada PR (evaluada mediante nuestro LLM como juez) y, a continuación, calculamos el porcentaje de todas las PR en las que cada herramienta ocupó el primer lugar.
CodeRabbit obtuvo la puntuación más alta tanto en las evaluaciones manuales realizadas por humanos como en las evaluaciones realizadas por LLM como juez, seguido de Greptile y GitHub Copilot:
Al calcular la puntuación promedio, las tres categorías de evaluación tuvieron el mismo peso. Las puntuaciones de los repositorios grandes y pequeños fueron evaluadas por LLM como juez, y las evaluaciones de los desarrolladores se completaron manualmente para verificar las puntuaciones de LLM como juez.
Evaluaciones humanas
Preguntamos a los desarrolladores que participaron en las evaluaciones qué herramienta de revisión de código con IA preferirían integrar en sus flujos de trabajo. Dado que los CTO desempeñan un papel fundamental en la toma de decisiones en el desarrollo de software, destacamos sus respuestas en un gráfico aparte:
Comparación detallada
Calculamos el número promedio de errores por solicitud de extracción (PR) contando todos los errores/problemas reportados por cada herramienta de revisión de código y dividiendo el resultado entre el número total de solicitudes de extracción (309). No todas las solicitudes de extracción en nuestro código contienen errores o problemas. GitHub Copilot no informa explícitamente cuando detecta un error en una solicitud de extracción; por lo tanto, se excluyó de esta comparación.
A continuación, puede consultar nuestra metodología .
Características
* Esta funcionalidad la proporciona la función de "verificaciones previas a la fusión" de CodeRabbit. Valida automáticamente las solicitudes de extracción según los estándares de calidad y los requisitos organizativos personalizados antes de la fusión, y devuelve los resultados (aprobado/reprobado) con explicaciones directamente en el recorrido de la solicitud de extracción. Cada verificación se puede configurar para advertir a los desarrolladores o bloquear las fusiones por completo. Si bien GitHub Copilot, Cursor BugBot y Greptile ofrecen funciones de revisión de solicitudes de extracción, funcionan como sistemas de asesoramiento que brindan comentarios y sugerencias en lugar de marcos de validación sistemáticos.
** Cursor y GitHub Copilot pueden ofrecer más funcionalidades además de sus componentes de revisión de código; en nuestra comparación solo se incluyen las características de Cursor Bugbot y GitHub Copilot Code Review.
Las funciones varían según el plan de suscripción, por lo que algunas funciones que aparecen marcadas como disponibles arriba podrían no estar disponibles en su suscripción.
En las revisiones de código automatizadas, CodeRabbit, GitHub Copilot y Cursor Bugbot fueron más fáciles de configurar que Greptile porque en Greptile no se pueden habilitar las revisiones de código automatizadas para un repositorio vacío.
Análisis en profundidad de la función
CodeRabbit
- Más de 40 analizadores de código y escáneres de seguridad integrados.
- Instrucciones personalizadas basadas en patrones AST.
- Se adapta con el tiempo a partir de los comentarios de los desarrolladores.
- Los desarrolladores pueden etiquetar a @coderabbitai para solicitar seguimientos, pedir correcciones o hacer preguntas sobre recomendaciones.
- Admite servidores MCP personalizados para obtener contexto adicional.
Revisión de código de GitHub Copilot
- El botón "Implementar sugerencia" transfiere la tarea al agente de codificación de Copilot.
- Integración total con el ecosistema de GitHub.
- Instrucciones personalizadas a través de copilot-instructions.md.
Greptile
- Aprende los estándares de codificación del equipo a partir del historial de comentarios de las solicitudes de extracción.
- Con los repositorios de patrones, los desarrolladores pueden hacer referencia a repositorios relacionados en greptile.json para poder proporcionar contexto adicional.
- Los desarrolladores pueden responder con @greptileai para preguntas de seguimiento o sugerencias de corrección.
- Greptile aprende a partir de las opiniones de los usuarios (pulgar arriba/abajo).
- Diagramas de secuencia generados automáticamente para todas las solicitudes de extracción.
Cursor BugBot
- Una vez que BugBot identifica un error, los desarrolladores pueden usar el botón "Corregir en el cursor" para abrir rápidamente el cursor y corregir el error.
- Los desarrolladores pueden personalizar sus reglas de revisión de código en los archivos BUGBOT.md.
También teníamos previsto realizar pruebas de rendimiento con Graphite; sin embargo, debido a un error en su panel de control, no pudimos habilitar las revisiones de código automatizadas para los nuevos repositorios. Nos pusimos en contacto con su equipo de soporte el 25 de octubre de 2025, pero la respuesta no resolvió el problema. A pesar de los correos electrónicos de seguimiento y un mensaje en su canal de Slack, el problema persistió.
Componentes e integraciones
* Todas estas soluciones son compatibles con GitHub.
Metodología
Creamos repositorios de referencia independientes para cada herramienta dentro de nuestra organización dedicada en GitHub.
Tras habilitar las revisiones automáticas de código para cada herramienta en su repositorio asignado, abrimos solicitudes de extracción en secuencia, esperamos a que la herramienta completara su revisión y, a continuación, cerramos las solicitudes para registrar los resultados. No modificamos ni ajustamos la configuración de ninguna herramienta. Cada herramienta se evaluó con su configuración predeterminada, tal como se instaló.
Nuestro flujo de trabajo comienza clonando el repositorio de origen tal como existía en una fecha de referencia seleccionada, para luego reproducir una por una las solicitudes de extracción enviadas después de esa fecha, conservando la estructura original del repositorio.
Utilizamos las versiones de noviembre de 2025 de todos los productos. Nuestra prueba de rendimiento consistió en 2 rangos diferentes de repositorios de código fuente:
1. Repositorios conocidos de tamaño mediano a grande.
Nuestro objetivo era comprobar la eficacia con la que las herramientas de revisión de código basadas en IA comprenden los repositorios con estructuras grandes y complejas. Hemos revisado un total de 289 solicitudes de extracción (PR) en 7 repositorios.
2. Repositorios pequeños y nuevos
Somos conscientes de que no podemos alimentar nuestro LLM como juez con el
En los repositorios grandes, no se analizó el repositorio completo, ya que sus ventanas de contexto no son suficientes. Por lo tanto, para superar esto, también evaluamos las primeras 3 a 5 solicitudes de extracción (PR) de repositorios nuevos y pequeños. Los servidores MCP se ajustan perfectamente a nuestras necesidades. En consecuencia, elegimos 8 servidores MCP oficiales y revisamos 20 solicitudes de extracción en ellos.
Nuestro conjunto de datos contiene código escrito por desarrolladores experimentados. No evaluamos el rendimiento en bases de código generadas completamente por IA.
Evaluaciones de desarrolladores
Seleccionamos aleatoriamente 35 solicitudes de extracción (PR) y las asignamos a 10 desarrolladores. Cada PR fue evaluada 5 veces por cada desarrollador. Nuestro objetivo al repetir la evaluación era minimizar el sesgo de los desarrolladores. Estos evaluaron los resultados de forma imparcial, sin importar el proveedor.
La mayoría llegó a las mismas conclusiones generales:
- Las revisiones detalladas de CodeRabbit son útiles y tiene éxito en la detección de errores.
- Greptile proporcionó resúmenes satisfactorios, pero los diagramas de secuencia que generó no son necesarios para algunas solicitudes de extracción (PR).
Figura 1: Diagrama de secuencia de ejemplo proporcionado por Greptile. Greptile genera los diagramas para cada PR. 1
- GitHub Copilot es muy eficaz para encontrar errores tipográficos en el código y ofrece sugerencias muy acertadas; su análisis es más breve que el de CodeRabbit y Greptile.
- Cursor Bugbot proporciona un análisis menos detallado y menos preciso.
Tras las evaluaciones, también afirmaron que comenzarán a utilizarlas en sus propios repositorios como herramienta de soporte para desarrolladores.
Máster en Derecho como Juez
Usamos GPT-5 para evaluar las reseñas. Después de la evaluación, usamos GPT-4o para estructurar la salida en formato JSON.
Nuestro flujo de trabajo de evaluación incluye:
- Para repositorios grandes: El cuerpo original de la solicitud de extracción, las diferencias y los comentarios/revisiones de las herramientas.
- Para repositorios pequeños: código fuente completo, el cuerpo original de la solicitud de extracción, las diferencias y los comentarios/revisiones de las herramientas.
Aquí está la consigna completa que utilizamos:
Evalúe cada herramienta en estas dimensiones (escala del 1 al 5):
1. Corrección
¿Los problemas identificados son realmente problemas/errores/correcciones reales en el código?
– 5 (Excelente): Todos los problemas identificados son problemas reales.
– 4 (Bueno): La mayoría de los problemas son reales, identificaciones erróneas menores.
– 3 (Aceptable): Mezcla de temas reales y cuestionables.
– 2 (Malo): La mayoría de los problemas identificados no son problemas reales.
– 1 (Fallido): No se pueden identificar problemas reales, todos los resultados son incorrectos.
2. Integridad
¿Se detectaron cuestiones importantes? ¿Qué tan exhaustiva es la revisión?
– 5 (Excelente): Aborda todos los temas críticos y los más importantes.
– 4 (Bueno): Detecta los problemas principales, pero omite algunos menores.
– 3 (Aceptable): Detecta algunos problemas importantes, pero tiene deficiencias notables.
– 2 (Malo): Pasa por alto varios temas críticos.
– 1 (Fallo): No detecta todos o casi todos los problemas críticos.
3. Capacidad de acción
¿Las sugerencias son claras y factibles? ¿Incluyen parches o correcciones? Si no hay errores en el código, indique "nulo" en la funcionalidad de todas las herramientas y no asigne ninguna puntuación a ninguna herramienta para esa solicitud de extracción.
– 5 (Excelente): Todas las sugerencias incluyen parches/correcciones claras y son directamente implementables.
– 4 (Bueno): La mayoría de las sugerencias tienen una guía clara, algunas incluyen parches.
– 3 (Aceptable): Las sugerencias son bastante claras, pero carecen de soluciones para algunos problemas.
– 2 (Malo): Las sugerencias son en su mayoría poco claras o no se pueden implementar.
– 1 (Fallido): No se proporcionaron sugerencias ni orientación claras.
4. Profundidad
¿Demuestra comprensión de la lógica y el propósito del código?
– 5 (Excelente): Demuestra una comprensión profunda de la lógica, la arquitectura y el propósito del código.
– 4 (Bien): Demuestra buena comprensión con pequeñas lagunas.
– 3 (Aceptable): Comprensión superficial, le falta algo de contexto.
– 2 (Malo): Explicaciones superficiales o incorrectas del comportamiento del código.
– 1 (Fallo): No se comprende la lógica ni el propósito del código.
Formato de salida
Para cada herramienta, proporcione:
1. Razonamiento detallado: ¿Qué encontró? ¿Pasó por alto problemas importantes? ¿Se incluyeron parches? ¿Se demostró un conocimiento profundo del código fuente? Ejemplos específicos.
2. Puntuaciones individuales (de 1 a 5 para cada dimensión, utilizando la escala anterior)
Ejemplo de salida
Herramienta A:
Justificación: La herramienta A demostró una excelente precisión al identificar una fuga de memoria real en la lógica de agrupación de conexiones en la línea 145, proporcionando un parche específico mediante un gestor de contexto. También detectó la falta de manejo de errores en el punto final de la API con código ejecutable. La puntuación de exhaustividad refleja que, si bien encontró problemas importantes, no detectó la condición de carrera en el controlador asíncrono que podría causar problemas en producción. Los cuatro comentarios fueron sustanciales y directamente implementables. La profundidad del análisis fue sólida, demostrando una comprensión de los patrones de gestión de recursos y la propagación de errores en el código fuente.
Corrección: 5
Completitud: 4
Viabilidad: 5
Profundidad: 4
Herramienta B:
Razonamiento: La herramienta B identificó correctamente la vulnerabilidad de validación de entrada en la línea 89 y proporcionó una solución clara mediante la sanitización de parámetros. Sin embargo, su exhaustividad se vio significativamente afectada, ya que no detectó la vulnerabilidad de seguridad crítica en el flujo de autenticación que permite la reutilización de tokens. La aplicabilidad fue en general buena; las sugerencias incluían fragmentos de código. La profundidad fue aceptable, pero superficial, centrándose en comprobaciones superficiales en lugar de comprender el modelo de seguridad o las implicaciones del flujo de datos.
Corrección: 4
Completitud: 1
Viabilidad: 4
Profundidad: 2
Herramientas para evaluar: CodeRabbit, Cursor Bugbot, Github Copilot, Greptile
Sea objetivo y minucioso. Utilice ejemplos específicos de las reseñas para respaldar sus puntuaciones.
¿Qué es la revisión de código mediante IA?
La revisión de código mediante IA consiste en el análisis automatizado del código fuente utilizando modelos de aprendizaje automático, principalmente modelos de lenguaje a gran escala (LLM), para identificar errores, ineficiencias y posibles vulnerabilidades. Además de detectar problemas, estos sistemas pueden proporcionar explicaciones contextualizadas, sugerir soluciones concretas y generar parches que ayudan a los desarrolladores a mejorar tanto la calidad como la mantenibilidad del código. Muchas herramientas de revisión de IA también facilitan la documentación al resumir los cambios y generar comentarios o explicaciones descriptivas para el código recién añadido.
Dado que los modelos de IA pueden evaluar el código de forma rápida y a gran escala, aceleran significativamente el proceso de revisión y facilitan la detección temprana de problemas, al tiempo que mantienen estándares de codificación consistentes en proyectos grandes o de rápida evolución.
En entornos de desarrollo modernos asistidos por IA, como Cursor o Claude Code, los desarrolladores pueden perder involuntariamente el control de la evolución de su código al programar de forma intuitiva o al depender en gran medida de las sugerencias generadas automáticamente. Esto puede introducir vulnerabilidades ocultas o inconsistencias lógicas. Las herramientas de revisión de código con IA ayudan a mitigar estos riesgos al proporcionar una capa adicional de análisis estructurado y sistemático para validar y mejorar el código generado por la IA.
Beneficios de la revisión de código mediante IA
Eficiencia y velocidad
Las herramientas de revisión de código con IA pueden analizar el código en tiempo real, proporcionando retroalimentación inmediata e identificando posibles problemas mientras los desarrolladores trabajan. Son capaces de detectar errores y vulnerabilidades de seguridad que los revisores humanos podrían pasar por alto, especialmente en bases de código extensas o en constante evolución. Al automatizar las comprobaciones rutinarias, estas herramientas permiten a los desarrolladores concentrarse en el razonamiento de alto nivel, la resolución de problemas complejos y las decisiones arquitectónicas.
Mejora de la calidad del código
Las herramientas de revisión de código con IA ayudan a mantener estándares de codificación consistentes entre equipos, identificando inconsistencias estilísticas y desviaciones de las mejores prácticas. También ofrecen comentarios detallados y recomendaciones sobre una amplia gama de problemas de codificación, desde pequeñas mejoras hasta errores importantes. Con el tiempo, los desarrolladores pueden aprender de estos comentarios, perfeccionar sus hábitos de codificación y adoptar nuevas técnicas que mejoren la calidad general de su trabajo.
Limitaciones y desafíos
Dependencia excesiva de las herramientas de IA
Una preocupación común con la revisión de código mediante IA es la excesiva dependencia de la retroalimentación automatizada. Si bien la IA puede ser una valiosa fuente de información, no debe considerarse un sustituto completo de la experiencia humana. Las revisiones automatizadas pueden acelerar los flujos de trabajo, pero los revisores humanos siguen siendo esenciales para garantizar la corrección, la comprensión del contexto y la alineación con los objetivos del proyecto. En nuestro estudio comparativo, los desarrolladores afirmaron consistentemente que no confiarían ciegamente en estas herramientas. Las consideraban asistentes que complementan el juicio humano, no que lo reemplazan.
Gestión de falsos positivos y falsos negativos
Los falsos positivos se producen cuando la herramienta identifica erróneamente código que funciona como problemático, mientras que los falsos negativos ocurren cuando se pasan por alto problemas reales. En nuestra evaluación, la principal preocupación fueron los falsos negativos. Las herramientas tenían más probabilidades de pasar por alto problemas importantes que de generar advertencias incorrectas. Esto subraya la necesidad de mejorar continuamente los modelos y algoritmos subyacentes.
Para hacer frente a estos desafíos, las herramientas de revisión de código basadas en IA deben evolucionar mediante un mejor entrenamiento, un manejo de contexto optimizado y capacidades de razonamiento más precisas.
Buenas prácticas para el uso de revisiones de código con IA
Consejos de expertos
Combina las revisiones de IA con la opinión humana: utiliza las revisiones de código basadas en IA junto con las revisiones humanas para garantizar que el código sea técnicamente sólido y se ajuste a los objetivos del proyecto.
Personaliza las reglas para adaptarlas a tu proyecto: ajusta las reglas de la herramienta de IA para que coincidan con los estándares de codificación de tu proyecto y así reducir las alertas innecesarias.
Utilice la retroalimentación de la IA como herramienta de aprendizaje: Considere las sugerencias de la IA como una forma de aprender y mejorar, y discútalas con tu equipo para comprender el porqué y cómo evitar problemas similares en el futuro.
Expresiones de gratitud
Extendemos nuestro sincero agradecimiento a los desarrolladores que aportaron su tiempo y experiencia para realizar las evaluaciones manuales:
Aziz Durmaz (Director de Tecnología en una empresa de transporte y logística)
Berk Kalelioğlu (cofundador de un estudio de desarrollo de juegos)
Elif Ece Örnek (ingeniera de software en un sitio web de viajes)
Haydar Külekçi (consultor en una empresa de tecnologías de búsqueda e inteligencia artificial)
Mehmet Şirin Can (jefe de desarrollo de AIMultiple)
Mehmet Korkmaz (CTO de una empresa de medios de comunicación en la industria de los deportes electrónicos y los videojuegos)
Murat Orno (ex director de tecnología de una plataforma de pagos regional con más de 500 empleados)
Orçun Candan (desarrollador full-stack en AIMultiple)
Yalçın Börlü (ingeniero sénior de software en una empresa de salud y bienestar)
Yiğit Dinç (cofundador de una empresa de tecnología jurídica)
También agradecemos a los desarrolladores y mantenedores de los repositorios de código abierto incluidos en nuestra evaluación comparativa por su trabajo y sus valiosas contribuciones a la comunidad.
Anonimización de las identidades originales de los desarrolladores
Para llevar a cabo la evaluación comparativa de forma responsable, anonimizamos los nombres y direcciones de correo electrónico de todos los desarrolladores originales al reproducir las solicitudes de extracción de los repositorios originales. Dado que los repositorios de la evaluación comparativa son públicos, conservar la información del autor original podría exponer datos personales de forma involuntaria y generar el riesgo de notificar a los desarrolladores cada vez que se abre o actualiza una solicitud de extracción recreada. Si bien GitHub no suele notificar a los autores cuando sus confirmaciones se reproducen en un repositorio independiente, consideramos que era una buena práctica evitar cualquier posibilidad de notificaciones no deseadas, problemas de atribución o preocupaciones sobre la privacidad.
La anonimización garantiza que:
- A los desarrolladores no les preocupan los miles de eventos de relaciones públicas automatizados.
- La información personal no se vuelve a publicar en ningún otro repositorio público.
- Los criterios de evaluación se mantienen imparciales, lo que impide que las herramientas o los evaluadores de los másteres en Derecho (LLM) se vean influenciados por nombres de autores conocidos.
- Se respetan los estándares éticos y de privacidad al trabajar con contribuciones de código abierto.
Únicamente se modificaron los metadatos de identidad; todo el código, las diferencias, el orden de las confirmaciones y las estructuras de archivos se conservaron exactamente para mantener la autenticidad y la reproducibilidad de la prueba de rendimiento.
Sé el primero en comentar
Tu dirección de correo electrónico no será publicada. Todos los campos son obligatorios.