Inspección de código para la entrega continua de...

38
1 © FATTO Consultoría y Sistemas – www.fattocs.com Presentador: Augusto Mariano Pinheiro 21 de octubre de 2019 Inspección de código para la entrega continua de software de calidad

Transcript of Inspección de código para la entrega continua de...

Page 1: Inspección de código para la entrega continua de ...fattocs.com/files/es/presentaciones/20191021-ANALISE-ESTATICA v… · 2 De preferencia al uso de una conexión de banda ancha.

1© FATTO Consultoría y Sistemas – www.fattocs.com

Presentador: Augusto Mariano Pinheiro

21 de octubre de 2019

Inspección de código para la entrega continua de software de calidad

Page 2: Inspección de código para la entrega continua de ...fattocs.com/files/es/presentaciones/20191021-ANALISE-ESTATICA v… · 2 De preferencia al uso de una conexión de banda ancha.

2

De preferencia al uso de una conexión de banda ancha.

Sí fuera necesario, ajuste el idioma de la sala en la barra de

herramientas superior.

El evento tendrá ~50 min de presentación y 10 min de preguntas al

final

Puedes enviar tus preguntas por el chat durante la presentación

Para quien posee un certificado PMP, el evento Vale 1 PDU.

La grabación y material serán publicados posteriormente en nuestra

página web y redes sociales:

ORIENTACIONES INICIALES

Page 3: Inspección de código para la entrega continua de ...fattocs.com/files/es/presentaciones/20191021-ANALISE-ESTATICA v… · 2 De preferencia al uso de una conexión de banda ancha.

FATTO Consultoría y Sistemas

3

❑ Misión: “Ayudar a nuestros clientes en la planeación y evaluación dedesempeño de procesos de TI para aumentar el éxito de su negocio.”

Page 4: Inspección de código para la entrega continua de ...fattocs.com/files/es/presentaciones/20191021-ANALISE-ESTATICA v… · 2 De preferencia al uso de una conexión de banda ancha.

Agenda

❑ Necesidades del desarrollo moderno de software

▪ Ágil, DevOps e sus practicas

❑ Integración Continua

❑ Herramientas para la Inspección Continua

❑ SonarQube

❑ Metas de calidad de código e indicadores

❑ Conclusiones

4© FATTO Consultoría y Sistemas – www.fattocs.com

Page 5: Inspección de código para la entrega continua de ...fattocs.com/files/es/presentaciones/20191021-ANALISE-ESTATICA v… · 2 De preferencia al uso de una conexión de banda ancha.

#1 Nuestra mayor prioridad es satisfacer al cliente, mediante la entrega temprana y continua de software con valor.

#2 Aceptamos que los requisitos cambien, incluso en etapas tardías del desarrollo.Los procesos agiles aprovechan el cambio, para proporcionar ventaja competitiva al cliente.

#3 Entregamos software funcional frecuentemente, entre dos semanas y dos meses, con preferencia al periodo de tiempo más corto posible.

Principios del Manifiesto Ágil

5

Page 6: Inspección de código para la entrega continua de ...fattocs.com/files/es/presentaciones/20191021-ANALISE-ESTATICA v… · 2 De preferencia al uso de una conexión de banda ancha.

Necesidades del desarrollo

6© FATTO Consultoría y Sistemas – www.fattocs.com

❑ #9: Continua atención a la excelencia técnica y buen diseño, aumenta la agilidad.

❑ ¿ Innovar?

❑ #1: ¡Satisfacer al cliente!

▪ Software en funcionamiento mas que documentación amplia

❑ #2: Aceptar cambios de requerimientos

▪ Responder a cambios mas que seguir un plan

Page 7: Inspección de código para la entrega continua de ...fattocs.com/files/es/presentaciones/20191021-ANALISE-ESTATICA v… · 2 De preferencia al uso de una conexión de banda ancha.

Necesidades del control de operaciones

