entorno de calidad de software libre con jenkins

37
Entorno de Calidad Entorno de Calidad para Software Libre para Software Libre Octubre 2013 Octubre 2013 Ing. Jose Diaz Ing. Jose Diaz Diaz Diaz JOEDAYZ JOEDAYZ

Upload: jose-diaz

Post on 25-May-2015

677 views

Category:

Technology


0 download

DESCRIPTION

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

TRANSCRIPT

Page 1: Entorno de Calidad de Software Libre con Jenkins

Entorno de CalidadEntorno de Calidadpara Software Librepara Software LibreOctubre 2013Octubre 2013

Ing. Jose Diaz Ing. Jose Diaz DiazDiaz

JOEDAYZJOEDAYZ

Page 2: Entorno de Calidad de Software Libre con Jenkins

Acerca deAcerca de

Ing. José Amadeo Martin Díaz DíazIng. José Amadeo Martin Díaz Díaz

CEO JoeDayz.pe & Docente en EPE UPCCEO JoeDayz.pe & Docente en EPE UPC

Formación Formación

BlueStar Energy (2007)BlueStar Energy (2007)

Bristol Myers Squibb (2006)Bristol Myers Squibb (2006)

Trans Solutions Systems (2003 - 2005)Trans Solutions Systems (2003 - 2005)

Telefonica Servicios Internet (2000 - 2002)Telefonica Servicios Internet (2000 - 2002)

Egresado de la Pontificia Universidad Católica del Perú (1994 - 2000)Egresado de la Pontificia Universidad Católica del Perú (1994 - 2000)

@jamdiazdiaz@jamdiazdiaz

Page 3: Entorno de Calidad de Software Libre con Jenkins

JoeDayz.pe ClientesJoeDayz.pe Clientes

Page 4: Entorno de Calidad de Software Libre con Jenkins

JoeDayz.pe PartnershipJoeDayz.pe Partnership

Page 5: Entorno de Calidad de Software Libre con Jenkins

AgendaAgenda

Situación actualSituación actual

PropuestaPropuesta

ConclusionesConclusiones

Page 6: Entorno de Calidad de Software Libre con Jenkins

Situación ActualSituación Actual

Page 7: Entorno de Calidad de Software Libre con Jenkins

Se genera un Se genera un TDRTDR

Postulan Postulan los los

proveedoreproveedoress

Se Se seleccionaselecciona

un un proveedorproveedor

Proveedor Proveedor aceptaaceptaservicioservicio

Proveedor inicia Proveedor inicia servicioservicio

Page 8: Entorno de Calidad de Software Libre con Jenkins

Proveedor Proveedor trabaja en trabaja en remoto remoto

o de forma localo de forma local

Coordina con Coordina con GestorGestor

por email o por email o telefonotelefono

Se realizan Se realizan presentacionpresentacion

esesparcialesparciales

QA recibeQA recibelos los

releasesreleases

Page 9: Entorno de Calidad de Software Libre con Jenkins

PropuestaPropuesta

Page 10: Entorno de Calidad de Software Libre con Jenkins

Tener un entorno de calidad similar a Tener un entorno de calidad similar a cloudbess.comcloudbess.com

Page 11: Entorno de Calidad de Software Libre con Jenkins

La implementación se realizara con La implementación se realizara con software libresoftware libre

Page 12: Entorno de Calidad de Software Libre con Jenkins

PropuestaPropuesta

Para este servicio no se ha implementado nexus, Para este servicio no se ha implementado nexus, sonar. Eso puede ser una segunda etapa.sonar. Eso puede ser una segunda etapa.

Herramientas como Herramientas como SeleniumSelenium, , MockitoMockito, , JUnit JUnit si si son recomendadas para pruebas unitarias e son recomendadas para pruebas unitarias e integrales. Son entregables que deberá añadir el integrales. Son entregables que deberá añadir el proveedorproveedor

JMeter JMeter es para pruebas de performance y stresses para pruebas de performance y stress

Guías de instalación, uso en un proyecto de Guías de instalación, uso en un proyecto de prueba y capacitaciónprueba y capacitación

