• Email: contact@inlogiq.com
  • Teléfono:: +34 655 66 83 02

SonarQube es una potente herramienta con la que podemos conocer el estado de nuestros proyectos de desarrollo de software en términos de calidad. Sin embargo, aunque no es la única utilidad en el mercado que ofrece análisis de este tipo, sí que permite importar los resultados de éstas para que se incorporen a los informes de nuestros proyectos, y así no renunciar a usar reglas que ya tengamos definidas en estas aplicaciones de otros desarrolladores.
SonarQube permite la importación de tareas que se hayan generado en analizadores externos. Es importante señalar que, en este caso, la información no vendrá generada por SonarQube, sino por estas herramientas externas, por lo que dispone tanto de parámetros específicos orientados a cada caso, como de un formato genérico para poder acceder a estos datos. Especificando la propiedad adecuada en el fichero de configuración de SonarQube e indicando la ruta de los reportes, podemos llevar a cabo estas importaciones a nuestra instancia.

Algunos de los lenguajes y herramientas para los que SonarQube dispone de propiedades que facilitan la importación son los siguientes:

  • Apex (PMD Apex)
  • Cloudformation (AWS Cloudformation Linter)
  • C/C++/Objective-C (Valgrind Memcheck)
  • Docker (Hadolint)
  • Go (GoVet, GoLint, GoMetaLinter, golanci-lint, gosec)
  • Java (SpotBugs, PMD, Check style)
  • JavaScript (ESLint)
  • Kotlin (AndroidLint, Detekt, Ktlint)
  • PHP (Psalm, PHPStan)
  • Python (Pylint, Bandit, FlakeB, Mypy, Ruff, Rubocop, Scalastyle)
  • Terraform (TFLint)
  • TypeScript (TSLint)
  • .NET (analizadores Roslyn de Microsoft)

SonarQube también permite importar los informes SARIF (Static Analysis Results Interchange Format). El estándar SARIF se usa para regular cómo comparten sus resultados las herramientas de análisis estático.

¿Qué hacer con las tareas que generan analizadores externos? Lo mismo que con las que genera SonarQube, ya que comparten el mismo ciclo de vida. Las tareas importadas se resuelven igual que las generadas por análisis, pudiendo asignar a técnicos, dejar éstos los comentarios necesarios y resolverlas con una de las posibles resoluciones que ofrece SonarQube. Conviene tener en cuenta que esta resolución no es bidireccional, es decir, la tarea sólo queda resuelta en la instancia de SonarQube, no en la herramienta externa.

En la versión 10.3, estas tareas externas se pueden categorizar con la taxonomía de Código Limpio como una de las nuevas funcionalidades que incorpora la aplicación. Esto supone que, además de conocer la severidad de los defectos que identifique el escáner en un análisis, ahora podemos clasificarlos también en base a 4 criterios:

  • Consistente: El código ha de mantener un estilo común a lo largo de todo el listado, aun cuando varios desarrolladores trabajen el él. De este modo se favorece la legibilidad y entendimiento del mismo.
  • Intencional: El código debe ser lo bastante claro como para que al leerlo se entienda perfectamente su propósito. Por tanto, debe explicarse por sí solo y tener una única interpretación, sin dar pie a la ambigüedad.
  • Adaptable: El código ha de procurar minimizar los duplicados con respecto a otros bloques de código. El exceso de duplicidad aumenta la complejidad, lo que no solo no favorece su mantenimiento, sino que lo empeora en el largo plazo. Además, debe ser modular y facilitar su encapsulación para poder importarse desde otras áreas del desarrollo.
  • Responsable: El código ha de estar plasmado con los principios éticos y obligaciones legales que ha de mantener el desarrollador en mente. Debe asegurar el debido tratamiento y protección de los datos sensibles y evitar vulnerabilidades y riesgos.

Con estas 4 categorías, antes implementadas en la versión anterior y ahora llevadas a la versión 10.3, no solo podemos mantener bajo control las tareas y resultados de herramientas externas, sino también verificar que el proyecto se ajusta a los principios de Código Limpio. SonarQube se ofrece así como la herramienta principal donde reunir todas las conclusiones sobre la calidad de nuestro software.

En Inlogiq ofrecemos proyectos de análisis de código estático y compilado con SonarQube, entre otros servicios de calidad de software e implantación de las herramientas Atlassian, todo con el objetivo de ayudarte a mejorar tus proyectos. Consúltanos cualquier cuestión en nuestras vías de contacto.