Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Meetup TestingUY 2016 - Performance durante y después - Federico Toledo

322 views

Published on

http://www.meetup.com/Testing-Uy/events/234003519/

https://www.youtube.com/playlist?list=PLLjZRlRbO78tisLgclunxusrntOZKWct9

"Es mejor que empieces el testing desde el comienzo". Esta frase se ha repetido tantas veces últimamente gracias al auge y relevancia de las metodologías ágiles, que (por suerte) remarcan la importancia que tienen las pruebas en el proceso de desarrollo. ¿Cuál es la mejor forma de enfocar el esfuerzo en testing cuando hablamos de pruebas de performance? ¿Deberíamos comenzar desde el comienzo del desarrollo, acompañándolo, de acuerdo a lo planteado por las metodologías ágiles, o deberíamos seguir con un enfoque del tipo waterfall? Si alguien de la audiencia está pensando sobre pruebas de performance y tiene que decidir cómo enfocar sus esfuerzos, en esta presentación compartiremos cómo son ambos enfoques basándonos en proyectos reales, pudiendo así generar una mejor imagen de cada uno. Veremos los pros y contras de cada uno y después de la charla podrán llegar a la conclusión de cuál les conviene más en su contexto.

Published in: Software

Meetup TestingUY 2016 - Performance durante y después - Federico Toledo

  1. 1. Performance Testing Durante y Después PhD. Federico Toledo @fltoledo
  2. 2. ¿Cómo evitar este trabajo? • Bomberos solucionando problemas en producción.
  3. 3. • Introducción • Performance, testing, distintos enfoques • A tener siempre en cuenta • Personas, tecnología y metodología • Comparación: Waterfall vs. Agile • Pros & Cons basado en experiencias reales • Conclusiones Agenda
  4. 4. Agenda • Introducción • Performance, testing, distintos enfoques • A tener siempre en cuenta • Personas, tecnología y metodología • Comparación: Waterfall vs. Agile • Pros & Cons basado en experiencias reales • Conclusiones
  5. 5. ¿Qué es performance?
  6. 6. TRABAJO ÚTIL TIEMPO & RECURSOS VS
  7. 7. ¿Qué es performance testing?
  8. 8. Simular Source:http://www.miniatur-wunderland.de/
  9. 9. Medir
  10. 10. Bottlenecks Punto de Quiebre
  11. 11. • Usuarios concurrentes • Proceso Tipos de Pruebas de Performance
  12. 12. • Durante • Agile • Continuous integration • Unit, component • Feedback temprano • Ingeniería de Performance • Después • Waterfall • Acceptance testing • Simulación de escenario de carga Performance testing…
  13. 13. Agenda • Introducción • Performance, testing, distintos enfoques • A tener siempre en cuenta • Personas, tecnología y metodología • Comparación: Waterfall vs. Agile • Pros & Cons basado en experiencias reales • Conclusiones
  14. 14. Agenda • Introducción • Performance, testing, diferentes enfoques • A tener siempre en cuenta • Personas, tecnología y metodología • Comparación: Waterfall vs. Agile • Pros & Cons basado en experiencias reales • Conclusiones
  15. 15. A tener siempre en cuenta
  16. 16. • Scripting y programación • Protocolos de comunicación • Arquitecturas • Herramientas de monitorización y métricas • Administración de Redes y Sistemas Operativos • Conocimiento del negocio y sus riesgos Personas: hard-skills
  17. 17. • Abstracción • Comunicación • Análisis • Percepción Personas: soft-skills
  18. 18. Como dice Scott Barber: A good performance tester should be a “mid- level” in everything. http://www.perftestplus.com/resources/pt_for_managers_ppt.pdf Personas
  19. 19. A tener siempre en cuenta
  20. 20. Tecnología
  21. 21. • Simulación • JMeter (jmeter.apache.org) • Taurus (gettaurus.org) • BlazeMeter (blazemeter.com) • Gatling (gatling.io) • Medición • Profilers y similar (JVisualVM, JProfiler, dotTrace) • Herramientas a nivel de Sistema Operativo (NMON, perfmon, Netdata) • APMs (AppDynamics, NewRelic, DataDog) Tecnología – Server Side
  22. 22. Tecnología
  23. 23. • Web • Page Speed • Yslow • monkeytest.it • APMs • Desktop • Perfmon o NMON • Profilers Java o .NET • Mobile • Google Test Cloud / Testdroid / Perfecto • Xcode - Instruments / XCTest • APMs • Monkop Tecnología – Client Side
  24. 24. Encuentro GeneXus Marca Fotocasa La Liga VivaVideo Monkop - Exploraciones
  25. 25. https://results.monkop.com/d8af6f27-7b0e-4573-b806-8303946269e3/report/report/index.html
  26. 26. A tener siempre en cuenta
  27. 27. • Diseño de prueba • Automatización • Ejecución y medición Proceso / metodología
  28. 28. • Plan de ejecución • Baseline (sin concurrencia) • Para tener de referencia • Iterativo e incremental • Problemas más graves se hacen visible primero Proceso / metodología Server Server
  29. 29. ¿Cómo analizar problemas de performance? • Encontrar forma de reproducir • Asegurarse que el problema no es la prueba • Hacer un cambio a la vez • Changelog / bitácora para tener trazabilidad entre cambios y cómo afectó Tuning / ajuste Bajan tiempos de respuesta x% Cambio en una funcionalidad Uso de CPU aumentó X% Proceso / metodología Icons by Gregor Črešnar, Jamie Wilson, Shmidt Sergey, Icon Fair. Source: https://thenounproject.com/
  30. 30. • Los 5 ¿por qué? Para ir de síntomas a causas • El Sistema anda lento • ¿Eso es síntoma o causa? ¿Por qué anda lento? • Porque el Sistema tarda 15 segundos en completar • ¿Por qué? • Porque el componente de acceso a datos está demorando todo ese Proceso / metodología
  31. 31. Agenda • Introducción • Performance, testing, diferentes enfoques • A tener siempre en cuenta • Personas, tecnología y metodología • Comparación: Waterfall vs. Agile • Pros & Cons basado en experiencias reales • Conclusiones
  32. 32. Agenda • Introducción • Performance, testing, diferentes enfoques • A tener siempre en cuenta • Personas, tecnología y metodología • Comparación: Waterfall vs. Agile • Pros & Cons basado en experiencias reales • Conclusiones
  33. 33. • La mayoría de nuestros clientes nos piden por “simulación de carga” justo antes de salir en producción. • Principales motivaciones: • Nueva versión con nuevas funcionalidades • Nueva arquitectura (win to web, web to mobile) • Campañas de Marketing • Un banco que absorbe a otro • Solo algunos piden acompañarlos durante el desarrollo (en los últimos años) • Por eso decidimos comparar los dos enfoques  ¿Qué es lo que se usa?
  34. 34. PROS 1. Más fácil de planificar 2. Ambiente similar a producción 3. Foco en un contexto específico CONS 1. Disponibilidad de la infraestructura 2. Riesgo de altos costos por cambios arquitectónicos Performance Testing al Final
  35. 35. PROS 1. Minimizar riesgo 2. Feedback temprano y constante • Pruebas tempranas (unidades, componentes) • Integración continua 3. Aprendizaje continuo • Monitorización y análisis • Buenas y malas prácticas CONS 1. Mayor esfuerzo de automatización • Prestar atención en qué nivel automatizamos 2. Falacia de la Composición: • Test(A)+Test(B)=Test(A+B) • Si se prueban los componentes entonces el sistema integrado funcionará apropiadamente. Performance Testing durante el desarrollo
  36. 36. Agenda • Introducción • Performance, testing, diferentes enfoques • A tener siempre en cuenta • Personas, tecnología y metodología • Comparación: Waterfall vs. Agile • Pros & Cons basado en experiencias reales • Conclusiones
  37. 37. Agenda • Introducción • Performance, testing, diferentes enfoques • A tener siempre en cuenta • Personas, tecnología y metodología • Comparación: Waterfall vs. Agile • Pros & Cons basado en experiencias reales • Conclusiones
  38. 38. ¿Qué enfoque es mejor? Deberíamos cambiar la pregunta… Conclusiones
  39. 39. • ¿Necesitas verificar que el sistema soporta determinada carga? • ¿Necesitas evidencia de prueba para tus clientes? • ¿Querés analizar el impacto de un cambio en producción? SIMULACIÓN DE CARGA Al final WATERFALL ¿Qué enfoque es mejor?
  40. 40. • ¿Querés optimizar costo y reducir riesgos de performance? • ¿Querés incrementar el conocimiento del equipo y mejorar las prácticas y habilidades? • ¿Querés incluir performance en tu integración continua? INGENIERÍA DE PERFORMANCE Durante el desarrollo AGILE ¿Qué enfoque es major?
  41. 41. • Necesitamos los dos enfoques en distintos momentos. • Comenzar temprano con ingeniería de performance y preparar una prueba de aceptación al final, justo antes de poner en producción. ¿Qué enfoque es mejor?
  42. 42. ¡Gracias! PhD. Federico Toledo @fltoledo Performance Testing Durante y Después

×