Sunteți pe pagina 1din 17

ESCUELA POLITÉCNICA NACIONAL

FACULTAD DE INGENIERÍA DE SISTEMAS


INGENIERÍA DE SISTEMAS INFORMÁTICOS Y DE COMPUTACIÓN

Laboratorio de: Calidad de Software

Práctica No.: 1

Tema: SonarQube

Nombre: Brito Danni Fecha: 21/01/2018

1. Objetivos:

1.1. Objetivo General


• Aprender el uso de SonarQube para la evaluación de la calidad
del código fuente de un sistema software.
1.2. Objetivos Específicos
• Configurar el ambiente para pruebas con SonarQube
• Evaluar un sistema software con SonarQube - Runner
2. Marco teórico:
SonarQube es una plataforma de código abierto para el análisis de la calidad
de código, el cual utiliza diversas herramientas de análisis estático de código
fuente como Checkstyle, PMD o FindBugs para obtener métricas que pueden
ayudar a mejorar la calidad del código de un programa. También pertenece al
conjunto de herramientas de análisis de código estático, junto con Understand,
semmle y otras.

Es una herramienta esencial para la fase de testing y auditoría de código


dentro del ciclo de desarrollo de la aplicación. Existen muchos problemas que
se pueden encontrar en un código. Las reglas difieren y pueden clasificarse en
5 grupos según su severidad: bloqueador, crítico, grave, menor e informativo.
[1]

3. Desarrollo de la práctica:
3.1. CONFIGURACIÓN DEL AMBIENTE DE PRUEBAS
Nombre y Versión Características

Página 1 de 17
1 Windows 7 Incluye todas las funciones de la versión
Professional Home Premium más «Protección de datos»
con «Copia de seguridad avanzada», red
administrada con soporte para dominios,
impresión en red localizada mediante
Location Aware Printing y cifrado de
archivos.
2 SonarQube Mediante el análisis del código se obtienen
informes sobre:
• Código duplicado.
• Estándares de codificación.
• Tests.
• Cobertura de pruebas.
• Complejidad ciclomática.
• Bugs potenciales.
• Comentarios.
• Diseño y arquitectura.

3.2. ESQUEMAS DE FUNCIONAMIENTO DE LAS HERRAMIENTAS

3.3. PROCEDIMIENTO CON CAPTURAS DE PANTALLAS


3.3.1. Requisitos Previos
El único requisito previo para ejecutar SonarQube es tener Java
(Oracle JRE 8 o OpenJDK 8 o posterior) instalado en su máquina.
3.3.2. Requisitos de Hardware
• El servidor SonarQube requiere al menos 2 GB de RAM para
ejecutarse de manera eficiente y 1 GB de RAM libre para el
sistema operativo.
• La cantidad de espacio en disco que necesite dependerá de la
cantidad de código que analice con SonarQube.
• Procesador Intel Core I3 o posterior

3.3.3. Instalación
Descargar el archivo de SonarQube desde el link:
https://www.sonarqube.org/downloads/.

Página 2 de 17
ESCUELA POLITÉCNICA NACIONAL
FACULTAD DE INGENIERÍA DE SISTEMAS
INGENIERÍA DE SISTEMAS INFORMÁTICOS Y DE COMPUTACIÓN

Una vez finalizada la descarga, dirigirse hacia la ubicación del archivo


descargado y descomprimir el mismo. Es recomendable ubicar el archivo en la
partición C del disco. Copiar la ruta en donde se encuentra el archivo
StartSonar.bat.

A continuación, abrir una ventana de Símbolo de Sistema y colocar el comando


cd junto a la dirección copiada del directorio.

Página 3 de 17
Finalmente, ejecutar el servidor de SonarQube con el comando StartSonar.bat.

Página 4 de 17
ESCUELA POLITÉCNICA NACIONAL
FACULTAD DE INGENIERÍA DE SISTEMAS
INGENIERÍA DE SISTEMAS INFORMÁTICOS Y DE COMPUTACIÓN

Para comprobar que se ha levantado el servidor correctamente, abrir el


navegador y digitar localhost:9000.

Página 5 de 17
Una vez listo el servidor de SonarQube, es necesario instalar un cliente. Para
ello se utilizará Sonar-Runner que es uno de los clientes para análisis de
código. Se accede al sitio web
http://repo1.maven.org/maven2/org/codehaus/sonar/runner/sonar-runner-
dist/2.3/ y se descarga el archivo sonar-runner-dist-2.3.zip.

Ingresar a la ubicación sonar-runner-2.3.conf en la cual se encuentra el


archivo sonar-runner.properties.

Página 6 de 17
ESCUELA POLITÉCNICA NACIONAL
FACULTAD DE INGENIERÍA DE SISTEMAS
INGENIERÍA DE SISTEMAS INFORMÁTICOS Y DE COMPUTACIÓN

3.3.4. Desarrollo

Primero se deben tener los archivos necesarios para el desarrollo de la práctica


los cuales están descritos en la parte de instalación. Una vez que tengamos los
archivos, nos dirigimos al directorio que contiene los mismos desde el terminal
(cmd).

Una vez dentro de la carpeta que contiene el archivo sonarqube-6.4


ejecutamos el siguiente comando para levantar el servidor: StartSonar.bat