Page 13: Entorno de Calidad de Software Libre con Jenkins

Seguimiento de Seguimiento de incidencias, bugs, incidencias, bugs, mejorasmejoras

MantisBT es un producto MantisBT es un producto web que permitirá una mejor web que permitirá una mejor comunicación entre las comunicación entre las partes involucradaspartes involucradas

Flujo de trabajo: abierto, en Flujo de trabajo: abierto, en progreso, cerrado, duplicado progreso, cerrado, duplicado sobre alguna incidenciasobre alguna incidencia

Notificaciones por e-mail a Notificaciones por e-mail a los involucrados los involucrados

Soporte a archivos adjuntosSoporte a archivos adjuntos

Page 14: Entorno de Calidad de Software Libre con Jenkins
Page 15: Entorno de Calidad de Software Libre con Jenkins

Problemas a solucionarProblemas a solucionarLas incidencias encontradas quedaran registradas, a través Las incidencias encontradas quedaran registradas, a través de, Mantis en la base de datos.de, Mantis en la base de datos.

Se sabrá el estado actual de la incidencia: abierta (recién Se sabrá el estado actual de la incidencia: abierta (recién creada), en progreso, cerrada (atendida). Se puede volver creada), en progreso, cerrada (atendida). Se puede volver a abrir una incidencia.a abrir una incidencia.

Seguimiento exhaustivo con fechas, involucrados y/o Seguimiento exhaustivo con fechas, involucrados y/o responsablesresponsables

A cada incidencia se le adjuntara los documentos A cada incidencia se le adjuntara los documentos involucradosinvolucrados

No hay limite de usuarios, limite de proyectos. No hay limite de usuarios, limite de proyectos.

Page 16: Entorno de Calidad de Software Libre con Jenkins

Controlador de Controlador de VersionesVersiones

Git es un controlador de Git es un controlador de versiones distribuidoversiones distribuido

Guarda el histórico de Guarda el histórico de cada proyecto a nivel de cada proyecto a nivel de itemitem

Te permite trabajar Te permite trabajar offline y onlineoffline y online

Manejar diferentes Manejar diferentes versiones del proyecto e versiones del proyecto e integrarlas a demandaintegrarlas a demanda

Page 17: Entorno de Calidad de Software Libre con Jenkins
Page 18: Entorno de Calidad de Software Libre con Jenkins

Problemas a solucionarProblemas a solucionarNo mas CDs para compartir los entregables.No mas CDs para compartir los entregables.

Se tiene la historia de cada item del proyecto: fecha de Se tiene la historia de cada item del proyecto: fecha de creación, creador, fecha de modificación, autor de la creación, creador, fecha de modificación, autor de la modificación.modificación.

En caso se desee regresar a una version anterior de un item En caso se desee regresar a una version anterior de un item del proyecto esto se hace a elección.del proyecto esto se hace a elección.

Se puede manejar versiones del proyecto. Crear ramas del Se puede manejar versiones del proyecto. Crear ramas del proyecto alternativas y luego integrarlas en la rama principal.proyecto alternativas y luego integrarlas en la rama principal.

El repositorio se convertirá en el punto de partida para la El repositorio se convertirá en el punto de partida para la integración continua que se va a proponer.integración continua que se va a proponer.

Page 19: Entorno de Calidad de Software Libre con Jenkins

BitBucketBitBucket

BitBucket es un BitBucket es un servicio en la nube que servicio en la nube que brinda el servicio de brinda el servicio de hosting para hosting para repositorios Gitrepositorios Git

Cero administración y Cero administración y actualizaciónactualización

Seguridad y/o Seguridad y/o privacidad de los privacidad de los fuentesfuentes

Page 20: Entorno de Calidad de Software Libre con Jenkins

Problemas a solucionarProblemas a solucionar

Al tener los repositorios en la nube los proveedores y Al tener los repositorios en la nube los proveedores y la organización podrán tener disponibilidad de los la organización podrán tener disponibilidad de los fuentes las 24 horas del día, los 365 días del añofuentes las 24 horas del día, los 365 días del año

