La revisión del código es una medida de garantía de calidad en el desarrollo de software. El código fuente es el medio básico del trabajo de desarrollo y el producto principal de la programación. El código recién creado o modificado se somete a una revisión del código. En este proceso, uno o varios miembros del equipo repasan el trabajo de un programador.
Un proyecto de software incluye una base de código o “codebase”: una colección de archivos de código que, en conjunto, sirven para entregar un producto. Incluye el código real del producto, la configuración, las herramientas de desarrollo, las pruebas y mucho más, todo mapeado en código. Todo el código base se gestiona con un sistema de control de versiones como Git. Se pueden gestionar varias versiones del código base en paralelo a través de varias “ramas”, por lo que permite avanzar en el desarrollo de nuevas funcionalidades sin cambiar la versión de producción del código base.
El trabajo de desarrollo suele tener lugar en las llamadas “Feature-Branch”, ramas que desarrollan características concretas y se integran periódicamente en la rama principal. La revisión del código se realiza antes de la “fusión”, es decir, antes de que el código nuevo o modificado se fusione con la base de código existente. El objetivo es detectar y eliminar los errores en una fase temprana antes de que el código pase a producción.
Pero la eliminación de errores no es el único beneficio de la revisión del código. Que el código funcione, es decir, que se ejecute sin errores y logre el resultado deseado, es solo un requisito básico. Además, hay una multitud de otros criterios de calidad para escribir código limpio o clean code. La presencia de comentarios, la claridad y coherencia del código, el cumplimiento de las directrices de estilo y que se integre correctamente en los sistemas existentes son aspectos críticos que se tienen en cuenta durante la revisión del código.
Dado que la mayor parte del trabajo de desarrollo se realiza en grupo, los efectos de la revisión del código van más allá de la pura calidad del mismo. Esto se debe a que la revisión del código la realizan otros miembros del equipo de desarrollo y genera efectos sociales: los nuevos miembros del equipo reciben información sobre convenciones y mejores prácticas, y el conocimiento se intercambia y distribuye dentro de la organización. De este modo, la revisión del código contribuye a fomentar una cultura de la calidad.
Aunque la revisión del código la realizan personas, hoy en día estos procesos suelen estar apoyados por las llamadas “code review tools”, herramientas especiales de revisión del código que crean eficiencia y liberan a las personas implicadas de la minuciosa coordinación de procesos, que requiere mucho tiempo. Esto permite que la gente se concentre en la revisión real del código.
Conceptualmente, la revisión humana del código se encuentra entre dos métodos de análisis automatizados, el análisis estático y el dinámico. Estas son las diferencias a simple vista:
Análisis estático | Revisión del código | Análisis dinámico |
Con herramientas automáticas | Por personas | Con herramientas automáticas |
El código se lee | El código se lee, la ejecución se reproduce mentalmente | El código se ejecuta |
Imponer un estilo coherente | Integrarse en el panorama general | Encontrar errores |
Errores tipográficos; vulnerabilidades y antipatrones conocidos | Vulnerabilidades de seguridad complejas; “code-smell” | Errores de integración; casos extremos raros; pruebas de carga |