7© FATTO Consultoría y Sistemas – www.fattocs.com

❑ Mantener el ambiente de producción funcionando y estable

❑ Mantener el ambiente de producción organizado

Page 8: Inspección de código para la entrega continua de ...fattocs.com/files/es/presentaciones/20191021-ANALISE-ESTATICA v… · 2 De preferencia al uso de una conexión de banda ancha.

¡Necesidades de todos!

8© FATTO Consultoría y Sistemas – www.fattocs.com

❑ #1: ¡Atender a los requerimientos del negocio!

❑ #2: Permitir al cliente tener ventajas competitivas a través de la entrega continua de software con valor

❑ #3: Todo esto, sin comprometer la estabilidad del ambiente de producción

Page 9: Inspección de código para la entrega continua de ...fattocs.com/files/es/presentaciones/20191021-ANALISE-ESTATICA v… · 2 De preferencia al uso de una conexión de banda ancha.

❑ Devops es un termino creado para describir un conjunto de prácticas para laintegracción entre los equipos del desarrollo de softwares, operaciones (infraestructura) y de apoyo involucradas (como control de calidad) y la adopción de procesos automatizados para la producción rápida y segura de aplicaciones y servicios.

DevOps como respuesta a esas necesidades

9© FATTO Consultoría y Sistemas – www.fattocs.com

¡Foco de la presentación de hoy!

Page 10: Inspección de código para la entrega continua de ...fattocs.com/files/es/presentaciones/20191021-ANALISE-ESTATICA v… · 2 De preferencia al uso de una conexión de banda ancha.

❑ Integración Continua

❑ Entrega Continua

❑ Micro servicios

❑ Infraestructura como código

❑ Monitoreo y registro en log

❑ Comunicación y colaboración

Prácticas de DevOps

10© FATTO Consultoría y Sistemas – www.fattocs.com

Page 11: Inspección de código para la entrega continua de ...fattocs.com/files/es/presentaciones/20191021-ANALISE-ESTATICA v… · 2 De preferencia al uso de una conexión de banda ancha.

❑ ¿Que es?▪ Es una práctica en que los desarrolladores, con frecuencia, juntan los cambios

hechos en código en un repositorio central, después de eso, compilaciones, inspecciones y pruebas son ejecutadas.

❑ Objetivos1) Investigar y encontrar bugs más rápido2) Mejorar la calidad del software3) Reducir el tiempo que lleva para validar y lanzar nuevas actualizaciones

de software

❑ Requiere, al mismo tiempo▪ Un (o más) componente(s) de automatización▪ Un componente cultural

CI – Continuous Integration

11© FATTO Consultoría y Sistemas – www.fattocs.com

Page 12: Inspección de código para la entrega continua de ...fattocs.com/files/es/presentaciones/20191021-ANALISE-ESTATICA v… · 2 De preferencia al uso de una conexión de banda ancha.

Herramientas para la Inspección

12© FATTO Consultoría y Sistemas – www.fattocs.com

Page 13: Inspección de código para la entrega continua de ...fattocs.com/files/es/presentaciones/20191021-ANALISE-ESTATICA v… · 2 De preferencia al uso de una conexión de banda ancha.

Inspección continua con el SonarQube

13© FATTO Consultoría y Sistemas – www.fattocs.com

❑ Que es:

▪ Herramienta de revisión/inspección automática de código-fuente creada para detectar bugs, vulnerabilidades y malas prácticas de programación.

▪ Permite la definición de los parámetros de inspección, análisis de los resultados, consultas y acciones de corrección y tratamiento.

❑ Provee informaciones para todos los involucrados a través de sus dashboards:

▪ Equipo de desarrollo

▪ Coordinador del proyecto

▪ Área de calidad

▪ Arquitecto

Page 14: Inspección de código para la entrega continua de ...fattocs.com/files/es/presentaciones/20191021-ANALISE-ESTATICA v… · 2 De preferencia al uso de una conexión de banda ancha.

