La calidad del software es un elemento fundamental en la industria del desarrollo. Disponer de herramientas que nos ayuden a evaluar nuestro código se convierte en una tarea imprescindible para garantizar el desarrollo de una manera correcta y la aplicación de buenas prácticas. En este punto hoy conocemos qué es SonarQube, una plataforma muy popular que permite a todos los desarrolladores escribir código más limpio y seguro.
Lo que vas a ver en este post:
¿Qué es SonarQube?
SonarQube es una plataforma de código abierto para la inspección continua de la calidad del código a través de diferentes herramientas de análisis estático de código fuente. Proporciona métricas que ayudan a mejorar la calidad del código de un programa permitiendo a los equipos de desarrollo hacer seguimiento y detectar errores y vulnerabilidades de seguridad para mantener el código limpio.
Es una herramienta esencial para la fase de testing y auditoría de código dentro del ciclo de desarrollo de una aplicación y se considera perfecta para guiar a los equipos de desarrollo durante las revisiones de código. Soporta una etapa de inspección continua.
SonarQube está escrito en Java, pero puede analizar y administrar código 29 lenguajes de programación importantes, incluidos c / c ++, PL / SQL, Cobol, etc., a través de conjuntos de reglas incorporados que pueden ser ampliados con varios complementos.
¿Por qué usar SonarQube?
Esta herramienta al centrarse en el nuevo código ayuda a la detección de muchos problemas, facilitando su solución de manera rápida en cuanto aparece por lo que permite mantener el código limpio, sencillo y fácil de leer.
Los desarrolladores se apoyan en esta plataforma para lograr la integración e implementación continuas del código, que no solo funciona para detectar los problemas, sino también, para rastrear, controlar y verificar la calidad continua del código.
Características
- Admite los lenguajes de programación más populares como Java, C / C ++, Objective-C, C #, PHP, Flex, Groovy, JavaScript, Python, PL / SQL, COBOL, etc.
- Realiza revisiones automáticas con análisis de código estático detectando problemas que afectan la calidad del código.
- Facilita informes ofreciendo información objetiva de la calidad actual de los proyectos utilizando métricas y gráficos de prueba de calidad avanzados. Esto incluye datos sobre código duplicado, estándares de codificación, pruebas unitarias, cobertura de código, complejidad del código, errores potenciales, comentarios, diseño y arquitectura.
- Se integra con toda la cadena de herramientas de DevOps ayudando al flujo de trabajo productivo, incluidos los sistemas de compilación, los motores de CI, utilizando webhooks y su RestAPI integral.
- Es ampliable con el uso de complementos.
Beneficios de SonarQube
- Alerta de manera automática a los desarrolladores de los errores de código para corregirlos previamente a la implementación en producción.
- No sólo muestra los errores, también las reglas de codificación, la cobertura de las pruebas, las duplicaciones, la complejidad y la arquitectura, plasmando todos estos datos en paneles de control detallados.
- Ayuda al equipo a mejorar en sus habilidades como programadores al facilitar un seguimiento de los problemas de calidad.
- Permite la creación de paneles y filtros personalizables para centrarse en áreas clave y entregar productos de calidad a tiempo.
- Favorece la productividad al reducir la complejidad del código acortando tiempos y costes adicionales al evitar cambiar el código constantemente.
Cómo comenzar a usar SonarQube
El único requisito previo para ejecutar SonarQube es tener Java (Oracle JRE 11 u OpenJDK 11) instalado en el ordenador.
A continuación, revisaremos los pasos para instalar una instancia local de SonarQube y analizar un proyecto. La instalación de una instancia local facilita su funcionamiento de forma muy rápida.
Instalación de una instancia local de SonarQube
Para realizar la instalación de SonarQube nos encontramos con dos posibilidades. Por un lado, puedes usar SonarQube a través de una instalación tradicional con el archivo zip o a través de hacer girar un contenedor Docker.
En este caso, vamos a ver en concreto la instalación desde el archivo comprimido.
- Descarga el archivo zip SonarQube Community Edition.
- Como non-root user , descomprimirlo, en C: \ sonarqube o / opt / sonarqube .
- Como non-root user, inicia SonarQube Server:
# On Windows, execute:
C:\sonarqube\bin\windows-x86-64\StartSonar.bat
# On other operating systems, as a non-root user execute:
/opt/sonarqube/bin/[OS]/sonar.sh console
– Busca la imagen de Docker de Community Edition en Docker Hub .
– Inicia el servidor ejecutando:
$ docker run -d --name sonarqube -e SONAR_ES_BOOTSTRAP_CHECKS_DISABLE=true -p 9000:9000 sonarqube:latest
– Una vez que tu instancia esté en funcionamiento, inicia sesión en http: // localhost: 9000 con las credenciales de administrador del sistema:
- inicio de sesión: admin
- contraseña: admin
Cómo analizar un proyecto
Una vez iniciada la sesión en la instancia local de SonarQube, podemos comenzar a analizar un proyecto:
- Haz clic en el botón Crear nuevo proyecto.
- Asigna a tu proyecto una clave de proyecto y un nombre para mostrar y haz clic en el botón Configurar.
- En Proporcionar un token, selecciona Generar un token. Asigna un nombre a tu token, haz clic en el botón Generar y a continuación, haz clic en Continuar.
- Selecciona el idioma principal de tu proyecto en Ejecutar análisis en tu proyecto y sigue las instrucciones para analizar el proyecto. En este momento podrás descargar y ejecutar un escáner en tu código (si está utilizando Maven o Gradle, el escáner se descarga automáticamente).
Una vez realizado el escáner del código, podrás ver el primer análisis en SonarQube:
Métricas principales de SonarQube
SonarQube divide las métricas en las siguientes categorías:
- Complejidad
Refleja la Complejidad Ciclomática calculada en base al número de caminos a través del código normalmente observado a nivel de métodos o funciones individuales.
- Duplicados
Nos indica el número de bloques de líneas duplicados. Ayuda a evitar resultados distintos en operaciones iguales.
- Evidencias
Son los fragmentos nuevos de código de un proyecto que detecta que incumplen con alguna de las reglas establecidas.
- Mantenibilidad
Se refiere al recuento total de problemas de Code Smell.
- Umbrales de calidad
Define los requisitos del proyecto antes de ser lanzado a producción, como, por ejemplo, que no deben haber evidencias bloqueantes o la cobertura de código sobre el código nuevo debe ser mayor que el 80%.
- Tamaño
Permiten hacerse una idea del volumen del proyecto en términos generales.
- Pruebas
Son una forma de comprobar el correcto funcionamiento de una unidad de código y de su integración.
Conclusión
La calidad del software tiene cada vez más relevancia en el proceso de desarrollo. SonarQube se convierte así en una plataforma integral para el análisis de código estático y se constituye como una técnica fundamental para la mejora de la calidad del código, reducir la deuda técnica y las vulnerabilidades. La implementación de esta herramienta completa de automatización es, gracias a su sencillez, una ayuda clave para desarrollar un software de calidad.
¿Utilizas SonarQube en tus proyectos de desarrollo de software? ¿Qué herramientas utilizas para evaluar tu código?
SonarQube se integra con nuestra plataforma de VSM para hacer seguimiento y detectar errores y vulnerabilidades de seguridad. ¡Pide una demo y descubre cómo la gestión del flujo de valor puede ayudarte en tus proyectos!