Entorno de Calidad de Software Libre con Jenkins
Upcoming SlideShare
Loading in...5
×
 

Entorno de Calidad de Software Libre con Jenkins

on

  • 610 views

En esta propuesta se incluye:

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

Statistics

Views

Total Views
610
Views on SlideShare
308
Embed Views
302

Actions

Likes
1
Downloads
22
Comments
0

3 Embeds 302

http://joedayz.pe 283
http://plus.url.google.com 14
http://www.linkedin.com 5

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Entorno de Calidad de Software Libre con Jenkins Entorno de Calidad de Software Libre con Jenkins Presentation Transcript

  • Entorno de Calidad para Software Libre Octubre 2013 Ing. Jose Diaz Diaz JOEDAYZ
  • 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
  • JoeDayz.pe Clientes
  • JoeDayz.pe Partnership
  • Agenda Situación actual Propuesta Conclusiones
  • Situación Actual
  • Proveedor inicia servicio Proveedor acepta servicio Postulan los proveedor es Se genera un TDR Se selecciona un proveedor
  • QA recibe los releases Se realizan presentacion es parciales Coordina con Gestor por email o telefono Proveedor trabaja en remoto o de forma local
  • Propuesta
  • Tener un entorno de calidad similar a cloudbess.com
  • La implementación se realizara con software libre
  • 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
  • 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
  • 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.
  • 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
  • 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.
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • JMeter Aplicación diseñada para realizar pruebas de performance Probar el comportamiento de la aplicación web bajo condiciones de carga extrema concurrente
  • 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
  • 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
  • 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
  • No hacer pruebas es como manejar sin cinturón de seguridad
  • 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
  • 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.
  • Gracias por su atención JOEDAYZ www.joedayz.pe Ing. Jose Diaz