SonarQube

14© FATTO Consultoría y Sistemas – www.fattocs.com

❑ Características que son evaluadas durante las inspecciones:

▪ Confiabilidad• Violaciones (clasificas por severidad)

▪ Seguridad• Vulnerabilidades

▪ Manutención• Problemas potenciales

▪ Cobertura• Pruebas unitarias

▪ Duplicación• De líneas, bloques o archivos

▪ Tamaño• Densidad de comentarios (anotaciones)

▪ Complejidad• Ciclomática y Cognitiva

❑ Cálculo de lo Débito Técnico

▪ Estimativa de esfuerzo (HH) para corregir los problemas encontrados

Page 15: Inspección de código para la entrega continua de ...fattocs.com/files/es/presentaciones/20191021-ANALISE-ESTATICA v… · 2 De preferencia al uso de una conexión de banda ancha.

SonarQube – Relación de todos los proyectos

15© FATTO Consultoría y Sistemas – www.fattocs.com

Page 16: Inspección de código para la entrega continua de ...fattocs.com/files/es/presentaciones/20191021-ANALISE-ESTATICA v… · 2 De preferencia al uso de una conexión de banda ancha.

SonarQube – Visión general proyecto “AppWeb01” (1/2)

16© FATTO Consultoría y Sistemas – www.fattocs.com

Page 17: Inspección de código para la entrega continua de ...fattocs.com/files/es/presentaciones/20191021-ANALISE-ESTATICA v… · 2 De preferencia al uso de una conexión de banda ancha.

SonarQube – Visión general proyecto “AppWeb01” (2/2)

17© FATTO Consultoría y Sistemas – www.fattocs.com

Page 18: Inspección de código para la entrega continua de ...fattocs.com/files/es/presentaciones/20191021-ANALISE-ESTATICA v… · 2 De preferencia al uso de una conexión de banda ancha.

SonarQube – Violaciones (1)

18© FATTO Consultoría y Sistemas – www.fattocs.com

Page 19: Inspección de código para la entrega continua de ...fattocs.com/files/es/presentaciones/20191021-ANALISE-ESTATICA v… · 2 De preferencia al uso de una conexión de banda ancha.

SonarQube – Violaciones (2)

19© FATTO Consultoría y Sistemas – www.fattocs.com

Page 20: Inspección de código para la entrega continua de ...fattocs.com/files/es/presentaciones/20191021-ANALISE-ESTATICA v… · 2 De preferencia al uso de una conexión de banda ancha.

SonarQube - Seguridad

20© FATTO Consultoría y Sistemas – www.fattocs.com

Page 21: Inspección de código para la entrega continua de ...fattocs.com/files/es/presentaciones/20191021-ANALISE-ESTATICA v… · 2 De preferencia al uso de una conexión de banda ancha.

SonarQube – Manutención (1)

21© FATTO Consultoría y Sistemas – www.fattocs.com

Page 22: Inspección de código para la entrega continua de ...fattocs.com/files/es/presentaciones/20191021-ANALISE-ESTATICA v… · 2 De preferencia al uso de una conexión de banda ancha.

SonarQube – Manutención (2)

22© FATTO Consultoría y Sistemas – www.fattocs.com

Page 23: Inspección de código para la entrega continua de ...fattocs.com/files/es/presentaciones/20191021-ANALISE-ESTATICA v… · 2 De preferencia al uso de una conexión de banda ancha.

SonarQube – Manutención (3)

23© FATTO Consultoría y Sistemas – www.fattocs.com

Page 24: Inspección de código para la entrega continua de ...fattocs.com/files/es/presentaciones/20191021-ANALISE-ESTATICA v… · 2 De preferencia al uso de una conexión de banda ancha.

SonarQube – Duplicaciones (1)

24© FATTO Consultoría y Sistemas – www.fattocs.com

