testingar v - una nueva visión - federico toledo - performance durante y después

50
Performance Testing Durante y Después PhD. Federico Toledo @fltoledo

Upload: testingar-meetup

Post on 20-Jan-2017

175 views

Category:

Technology


1 download

TRANSCRIPT

Performance Testing

Durante y Después

PhD. Federico Toledo@fltoledo

¿Cómo evitar este trabajo?

• Bomberossolucionandoproblemas enproducció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é esperformance?

TRABAJO ÚTIL

TIEMPO & RECURSOS

VS

¿Qué esperformance

testing?

Simular

So

urc

e: h

ttp

://w

ww

.min

iatu

r-w

un

de

rla

nd

.de

/

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

Technología

• Simulación • JMeter (jmeter.apache.org)• Taurus (gettaurus.org)• BlazeMeter (blazemeter.com)• Gatling (gatling.io)• Usábamos OpenSTA (opensta.org) pero quedó

sin mantenimiento

• Medición • Profilers y similar ( JVisualVM, JProfiler, dotTrace)• Herramientas a nivel de Sistema Operativo

(NMON, perfmon, Netdata)• APMs (AppDynamics, NewRelic, DataDog)

Technología – Server Side

Technologí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

Technologí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

Servidor WebServidor Web

Servidor WebServidor Web

Proceso / metodología

¿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 índicefundamental 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?

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

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

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 TestingDurante y Después

• 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 functionaltest automation” (en Inglés)

• eBook de performance… coming soon…

Rerefencias

• 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