Expositor: Federico Toledo
Resumen: "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.
2. ¿Cómo evitar este trabajo?
• Bomberos solucionando
problemas en producción.
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. 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
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. 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. 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
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
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
32. • Diseño de prueba
• Automatización
• Ejecución y medición
Proceso / metodología
33. • 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
34. ¿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/
35. • 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 tiempo
• ¿Por qué?
• Porque hay SQL’s que tardan mucho
• ¿Por qué?
• Porque en el entorno no se creó un índice fundamental en esas
consultas
• Entonces, ¡crear el índice!
Proceso / metodología
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. 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. • 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?
39. 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
40. 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
41. 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
42. 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
43. ¿Qué enfoque es mejor?
Deberíamos cambiar la pregunta…
Conclusiones
44. • ¿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?
45. • ¿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?
46. • 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?