antonio ramón molina milla - digitalilusion...aplicación de software libre para la evaluación de...
TRANSCRIPT
![Page 1: Antonio Ramón Molina Milla - Digitalilusion...Aplicación de software libre para la evaluación de código estático basado en Checkstyle, PMD o FindBugs. Actualmente existen unas](https://reader034.vdocuments.pub/reader034/viewer/2022042312/5edabe9f434f4178104f8eeb/html5/thumbnails/1.jpg)
![Page 2: Antonio Ramón Molina Milla - Digitalilusion...Aplicación de software libre para la evaluación de código estático basado en Checkstyle, PMD o FindBugs. Actualmente existen unas](https://reader034.vdocuments.pub/reader034/viewer/2022042312/5edabe9f434f4178104f8eeb/html5/thumbnails/2.jpg)
Antonio Ramón Molina MillaArquitecto
Integración de Sistemas [Axesor]
![Page 3: Antonio Ramón Molina Milla - Digitalilusion...Aplicación de software libre para la evaluación de código estático basado en Checkstyle, PMD o FindBugs. Actualmente existen unas](https://reader034.vdocuments.pub/reader034/viewer/2022042312/5edabe9f434f4178104f8eeb/html5/thumbnails/3.jpg)
Integración Continua con Jenkins
![Page 4: Antonio Ramón Molina Milla - Digitalilusion...Aplicación de software libre para la evaluación de código estático basado en Checkstyle, PMD o FindBugs. Actualmente existen unas](https://reader034.vdocuments.pub/reader034/viewer/2022042312/5edabe9f434f4178104f8eeb/html5/thumbnails/4.jpg)
¿Integración Contínua?
[Buena] práctica de desarrollo software donde los miembros de un proyecto integran su trabajo frecuentemente y de forma automática favoreciendo la detección de fallos en las fases más tempranas de desarrollo.
Cada integración se verifica con un build SNAPSHOT automático para detectar errores de integración tan pronto como sea posible.
Si la verificación es correcta el SNAPSHOT puede convertirse en RELEASE para avanzar por los distintos entornos de la empresa.
![Page 5: Antonio Ramón Molina Milla - Digitalilusion...Aplicación de software libre para la evaluación de código estático basado en Checkstyle, PMD o FindBugs. Actualmente existen unas](https://reader034.vdocuments.pub/reader034/viewer/2022042312/5edabe9f434f4178104f8eeb/html5/thumbnails/5.jpg)
¿Integración Contínua?
![Page 6: Antonio Ramón Molina Milla - Digitalilusion...Aplicación de software libre para la evaluación de código estático basado en Checkstyle, PMD o FindBugs. Actualmente existen unas](https://reader034.vdocuments.pub/reader034/viewer/2022042312/5edabe9f434f4178104f8eeb/html5/thumbnails/6.jpg)
¿Jenkins?
Es el software encargado de orquestar el proceso de Integración contínua.
Está basado en Java y es ampliable mediante plugins:
- SonarQube- Nexus- Maven- Git
Sus funciones principales son:- Compilar el proyecto- Aplicar el control de calidad basándose en los umbrales de
Release o Snapshot.- Publicar en Nexus el compilado (.jar, .war, etc).- Realizar los tags necesarios en GIT.
![Page 7: Antonio Ramón Molina Milla - Digitalilusion...Aplicación de software libre para la evaluación de código estático basado en Checkstyle, PMD o FindBugs. Actualmente existen unas](https://reader034.vdocuments.pub/reader034/viewer/2022042312/5edabe9f434f4178104f8eeb/html5/thumbnails/7.jpg)
¿Jenkins?
![Page 8: Antonio Ramón Molina Milla - Digitalilusion...Aplicación de software libre para la evaluación de código estático basado en Checkstyle, PMD o FindBugs. Actualmente existen unas](https://reader034.vdocuments.pub/reader034/viewer/2022042312/5edabe9f434f4178104f8eeb/html5/thumbnails/8.jpg)
¿Jenkins?
![Page 9: Antonio Ramón Molina Milla - Digitalilusion...Aplicación de software libre para la evaluación de código estático basado en Checkstyle, PMD o FindBugs. Actualmente existen unas](https://reader034.vdocuments.pub/reader034/viewer/2022042312/5edabe9f434f4178104f8eeb/html5/thumbnails/9.jpg)
SNAPSHOT y RELEASE
SNAPSHOT: Dentro de Maven una instantánea es una versión de un artefacto que está en desarrollo. El código puede ser modificado y vuelto a compilar bajo el mismo nombre.Umbral de pruebas más permisivo.
RELEASE: Versión inmutable originada por un SNAPSHOT. Umbral de pruebas más estricto.
Dentro de Nexus existirán dos repositorios para garantizar que no se mezclen los dos tipos de versiones y la persistencia de las Releases.
![Page 10: Antonio Ramón Molina Milla - Digitalilusion...Aplicación de software libre para la evaluación de código estático basado en Checkstyle, PMD o FindBugs. Actualmente existen unas](https://reader034.vdocuments.pub/reader034/viewer/2022042312/5edabe9f434f4178104f8eeb/html5/thumbnails/10.jpg)
TDD
Test-Driven Development
Primero diseñamos las pruebas unitarias y posteriormente se desarrolla el código fuente necesario para superarlas. Una vez se han superado se simplifica el código y se refactoriza el código.
1. Se define una funcionalidad.
2. Se escoge el criterio de aceptación más simple y se traduce en
una prueba unitaria con resultado fallo.
3. Se escribe el código que hace pasar la prueba.
4. Se ejecutan todas las pruebas automatizadas.
5. Se refactoriza y se limpia el código.
![Page 11: Antonio Ramón Molina Milla - Digitalilusion...Aplicación de software libre para la evaluación de código estático basado en Checkstyle, PMD o FindBugs. Actualmente existen unas](https://reader034.vdocuments.pub/reader034/viewer/2022042312/5edabe9f434f4178104f8eeb/html5/thumbnails/11.jpg)
Pruebas
Unitarias: Probar cada uno de los métodos del código de forma aislada. Simulando la entrada de datos y verificando la salida obtenida con la esperada. Usaremos: JUnit + Mockito + PowerMock.
Regresivas: Verificar que la interacción entre los métodos es correcta. Estas pruebas son dependientes del entorno en el que se ejecutan y suelen lanzarse de forma manual.
Integración, estrés, i18N, etc.
![Page 12: Antonio Ramón Molina Milla - Digitalilusion...Aplicación de software libre para la evaluación de código estático basado en Checkstyle, PMD o FindBugs. Actualmente existen unas](https://reader034.vdocuments.pub/reader034/viewer/2022042312/5edabe9f434f4178104f8eeb/html5/thumbnails/12.jpg)
Cobertura
La cobertura mide el porcentaje de código que es ejecutado dentro de alguna de nuestras pruebas unitarias.
No tiene sentido llegar a un 100% de cobertura. Una buena práctica sería pedir el 60% y ajustar en los componentes que sean necesarios incluso desactivar este tipo de análisis en las librerías de terceros.
![Page 13: Antonio Ramón Molina Milla - Digitalilusion...Aplicación de software libre para la evaluación de código estático basado en Checkstyle, PMD o FindBugs. Actualmente existen unas](https://reader034.vdocuments.pub/reader034/viewer/2022042312/5edabe9f434f4178104f8eeb/html5/thumbnails/13.jpg)
Cobertura
![Page 14: Antonio Ramón Molina Milla - Digitalilusion...Aplicación de software libre para la evaluación de código estático basado en Checkstyle, PMD o FindBugs. Actualmente existen unas](https://reader034.vdocuments.pub/reader034/viewer/2022042312/5edabe9f434f4178104f8eeb/html5/thumbnails/14.jpg)
Sonarqube
Aplicación de software libre para la evaluación de código estático basado en Checkstyle, PMD o FindBugs.
Actualmente existen unas 495 reglas para Java.
Que permiten verificar los siguientes puntos en nuestro código:
![Page 15: Antonio Ramón Molina Milla - Digitalilusion...Aplicación de software libre para la evaluación de código estático basado en Checkstyle, PMD o FindBugs. Actualmente existen unas](https://reader034.vdocuments.pub/reader034/viewer/2022042312/5edabe9f434f4178104f8eeb/html5/thumbnails/15.jpg)
Sonarsource
VB.NET PYTHON
PHP JavaScript
![Page 16: Antonio Ramón Molina Milla - Digitalilusion...Aplicación de software libre para la evaluación de código estático basado en Checkstyle, PMD o FindBugs. Actualmente existen unas](https://reader034.vdocuments.pub/reader034/viewer/2022042312/5edabe9f434f4178104f8eeb/html5/thumbnails/16.jpg)
NullPointerExcepcion
![Page 17: Antonio Ramón Molina Milla - Digitalilusion...Aplicación de software libre para la evaluación de código estático basado en Checkstyle, PMD o FindBugs. Actualmente existen unas](https://reader034.vdocuments.pub/reader034/viewer/2022042312/5edabe9f434f4178104f8eeb/html5/thumbnails/17.jpg)
IF/ELSE idénticos
![Page 18: Antonio Ramón Molina Milla - Digitalilusion...Aplicación de software libre para la evaluación de código estático basado en Checkstyle, PMD o FindBugs. Actualmente existen unas](https://reader034.vdocuments.pub/reader034/viewer/2022042312/5edabe9f434f4178104f8eeb/html5/thumbnails/18.jpg)
Devolución del mismo valor
![Page 19: Antonio Ramón Molina Milla - Digitalilusion...Aplicación de software libre para la evaluación de código estático basado en Checkstyle, PMD o FindBugs. Actualmente existen unas](https://reader034.vdocuments.pub/reader034/viewer/2022042312/5edabe9f434f4178104f8eeb/html5/thumbnails/19.jpg)
Recurso no cerrado tras su uso
![Page 20: Antonio Ramón Molina Milla - Digitalilusion...Aplicación de software libre para la evaluación de código estático basado en Checkstyle, PMD o FindBugs. Actualmente existen unas](https://reader034.vdocuments.pub/reader034/viewer/2022042312/5edabe9f434f4178104f8eeb/html5/thumbnails/20.jpg)
Nexus
Gestor de repositorios que permite mantener de forma local:
- Librerías propias- Librerías de terceros- Snapshots- Releases
Facilitando el control de código externo usado por la empresa, garantizando un desacople con los repositorios externos y agilizando la reutilización de código propietarios de la compañía.
![Page 21: Antonio Ramón Molina Milla - Digitalilusion...Aplicación de software libre para la evaluación de código estático basado en Checkstyle, PMD o FindBugs. Actualmente existen unas](https://reader034.vdocuments.pub/reader034/viewer/2022042312/5edabe9f434f4178104f8eeb/html5/thumbnails/21.jpg)
Nexus
![Page 22: Antonio Ramón Molina Milla - Digitalilusion...Aplicación de software libre para la evaluación de código estático basado en Checkstyle, PMD o FindBugs. Actualmente existen unas](https://reader034.vdocuments.pub/reader034/viewer/2022042312/5edabe9f434f4178104f8eeb/html5/thumbnails/22.jpg)
Integrantes principales perfiles
Desarrolladores Quality Assurance Sistemas
![Page 23: Antonio Ramón Molina Milla - Digitalilusion...Aplicación de software libre para la evaluación de código estático basado en Checkstyle, PMD o FindBugs. Actualmente existen unas](https://reader034.vdocuments.pub/reader034/viewer/2022042312/5edabe9f434f4178104f8eeb/html5/thumbnails/23.jpg)
Sistemas dedicados
Jenkins
Nexus
Sonar
GIT
![Page 24: Antonio Ramón Molina Milla - Digitalilusion...Aplicación de software libre para la evaluación de código estático basado en Checkstyle, PMD o FindBugs. Actualmente existen unas](https://reader034.vdocuments.pub/reader034/viewer/2022042312/5edabe9f434f4178104f8eeb/html5/thumbnails/24.jpg)
docker + swarm
Sistemas dockerizados
Serv1 Serv2
Sonar Git Nexus
Jenkins 1 Jenkins 2
![Page 25: Antonio Ramón Molina Milla - Digitalilusion...Aplicación de software libre para la evaluación de código estático basado en Checkstyle, PMD o FindBugs. Actualmente existen unas](https://reader034.vdocuments.pub/reader034/viewer/2022042312/5edabe9f434f4178104f8eeb/html5/thumbnails/25.jpg)
Entornos
- Desarrollo: Normalmente la máquina del desarrollador dónde suele tener facilidad para debugar el código desarrollado con acceso a los recursos en local y facilitar las pruebas unitarias.
- Preproducción o integración: Entorno donde los nuevos desarrollos conviven con el resto de la aplicación. Es interesante que exista una volcado de datos ofuscados de producción para poder realizar pruebas regresivas y de integración.
- Producción: Entorno en el que desplegamos nuestro código probado y validado con anterioridad para mantener un alto nivel de calidad de la aplicación.
![Page 26: Antonio Ramón Molina Milla - Digitalilusion...Aplicación de software libre para la evaluación de código estático basado en Checkstyle, PMD o FindBugs. Actualmente existen unas](https://reader034.vdocuments.pub/reader034/viewer/2022042312/5edabe9f434f4178104f8eeb/html5/thumbnails/26.jpg)
Dudas
¡Muchas gracias!
Espero haber generado ganas de seguir formándonos sobre este concepto.
Nos vemos en la siguiente.
![Page 27: Antonio Ramón Molina Milla - Digitalilusion...Aplicación de software libre para la evaluación de código estático basado en Checkstyle, PMD o FindBugs. Actualmente existen unas](https://reader034.vdocuments.pub/reader034/viewer/2022042312/5edabe9f434f4178104f8eeb/html5/thumbnails/27.jpg)
www.commitea.es
@commiteatv
www.linkedin.com/in/armolinamilla
web
Contacto