Page 25: Inspección de código para la entrega continua de ...fattocs.com/files/es/presentaciones/20191021-ANALISE-ESTATICA v… · 2 De preferencia al uso de una conexión de banda ancha.

SonarQube – Duplicaciones (2)

25© FATTO Consultoría y Sistemas – www.fattocs.com

Page 26: Inspección de código para la entrega continua de ...fattocs.com/files/es/presentaciones/20191021-ANALISE-ESTATICA v… · 2 De preferencia al uso de una conexión de banda ancha.

SonarQube – Duplicaciones (3)

26© FATTO Consultoría y Sistemas – www.fattocs.com

Page 27: Inspección de código para la entrega continua de ...fattocs.com/files/es/presentaciones/20191021-ANALISE-ESTATICA v… · 2 De preferencia al uso de una conexión de banda ancha.

SonarQube – Cobertura de Código

27© FATTO Consultoría y Sistemas – www.fattocs.com

Page 28: Inspección de código para la entrega continua de ...fattocs.com/files/es/presentaciones/20191021-ANALISE-ESTATICA v… · 2 De preferencia al uso de una conexión de banda ancha.

SonarQube – Documentación y Comentarios

28© FATTO Consultoría y Sistemas – www.fattocs.com

Page 29: Inspección de código para la entrega continua de ...fattocs.com/files/es/presentaciones/20191021-ANALISE-ESTATICA v… · 2 De preferencia al uso de una conexión de banda ancha.

SonarQube – Complejidad Ciclomática y Cognitiva

29© FATTO Consultoría y Sistemas – www.fattocs.com

Page 30: Inspección de código para la entrega continua de ...fattocs.com/files/es/presentaciones/20191021-ANALISE-ESTATICA v… · 2 De preferencia al uso de una conexión de banda ancha.

Metas de Calidad de Código como parte de un Acuerdo de Niveles de Servicio

30© FATTO Consultoría y Sistemas – www.fattocs.com

Métrica Objetivo Severidad

Cobertura de código en la camada del negocio >= 50% Media

% de las pruebas automatizadas ejecutadas con éxito = 100% Media

Densidad de comentarios en la camada del negocio >= 30% Baja

Complejidad por método <= 10% Media

Densidad de duplicación <= 5% Baja

Bloques duplicados en la misma clase = 0 Media

Líneas de código-fuente comentadas = 0 Media

Violaciones bloqueadoras = 0 Alta

Violaciones críticas = 0 Alta

Violaciones mayores <= 5% Media

Violaciones menores <= 5% Baja

Débito técnico <= 10% No se aplica

Page 31: Inspección de código para la entrega continua de ...fattocs.com/files/es/presentaciones/20191021-ANALISE-ESTATICA v… · 2 De preferencia al uso de una conexión de banda ancha.

Metas de Calidad de Código como parte de un Acuerdo de Niveles de Servicio

31© FATTO Consultoría y Sistemas – www.fattocs.com

Grupo Métrica Unidad Meta

Proyecto

Complejidad / Archivo Media total <= 10

Complejidad / Clase Media total <= 10

Complejidad / Función Media total <=3

Duplicaciones % <=4%

Vulnerabilidades (confirmadas o potenciales) Unidades =0

Tasa del débito técnico % <= 2,5%

SQALE RATING (Maintainability Rating) Nota A

Violaciones de código (posibles bugs, estilo de la codificación, malas practicas de codificación):

Violaciones Críticas Unidades =0

Violaciones Bloqueadoras Unidades =0

Indicadores relacionados a las pruebas

Cobertura de Pruebas Unitarias (en la camada del negocio) % >=70%

Pruebas Unitarias ejecutadas con éxito % >=100%

Pruebas Unitarios no ejecutados Unidades =0

Page 32: Inspección de código para la entrega continua de ...fattocs.com/files/es/presentaciones/20191021-ANALISE-ESTATICA v… · 2 De preferencia al uso de una conexión de banda ancha.

