meetup testinguy 2016 - performance durante y después - federico toledo
TRANSCRIPT
Performance Testing Durante y Después
PhD. Federico Toledo@fltoledo
¿Cómo evitar este trabajo?
• Bomberos solucionando problemas en producción.
• 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
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
¿Qué es performance
?
TRABAJO ÚTIL
TIEMPO & RECURSOS
VS
¿Qué es performanc
e testing?
Simular
Sour
ce: h
ttp://
www.
min
iatu
r-wun
derla
nd.d
e/
Medir
Bottlenecks Punto de Quiebre
• Usuarios concurrentes • Proceso
Tipos de Pruebas de Performance
• 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…
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
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
A tener siempre en cuenta
• 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
• Abstracción
• Comunicación
• Análisis
• Percepción
Personas: soft-skills
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
A tener siempre en cuenta
Tecnología
• 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
Tecnología
• 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
Encuentro GeneXus Marca Fotocasa La Liga VivaVideo
Monkop - Exploraciones
https://results.monkop.com/d8af6f27-7b0e-4573-b806-8303946269e3/report/report/index.html
A tener siempre en cuenta
• Diseño de prueba
• Automatización
• Ejecución y medición
Proceso / metodología
• 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
¿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/
• 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
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
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
• 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?
PROS1.Más fácil de planificar2.Ambiente similar a producción3.Foco en un contexto específico
CONS4. Disponibilidad de la infraestructura5. Riesgo de altos costos por cambios
arquitectónicos
Performance Testing al Final
PROS1. Minimizar riesgo2. Feedback temprano y constante
• Pruebas tempranas (unidades, componentes)• Integración continua
3. Aprendizaje continuo • Monitorización y análisis• Buenas y malas prácticas
CONS4. Mayor esfuerzo de automatización
• Prestar atención en qué nivel automatizamos5. 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
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
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
¿Qué enfoque es mejor?
Deberíamos cambiar la pregunta…
Conclusiones
• ¿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 CARGAAl final
WATERFALL
¿Qué enfoque es mejor?
• ¿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?
•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?
¡Gracias!
PhD. Federico Toledo@fltoledo
Performance Testing Durante y Después