No se necesita adquirir un servidor exclusivo, No se necesita adquirir un servidor exclusivo, aumentar capacidad de almacenamiento, hardware o aumentar capacidad de almacenamiento, hardware o tener colaboradores dedicadostener colaboradores dedicados

Si se debe tener un colaborador que brinde los Si se debe tener un colaborador que brinde los permisos, administre las cuentas. Dedicación al permisos, administre las cuentas. Dedicación al negocio y no distraerse en cuestiones técnicas de negocio y no distraerse en cuestiones técnicas de instalación o actualizacióninstalación o actualización

Page 21: Entorno de Calidad de Software Libre con Jenkins
Page 22: Entorno de Calidad de Software Libre con Jenkins

MavenMaven

Maven es un gestor de Maven es un gestor de proyectoproyecto

No mas gestión de No mas gestión de dependencias, plugins dependencias, plugins manualmente. Maven manualmente. Maven hará ese trabajo por hará ese trabajo por nosotrosnosotros

Arquitectura estándar, Arquitectura estándar, proceso y flujo de trabajo proceso y flujo de trabajo estándar para desarrollo estándar para desarrollo de proyectosde proyectos

Page 23: Entorno de Calidad de Software Libre con Jenkins
Page 24: Entorno de Calidad de Software Libre con Jenkins

Problemas a solucionarProblemas a solucionar

La gestión de dependencias o librerías va a ser La gestión de dependencias o librerías va a ser ordenada y automatizadaordenada y automatizada

Evitar la duplicidad de dependenciasEvitar la duplicidad de dependencias

Arquitectura de proyecto estándar acorde a buenas Arquitectura de proyecto estándar acorde a buenas practicas de la industria y aprendida de tantos practicas de la industria y aprendida de tantos proyectos desarrollados a nivel mundialproyectos desarrollados a nivel mundial

Uso de plugins probados y recomendados que Uso de plugins probados y recomendados que automatizan muchas tareas que manualmente automatizan muchas tareas que manualmente pueden costar díaspueden costar días

Page 25: Entorno de Calidad de Software Libre con Jenkins

JenkisJenkisEs el actor principal de Es el actor principal de nuestra propuestanuestra propuesta

Es el servidor de Es el servidor de integración continuaintegración continua

Es quien toma el código Es quien toma el código fuente de los repositorios y fuente de los repositorios y ejecuta las tareas ejecuta las tareas programadasprogramadas

Brinda información sobre el Brinda información sobre el estado del proyecto en estado del proyecto en línealínea

Page 26: Entorno de Calidad de Software Libre con Jenkins
Page 27: Entorno de Calidad de Software Libre con Jenkins

Problemas a solucionarProblemas a solucionar

La organización podrá ver día a día el trabajo La organización podrá ver día a día el trabajo de los proveedores en un panel central de de los proveedores en un panel central de tareastareas

Podrá ver si el proveedor ejecuta tareas de Podrá ver si el proveedor ejecuta tareas de compilación, prueba y desplieguecompilación, prueba y despliegue

Si utiliza las herramientas relacionadas con el Si utiliza las herramientas relacionadas con el proyectoproyecto

Page 28: Entorno de Calidad de Software Libre con Jenkins
Page 29: Entorno de Calidad de Software Libre con Jenkins

JMeterJMeter

Aplicación diseñada Aplicación diseñada para realizar pruebas para realizar pruebas de performancede performance

Probar el Probar el comportamiento de comportamiento de la aplicación web la aplicación web bajo condiciones de bajo condiciones de carga extrema carga extrema concurrente concurrente

Page 30: Entorno de Calidad de Software Libre con Jenkins
Page 31: Entorno de Calidad de Software Libre con Jenkins

Problemas a solucionarProblemas a solucionar

Esta es una de las pruebas que se detecto que Esta es una de las pruebas que se detecto que no se realizan en la organización no se realizan en la organización

Con esta herramienta se podrá ver los limites Con esta herramienta se podrá ver los limites de la aplicación en condiciones extremas en un de la aplicación en condiciones extremas en un ambiente similar a producción y ver su ambiente similar a producción y ver su capacidad de atencióncapacidad de atención