Página 7 de 17
Luego desde un navegador ingresamos a la dirección localhost:9000 para evidenciar
que el servidor de SonarQube está ejecutándose sin ningún problema.

Página 8 de 17
ESCUELA POLITÉCNICA NACIONAL
FACULTAD DE INGENIERÍA DE SISTEMAS
INGENIERÍA DE SISTEMAS INFORMÁTICOS Y DE COMPUTACIÓN

Luego abrimos otro cmd y nos dirigimos al directorio que contiene el proyecto a ser
evaluado.

En esta dirección escribimos la ubicación del archivo sonar-runner-2.3 y ejecutamos el


archivo sonar-runner.bat

Página 9 de 17
El programa evaluará nuestro proyecto y mostrará un mensaje de éxito (SUCCESS) si
no hubo ningún inconveniente en la ejecución.

Luego en el navegador damos clic en la opción login e ingresamos como administrador


utilizando las siguientes credenciales:

username: admin
password: admin

Luego de ingresar seleccionamos ProyectoMatricula.

Página 10 de 17
ESCUELA POLITÉCNICA NACIONAL
FACULTAD DE INGENIERÍA DE SISTEMAS
INGENIERÍA DE SISTEMAS INFORMÁTICOS Y DE COMPUTACIÓN

Obtenemos los siguientes resultados que evaluó SonarQube de ProyectoMatrícula:

Si queremos evidenciar algún problema como “Bugs” o “Code Smells” podemos utilizar
el proyecto de ejemplo que viene integrado con SonarQube.

Página 11 de 17
Ahora seleccionamos la pestaña “Issues” de este proyecto para apreciar las fallas que
tiene, más detalladamente.

Como podemos apreciar el sistema tiene 3 bugs, si hacemos clic en esa opción
SonarQube nos despliega la siguiente información.

Página 12 de 17
ESCUELA POLITÉCNICA NACIONAL
FACULTAD DE INGENIERÍA DE SISTEMAS
INGENIERÍA DE SISTEMAS INFORMÁTICOS Y DE COMPUTACIÓN

Para evaluar otro proyecto debemos realizar los pasos anteriores que hicimos con
ProyectoMatricula. Ahora evaluamos el proyecto “CuadradoMagico”.

Y obtenemos los siguientes resultados según lo que evaluó SonarQube del proyecto
CuadradoMagico.

Página 13 de 17
Para una vista más detallada de los problemas encontrados damos clic en la pestaña
“Issues”.

Si escogemos alguno de estos problemas encontrados SonarQube nos desplegará la


siguiente información.

Página 14 de 17
ESCUELA POLITÉCNICA NACIONAL
FACULTAD DE INGENIERÍA DE SISTEMAS
INGENIERÍA DE SISTEMAS INFORMÁTICOS Y DE COMPUTACIÓN

Al hacer clic en la pestaña “Measures” obtenemos información detallada de como


podemos arreglar estos problemas.

Al hacer clic en el icono de los 3 puntos suspensivos SonarQube despliega una


pantalla donde indica el código que debe ser implementado para solucionar el
problema.

Página 15 de 17
Finalmente, si hacemos clic en la pestaña “Code” obtenemos un resumen de todas las
vulnerabilidades, “Bugs” y otros problemas que presentan todos los proyectos que han
sido evaluados por la herramienta.

3.4. CODIGOS FUENTE Y ARCHIVOS


Ver Anexo 1
4. Análisis de resultados:
• JUnit comprueba cada módulo de nuestro sistema de manera
independiente.
• Mediante las etiquetas de JUnit podemos controlar lo que sucede antes,
después y durante la ejecución de una prueba.
• JUnit es muy útil al momento de agrupar clases de prueba en suites para
ejecutarlas simultáneamente.

Página 16 de 17
ESCUELA POLITÉCNICA NACIONAL
FACULTAD DE INGENIERÍA DE SISTEMAS
INGENIERÍA DE SISTEMAS INFORMÁTICOS Y DE COMPUTACIÓN

5. Conclusiones y recomendaciones:
• SonarQube permite analizar y medir la calidad técnica de un sistema
software según varias métricas como “Bugs”,Vulnerabilidades y “Code
Smells”.
• SonarQube analiza y audita software escrito en varios lenguajes como:
C / C ++, JavaScript, C#, Java,COBOL entre otros.
• Se recomienda probar SonnarQube en entornos de diferente lenguaje de
programación para apreciar su exactitud.
• Se recomienda a los desarrolladores de SonarQube habilitar una opción
para elegir el lenguaje de programación y que así la evaluación sea más
especializada.
6. Bibliografía:
[1] J. Websec, «¿Qué es SonarQube?,» 04 May. 2017. [En línea]. Available:
http://blog.quantika14.com/blog/2017/05/04/que-es-sonarqube/.

[2] Adrian Vega, «adrianalonso.es,» 22 10 2017. [En línea]. Available:


https://adrianalonso.es/buenas-practicas/analisis-estatico-con-sonarqube/.

7. Anexos

Anexo 1

Todo el código fuente y documentación de SonarQube y sus ejemplos se encuentran


disponibles en:

https://github.com/SonarSource/sonarqube

Página 17 de 17

S-ar putea să vă placă și