❑ Ventajas

▪ Muchos defectos diferentes pueden ser descubiertos en una única inspección

▪ Versiones incompletas del sistema pueden ser inspeccionadas

❑ No es adecuada

▪ Para verificar algunos requerimientos no funcionales, como desempeño, por ejemplo

▪ Para demonstrar que el software es útil

Consideraciones finales: Inspecciones

32© FATTO Consultoría y Sistemas – www.fattocs.com

Page 33: Inspección de código para la entrega continua de ...fattocs.com/files/es/presentaciones/20191021-ANALISE-ESTATICA v… · 2 De preferencia al uso de una conexión de banda ancha.

❑ Ventajas

▪ Permite encontrar inconsistencias entre un programa e su especificación, esto es, revelar defectos

▪ Permite demonstrar si el software es (y hace) lo que el cliente desea

❑ Limitaciones

▪ Según Dijkstra, “Pruebas pueden solamente revelar la presencia de defectos, no su ausencia”

▪ Alto costo da realización de las pruebas funcionales

▪ Solo pueden ser realizados después de la conclusión del desarrollo del componente de software

Consideraciones finales: Pruebas

33© FATTO Consultoría y Sistemas – www.fattocs.com

Page 34: Inspección de código para la entrega continua de ...fattocs.com/files/es/presentaciones/20191021-ANALISE-ESTATICA v… · 2 De preferencia al uso de una conexión de banda ancha.

Conclusión

34© FATTO Consultoría y Sistemas – www.fattocs.com

❑ ¡Inspecciones y pruebas no son prácticas excluyentes, pero sí, complementarias!

▪ Cada una tiene ventajas y desventajas una sobre la otra

▪ Deben ser utilizadas en conjunto en el proceso de Verificación y Validación

❑ Recordatorio: Calidad no es un atributo que se inserta en el producto al final del desarrollo, pero, si debe tener atención en todas las actividades del ciclo de vida del software.

Page 35: Inspección de código para la entrega continua de ...fattocs.com/files/es/presentaciones/20191021-ANALISE-ESTATICA v… · 2 De preferencia al uso de una conexión de banda ancha.

¿Como FATTO te puede ayudar?

35© FATTO Consultoría y Sistemas – www.fattocs.com

❑ Actividades

▪ Instalación, configuración y preparación de las herramientas

▪ Automatización del proceso de inspección

▪ Mentoría de los involucrados en el proceso

▪ Creación del línea de base de los errores

▪ Implantación asistida

▪ Interpretación y evaluación de los resultados de la inspección

▪ Ajustes en las reglas y perfiles de inspección

❑ Contactos

[email protected]

Page 36: Inspección de código para la entrega continua de ...fattocs.com/files/es/presentaciones/20191021-ANALISE-ESTATICA v… · 2 De preferencia al uso de una conexión de banda ancha.

PRÓXIMOS EVENTOS

❑WEBINAR:

▪ Medición Funcional con el Método COSMIC

▪ Fecha: 18/11/2019

1:00 PM (Hora de Bogotá y Lima)

❑ Subscripciones gratuitas em: https://bit.ly/2JaeBGs

36© FATTO Consultoría y Sistemas – www.fattocs.com

Page 37: Inspección de código para la entrega continua de ...fattocs.com/files/es/presentaciones/20191021-ANALISE-ESTATICA v… · 2 De preferencia al uso de una conexión de banda ancha.

37

EVALUACIÓN

© FATTO Consultoría y Sistemas – www.fattocs.com

Page 38: Inspección de código para la entrega continua de ...fattocs.com/files/es/presentaciones/20191021-ANALISE-ESTATICA v… · 2 De preferencia al uso de una conexión de banda ancha.

Presentador

AUGUSTO MARIANO PINHEIRO

• E-mail: [email protected]

• WhatsApp: +55 27 99946-2525

38© FATTO Consultoria y Sistemas – www.fattocs.com