Entorno de Calidad de Software Libre con Jenkins

754 views
719 views

Published on

En esta propuesta se incluye:
MantisBT
Maven
Git
BitBucket
Jenkins
JMeter
Junit
Mockito (Mas adelante Arquillian)
Selenium

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
754
On SlideShare
0
From Embeds
0
Number of Embeds
327
Actions
Shares
0
Downloads
27
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Entorno de Calidad de Software Libre con Jenkins

  1. 1. Entorno de Calidad para Software Libre Octubre 2013 Ing. Jose Diaz Diaz JOEDAYZ
  2. 2. Acerca de Ing. José Amadeo Martin Díaz Díaz CEO JoeDayz.pe & Docente en EPE UPC Formación BlueStar Energy (2007) Bristol Myers Squibb (2006) Trans Solutions Systems (2003 - 2005) Telefonica Servicios Internet (2000 - 2002) Egresado de la Pontificia Universidad Católica del Perú (1994 - 2000) @jamdiazdiaz
  3. 3. JoeDayz.pe Clientes
  4. 4. JoeDayz.pe Partnership
  5. 5. Agenda Situación actual Propuesta Conclusiones
  6. 6. Situación Actual
  7. 7. Proveedor inicia servicio Proveedor acepta servicio Postulan los proveedor es Se genera un TDR Se selecciona un proveedor
  8. 8. QA recibe los releases Se realizan presentacion es parciales Coordina con Gestor por email o telefono Proveedor trabaja en remoto o de forma local
  9. 9. Propuesta
  10. 10. Tener un entorno de calidad similar a cloudbess.com
  11. 11. La implementación se realizara con software libre
  12. 12. Propuesta Para este servicio no se ha implementado nexus, sonar. Eso puede ser una segunda etapa. Herramientas como Selenium, Mockito, JUnit si son recomendadas para pruebas unitarias e integrales. Son entregables que deberá añadir el proveedor JMeter es para pruebas de performance y stress Guías de instalación, uso en un proyecto de prueba y capacitación
  13. 13. Seguimiento de incidencias, bugs, MantisBT es un producto mejoras una web que permitirá mejor comunicación entre las partes involucradas Flujo de trabajo: abierto, en progreso, cerrado, duplicado sobre alguna incidencia Notificaciones por e-mail a los involucrados Soporte a archivos adjuntos
  14. 14. Problemas a solucionar Las incidencias encontradas quedaran registradas, a través de, Mantis en la base de datos. Se sabrá el estado actual de la incidencia: abierta (recién creada), en progreso, cerrada (atendida). Se puede volver a abrir una incidencia. Seguimiento exhaustivo con fechas, involucrados y/o responsables A cada incidencia se le adjuntara los documentos involucrados No hay limite de usuarios, limite de proyectos.
  15. 15. Controlador de Versiones Git es un controlador de versiones distribuido Guarda el histórico de cada proyecto a nivel de item Te permite trabajar offline y online Manejar diferentes versiones del proyecto e integrarlas a demanda
  16. 16. Problemas a solucionar No mas CDs para compartir los entregables. Se tiene la historia de cada item del proyecto: fecha de creación, creador, fecha de modificación, autor de la modificación. En caso se desee regresar a una version anterior de un item del proyecto esto se hace a elección. Se puede manejar versiones del proyecto. Crear ramas del proyecto alternativas y luego integrarlas en la rama principal. El repositorio se convertirá en el punto de partida para la integración continua que se va a proponer.
  17. 17. BitBucket BitBucket es un servicio en la nube que brinda el servicio de hosting para repositorios Git Cero administración y actualización Seguridad y/o privacidad de los fuentes
  18. 18. Problemas a solucionar Al tener los repositorios en la nube los proveedores y la organización podrán tener disponibilidad de los fuentes las 24 horas del día, los 365 días del año No se necesita adquirir un servidor exclusivo, aumentar capacidad de almacenamiento, hardware o tener colaboradores dedicados Si se debe tener un colaborador que brinde los permisos, administre las cuentas. Dedicación al negocio y no distraerse en cuestiones técnicas de instalación o actualización
  19. 19. Maven Maven es un gestor de proyecto No mas gestión de dependencias, plugins manualmente. Maven hará ese trabajo por nosotros Arquitectura estándar, proceso y flujo de trabajo estándar para desarrollo de proyectos
  20. 20. Problemas a solucionar La gestión de dependencias o librerías va a ser ordenada y automatizada Evitar la duplicidad de dependencias Arquitectura de proyecto estándar acorde a buenas practicas de la industria y aprendida de tantos proyectos desarrollados a nivel mundial Uso de plugins probados y recomendados que automatizan muchas tareas que manualmente pueden costar días
  21. 21. Jenkis Es el actor principal de nuestra propuesta Es el servidor de integración continua Es quien toma el código fuente de los repositorios y ejecuta las tareas programadas Brinda información sobre el estado del proyecto en línea
  22. 22. Problemas a solucionar La organización podrá ver día a día el trabajo de los proveedores en un panel central de tareas Podrá ver si el proveedor ejecuta tareas de compilación, prueba y despliegue Si utiliza las herramientas relacionadas con el proyecto
  23. 23. JMeter Aplicación diseñada para realizar pruebas de performance Probar el comportamiento de la aplicación web bajo condiciones de carga extrema concurrente
  24. 24. Problemas a solucionar Esta es una de las pruebas que se detecto que no se realizan en la organización Con esta herramienta se podrá ver los limites de la aplicación en condiciones extremas en un ambiente similar a producción y ver su capacidad de atención
  25. 25. JUnit, Mockito, Selenium Dependencias y librerías para hacer pruebas unitarias e integrales De uso exclusivo para desarrolladores Selenium si puede ser realizada por colaboradores de QA
  26. 26. Problemas a solucionar Hoy por hoy buenas practicas de desarrollo es incluir pruebas unitarias e integrales (entre otras pruebas) Hay una garantía de que se ha hecho el esfuerzo por cumplir los criterios de aceptación de cada historia de usuario o caso de uso Se recomienda que al menos existan estas pruebas de caja blanca en los procesos mas importantes del proyecto Estas pruebas luego pueden ser utilizadas por Jenkins para que de información a los involucrados si las pruebas no funcionan
  27. 27. No hacer pruebas es como manejar sin cinturón de seguridad
  28. 28. Conclusiones El entorno de calidad no dará opción a que una consultora no utilice un marco de trabajo y buenas practicas de desarrollo de software Brindara información día a día de lo que pasa con el proyecto y si se esta trabajando con el Un perfil junior no sabe como hacer pruebas, integración continua. Eso implicara que los proveedores deberán tener buenos equipos
  29. 29. Conclusiones Se debe romper el mito de que esto significa mas tiempo. Será si un tiempo controlado y se tendrá la información necesaria para tomar las medidas correctivas en el momento oportuno Romper el mito de que entonces con un entorno como este se debe pagar el 200% del proyecto. Se debe buscar tener un buen servicio en tiempo y en presupuesto. El costo de desarrollar un proyecto no es lo mas caro si uno lo compara con el soporte post producción a lo largo del tiempo. Un mal trabajo puede hacer que el proyecto sea insostenible y en consecuencia se cancele. Un buen proyecto hará que las actualizaciones y mejoras sean en tiempos y presupuestos justos.
  30. 30. Gracias por su atención JOEDAYZ www.joedayz.pe Ing. Jose Diaz

×