Page 32: Entorno de Calidad de Software Libre con Jenkins

JUnit, Mockito, SeleniumJUnit, Mockito, Selenium

Dependencias y Dependencias y librerías para hacer librerías para hacer pruebas unitarias e pruebas unitarias e integralesintegrales

De uso exclusivo De uso exclusivo para desarrolladorespara desarrolladores

Selenium si puede Selenium si puede ser realizada por ser realizada por colaboradores de QA colaboradores de QA

Page 33: Entorno de Calidad de Software Libre con Jenkins

Problemas a solucionarProblemas a solucionar

Hoy por hoy buenas practicas de desarrollo es incluir Hoy por hoy buenas practicas de desarrollo es incluir pruebas unitarias e integrales (entre otras pruebas)pruebas unitarias e integrales (entre otras pruebas)

Hay una garantía de que se ha hecho el esfuerzo por Hay una garantía de que se ha hecho el esfuerzo por cumplir los criterios de aceptación de cada historia de cumplir los criterios de aceptación de cada historia de usuario o caso de usousuario o caso de uso

Se recomienda que al menos existan estas pruebas de Se recomienda que al menos existan estas pruebas de caja blanca en los procesos mas importantes del proyectocaja blanca en los procesos mas importantes del proyecto

Estas pruebas luego pueden ser utilizadas por Jenkins Estas pruebas luego pueden ser utilizadas por Jenkins para que de información a los involucrados si las pruebas para que de información a los involucrados si las pruebas no funcionanno funcionan

Page 34: Entorno de Calidad de Software Libre con Jenkins

No hacer pruebas es como No hacer pruebas es como manejar sin manejar sin cinturón de seguridad cinturón de seguridad

Page 35: Entorno de Calidad de Software Libre con Jenkins

ConclusionesConclusiones

El entorno de calidad no dará opción a que una El entorno de calidad no dará opción a que una consultora no utilice un marco de trabajo y consultora no utilice un marco de trabajo y buenas practicas de desarrollo de softwarebuenas practicas de desarrollo de software

Brindara información día a día de lo que pasa Brindara información día a día de lo que pasa con el proyecto y si se esta trabajando con elcon el proyecto y si se esta trabajando con el

Un perfil junior no sabe como hacer pruebas, Un perfil junior no sabe como hacer pruebas, integración continua. Eso implicara que los integración continua. Eso implicara que los proveedores deberán tener buenos equipos proveedores deberán tener buenos equipos

Page 36: Entorno de Calidad de Software Libre con Jenkins

ConclusionesConclusionesSe debe romper el mito de que esto significa mas tiempo. Será Se debe romper el mito de que esto significa mas tiempo. Será si un tiempo controlado y se tendrá la información necesaria si un tiempo controlado y se tendrá la información necesaria para tomar las medidas correctivas en el momento oportunopara tomar las medidas correctivas en el momento oportuno

Romper el mito de que entonces con un entorno como este se Romper el mito de que entonces con un entorno como este se debe pagar el 200% del proyecto. Se debe buscar tener un buen debe pagar el 200% del proyecto. Se debe buscar tener un buen servicio en tiempo y en presupuesto. servicio en tiempo y en presupuesto.

El costo de desarrollar un proyecto no es lo mas caro si uno lo 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. compara con el soporte post producción a lo largo del tiempo.

Un mal trabajo puede hacer que el proyecto sea insostenible y Un mal trabajo puede hacer que el proyecto sea insostenible y en consecuencia se cancele. Un buen proyecto hará que las en consecuencia se cancele. Un buen proyecto hará que las actualizaciones y mejoras sean en tiempos y presupuestos actualizaciones y mejoras sean en tiempos y presupuestos justos.justos.

Page 37: Entorno de Calidad de Software Libre con Jenkins

www.joedayz.pewww.joedayz.peIng. Jose DiazIng. Jose Diaz

Gracias por su atenciónGracias por su atención

JOEDAYZJOEDAYZ