“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
Servidor WebServidor Web
Servidor WebServidor Web
Proceso / metodología
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?
48. • Performance testing fallacies (Stickyminds)
• Blogpost: The tool or the tester?
• Blogpost: Taurus
• Blogposts tutorial sobre Gatling
Referencias
49. • Blog (en Español)
• http://blog.abstracta.com.uy
• Blog y recursos (en Inglés)
• http://www.abstracta.us/knowledge-center/
• Libro “Introducción a las pruebas de sistemas
de Información” (en Español, gratuito)
• http://bit.do/librodetesting
• eBook “A complete introduction to functional
test automation” (en Inglés)
• eBook de performance… coming soon…
Rerefencias
50. • Certificación en testing de performance
usando JMeter y BlazeMeter.
• Curso online de un mes de duración.
• www.abstracta.us/performance-testing-certification
• 25% de descuento usando este cupón
TESTINGAR-MEETUP este mes.
Abstracta Academy