charla en universidad ort 2014 - testing técnico (automatización, mobile, performance y más)

92
Federico Toledo Federico.Toledo@abstract a.com.uy @fltoledo Testing técnico

Upload: federico-toledo

Post on 20-Jan-2017

276 views

Category:

Software


0 download

TRANSCRIPT

Page 2: Charla en Universidad ORT 2014 - Testing técnico (automatización, mobile, performance y más)

¿No puede existir un software perfecto?

suficientemente bueno

¡¡ Testing !!

Page 3: Charla en Universidad ORT 2014 - Testing técnico (automatización, mobile, performance y más)

Testing ¿aburrido?¿Por qué?

– Tareas repetitivas– No hay desafíos técnicos– Trabajo para el mal programador

Page 4: Charla en Universidad ORT 2014 - Testing técnico (automatización, mobile, performance y más)

Temario

Test execution automation

Test design automation

Monkop Performance Testing

Page 5: Charla en Universidad ORT 2014 - Testing técnico (automatización, mobile, performance y más)

Test execution automation

Page 6: Charla en Universidad ORT 2014 - Testing técnico (automatización, mobile, performance y más)

Caso de prueba

• Un caso de prueba consta de: – conjunto de valores de entrada– precondiciones de ejecución– resultados esperados– poscondiciones de ejecución, – desarrollados con un objetivo particular, por

ejemplo:• ejercitar un camino de un programa particular • verificar que se cumple un requisito especifico

Page 7: Charla en Universidad ORT 2014 - Testing técnico (automatización, mobile, performance y más)

Discusión de “salados”

• “Test automation is simply an automatic way of doing what testers were doing before”– Steve Rowe (Tester at Microsoft)

• “Test automation means extending the reach of testers”– James Batch (Tester Consultant at Satisfice)

Page 8: Charla en Universidad ORT 2014 - Testing técnico (automatización, mobile, performance y más)

Testing de Regresión• Verificar que el Software no tenga

regresiones

• ¿Solo revisar bugs?

• Hay quienes dicen que es un chequeo– Michael Bolton

http://www.developsense.com/2009/08/testing-vs-checking.html

Page 9: Charla en Universidad ORT 2014 - Testing técnico (automatización, mobile, performance y más)

Automatización

• Adquirir tecnología para automatizar procesos manuales

• Mejora: – calidad – performance en la producción – rendimiento de los recursos humanos

Page 10: Charla en Universidad ORT 2014 - Testing técnico (automatización, mobile, performance y más)

¿Qué es automatizar pruebas?

Lograr que los casos de prueba sean corridos por una máquina

Page 11: Charla en Universidad ORT 2014 - Testing técnico (automatización, mobile, performance y más)

¿Para qué automatizar?

• Aumentar la calidad del producto• Disminuir el Time to Market• Detección temprana de errores• Reducir el costo total de la aplicación• Motivación del equipo • Testear en diferentes plataformas en forma

desatendida

Page 12: Charla en Universidad ORT 2014 - Testing técnico (automatización, mobile, performance y más)

¿Cómo automatizar?

• Se debe utilizar una herramienta

• Algunos conceptos importantes– Record & Playback– Data-Driven Testing– Model-Based Testing

istockphoto ®

Page 13: Charla en Universidad ORT 2014 - Testing técnico (automatización, mobile, performance y más)

Selenium

• Record and Playback

• User interface level automation

Page 14: Charla en Universidad ORT 2014 - Testing técnico (automatización, mobile, performance y más)

Cómo funciona Selenium

Tester / User

SUT: System Under Test

Manual Test Case Execution

Page 15: Charla en Universidad ORT 2014 - Testing técnico (automatización, mobile, performance y más)

Como funciona Selenium

Functional Test Scripts

Selenium captures User Interactions

Tester / User

Executes and reports

SUT: System Under Test

Manual Test Case Execution

This is record and playback!

Page 16: Charla en Universidad ORT 2014 - Testing técnico (automatización, mobile, performance y más)

Data-drive con Selenium

Page 17: Charla en Universidad ORT 2014 - Testing técnico (automatización, mobile, performance y más)

Demo

Page 18: Charla en Universidad ORT 2014 - Testing técnico (automatización, mobile, performance y más)
Page 19: Charla en Universidad ORT 2014 - Testing técnico (automatización, mobile, performance y más)

¿Qué es ?

• Herramienta de testing específica para aplicaciones Web GeneXus

Model-Based Testing

Record & Playback

Data-Driven Testing

Page 20: Charla en Universidad ORT 2014 - Testing técnico (automatización, mobile, performance y más)

¿Por qué ?

• Adaptar rápidamente los casos de prueba a los cambios de la aplicación

• Crear casos de prueba de manera sencilla– Enfoque funcional– Data-Driven Testing

• Integración con la aplicación GeneXus

Page 21: Charla en Universidad ORT 2014 - Testing técnico (automatización, mobile, performance y más)

¿Cómo se logra?GXtest asocia Artefactos de Prueba a la KB

Casos de Prueba Ejecutables

Capa de Adaptación

Casos de Prueba

Page 22: Charla en Universidad ORT 2014 - Testing técnico (automatización, mobile, performance y más)

Ejemplo

• Transacción Clientes

• Herramientas tradicionales:

• GXtest:

Page 23: Charla en Universidad ORT 2014 - Testing técnico (automatización, mobile, performance y más)

Casos de Prueba

Datapools Decisiones InclusiónLogin

Comandos

Orden de ejecución de las aristas

Page 24: Charla en Universidad ORT 2014 - Testing técnico (automatización, mobile, performance y más)

Manager

Page 25: Charla en Universidad ORT 2014 - Testing técnico (automatización, mobile, performance y más)

Resumen

• Record and Playback• Data-driven testing• Model-based testing

Page 26: Charla en Universidad ORT 2014 - Testing técnico (automatización, mobile, performance y más)

Test design automation

Page 27: Charla en Universidad ORT 2014 - Testing técnico (automatización, mobile, performance y más)

Tesis: Enfoque MDA para Generar Pruebas para Sistemas de Información

• Universidad Castilla-La Mancha• Beca: Agencia Nacional de Investigación e

Innovación• Tutores

– Macario Polo (España)

– Beatriz Pérez (Uruguay)

Page 28: Charla en Universidad ORT 2014 - Testing técnico (automatización, mobile, performance y más)

Conclusiones

• Model-driven approach• Basado en estándares

– UML • UML Data Modeling Profile• UML Testing Profile

– Transformaciones Model-to-Model– Transformaciones Model-to-Text

• Pruebas funcionales automatizadas y pruebas de performance

Page 29: Charla en Universidad ORT 2014 - Testing técnico (automatización, mobile, performance y más)

Conclusiones

• Especial atención en cubrir las estructuras de datos– A partir del modelo de datos se generan casos de

prueba para probar el CRUD de las entidades• CRUD = Create, Read, Update, Delete• 80% de las funcionalidades de los sistemas de

información son operaciones de este tipo

Page 30: Charla en Universidad ORT 2014 - Testing técnico (automatización, mobile, performance y más)
Page 31: Charla en Universidad ORT 2014 - Testing técnico (automatización, mobile, performance y más)

Mayor aporte: vínculo con industria

• Las técnicas investigadas fueron volcadas a GXtest

• GXtest Generator– A partir de la KB de GeneXus genera un conjunto

de casos de prueba en GXtest para el CRUD de las entidades

Page 32: Charla en Universidad ORT 2014 - Testing técnico (automatización, mobile, performance y más)

Casos de prueba generados en GXtest

Page 33: Charla en Universidad ORT 2014 - Testing técnico (automatización, mobile, performance y más)

Resumen

• Model driven approaches

• Test design generation

• Usado en la industria– GXtest Generator

Page 34: Charla en Universidad ORT 2014 - Testing técnico (automatización, mobile, performance y más)

Monkop

Page 35: Charla en Universidad ORT 2014 - Testing técnico (automatización, mobile, performance y más)

Ing. Fabián BaptistaGerente de Operaciones

Presentación Institucional

Tuning Apps?

Page 36: Charla en Universidad ORT 2014 - Testing técnico (automatización, mobile, performance y más)

Tuning

(informática)Afinar la configuración de hardware y software

para optimizar su rendimiento*

* Wikipedia

Page 37: Charla en Universidad ORT 2014 - Testing técnico (automatización, mobile, performance y más)

World Forecast

Page 38: Charla en Universidad ORT 2014 - Testing técnico (automatización, mobile, performance y más)

Smart Devices Jungle

Page 39: Charla en Universidad ORT 2014 - Testing técnico (automatización, mobile, performance y más)

Objetivos

SIMPLE – Envía tu app, obtén un informe.

EXPERTO - Analizar e identificar cuales tareas de Tuning son posibles a realizar sobre la aplicación.

EDUCATIVO - Brindar información técnica necesaria para realizar la tarea de Tuning.

ESCENCIAL – Ser el complemento (amigo) ideal de toda Software Factory

Page 40: Charla en Universidad ORT 2014 - Testing técnico (automatización, mobile, performance y más)

Principales áreas de análisis

Performance, Seguridad,

Funcionalidad

Page 41: Charla en Universidad ORT 2014 - Testing técnico (automatización, mobile, performance y más)

24x7Cross Device

Knowledge ExpertAnálisis 360°

Simple

Page 42: Charla en Universidad ORT 2014 - Testing técnico (automatización, mobile, performance y más)

Simple1: Ingresa

http://www.monkop.com2: Upload APK

3: Dinos tu emailListo!

Page 43: Charla en Universidad ORT 2014 - Testing técnico (automatización, mobile, performance y más)
Page 44: Charla en Universidad ORT 2014 - Testing técnico (automatización, mobile, performance y más)

Reporte de resultado

Page 45: Charla en Universidad ORT 2014 - Testing técnico (automatización, mobile, performance y más)

Reporte de resultado

Page 46: Charla en Universidad ORT 2014 - Testing técnico (automatización, mobile, performance y más)

Reporte de resultado

Page 47: Charla en Universidad ORT 2014 - Testing técnico (automatización, mobile, performance y más)
Page 48: Charla en Universidad ORT 2014 - Testing técnico (automatización, mobile, performance y más)

Android

Android Device

App Under Test

Shell

Monkop Android

Instrumentation

Commands / Services

Monkop Agent

Android SDK

ADB

Python Server

Monkop Agent

Monkop Server

Python Server

Monkop Server

Monkops

Monkops

Monkops

Monkop SaaS Server (Java)

Monkop Site

AVRO (tpc/ip)

AVRO (tpc/ip)

Page 49: Charla en Universidad ORT 2014 - Testing técnico (automatización, mobile, performance y más)

Pruebas basadas en conocimiento (modelos)

• Sin información base:Modelo se crea en base a exploración e ingeniería inversa, pantallas, comportamiento (acciones y transiciones), tráfico de red y texto ayudan a la creación del modelo de la aplicación.

• Con información baseDatos, código fuente, logs del server y casos de prueba de otros frameworks ayudan a complementar el modelo y la comprensión del sistema.

Page 50: Charla en Universidad ORT 2014 - Testing técnico (automatización, mobile, performance y más)

Demo de ejecución

Page 51: Charla en Universidad ORT 2014 - Testing técnico (automatización, mobile, performance y más)

Resumen

• Monkey testing para mobile• Pruebas sobre distintos dispositivos• Reporte automático• Sugerencias de mejora• Performance, seguridad, funcionalidad

Page 52: Charla en Universidad ORT 2014 - Testing técnico (automatización, mobile, performance y más)

Open Device Lab’s - Uruguay

Page 53: Charla en Universidad ORT 2014 - Testing técnico (automatización, mobile, performance y más)

Performance Testing

Page 54: Charla en Universidad ORT 2014 - Testing técnico (automatización, mobile, performance y más)

Performance

• Computer performance is characterized by the amount of useful work accomplished by a computer system compared to the time and resources used.

• Requisito “no funcional” del sistema

Page 55: Charla en Universidad ORT 2014 - Testing técnico (automatización, mobile, performance y más)

¿Si no hay performance?Dependemos de los sistemas para trabajar• Se pierde productividad• Se pierden clientes• Se pierden oportunidades de ventaLos sistemas son controlados por personas• Mayor costo de soporteLa imagen de la empresa es el sistema que le da a sus usuarios• Costos indirectos• Pérdida de imagen y confianza

Page 56: Charla en Universidad ORT 2014 - Testing técnico (automatización, mobile, performance y más)

Pruebas de performanceCómo ayudamos:

– Simular situaciones de carga para conocer el desempeño del sistema

Para qué:– Verificar si el sistema soporta la carga esperada– Verificar si se cumplen acuerdos de nivel de servicio (SLA)– Detectar errores u oportunidades de mejora, que solamente son

observables ante la concurrencia– Detectar bottle-necks

Objetivo:– Asegurar satisfacción de los usuarios

Page 57: Charla en Universidad ORT 2014 - Testing técnico (automatización, mobile, performance y más)

Tipos de pruebas de performance

• Pruebas de carga (load test)• Pruebas de estrés (stress test)• Pruebas de resistencia (endurance test)• Pruebas de escalabilidad• Etc.

Page 58: Charla en Universidad ORT 2014 - Testing técnico (automatización, mobile, performance y más)

Load test

Page 59: Charla en Universidad ORT 2014 - Testing técnico (automatización, mobile, performance y más)

Stress test

Page 60: Charla en Universidad ORT 2014 - Testing técnico (automatización, mobile, performance y más)

Endurance

Page 61: Charla en Universidad ORT 2014 - Testing técnico (automatización, mobile, performance y más)

Scalability

Page 62: Charla en Universidad ORT 2014 - Testing técnico (automatización, mobile, performance y más)

Software Load test

¿Cómo simulamos el uso real del sistema?– Manualmente – Usando herramientas

Page 63: Charla en Universidad ORT 2014 - Testing técnico (automatización, mobile, performance y más)
Page 64: Charla en Universidad ORT 2014 - Testing técnico (automatización, mobile, performance y más)

Automatización / robotización

Page 65: Charla en Universidad ORT 2014 - Testing técnico (automatización, mobile, performance y más)
Page 66: Charla en Universidad ORT 2014 - Testing técnico (automatización, mobile, performance y más)

Ventajas

Manual Automático

Simulado

Controlado

Repetible

Real

Sin costos de herramientas

Page 67: Charla en Universidad ORT 2014 - Testing técnico (automatización, mobile, performance y más)

Desventajas

Manual Automático

Page 68: Charla en Universidad ORT 2014 - Testing técnico (automatización, mobile, performance y más)

Objetivo

• Apuntar siempre a mejorar la relación costo / beneficio

• Si nos centramos sólo en mejorar la prueba, nos costará muy cara, y los beneficios serán menos redituables

• Incluso pueden llegar tan tarde, ¡que no nos sirva para nada!

Page 69: Charla en Universidad ORT 2014 - Testing técnico (automatización, mobile, performance y más)

EJECUCIÓN

• LÍNEA BASE• EJECUCIÓN DE

ESCENARIOS• REPORTE DE RESULTADOS

IMPLEMENTACIÓN

• AUTOMATIZACIÓN • MONITORIZACIÓN

DISEÑO

• CASOS DE PRUEBA• ESCENARIOS DE CARGA• INFRAESTRUCTURA DE

PRUEBAS• INDICADORES DE

PERFORMANCE

Page 70: Charla en Universidad ORT 2014 - Testing técnico (automatización, mobile, performance y más)

Diseño de pruebas

Definir objetivos del proyectoDiseñar casos de pruebaDiseñar escenarios de cargaCriterios de aceptaciónDeterminar InfraestructuraDatos de prueba

Page 71: Charla en Universidad ORT 2014 - Testing técnico (automatización, mobile, performance y más)

Automatizar Pruebas de Performance

• Algunas opciones de herramientas opensource– OpenSTA (opensta.org)– JMeter (jmeter.apache.org)

• Trabajan a nivel de protocolo

Page 72: Charla en Universidad ORT 2014 - Testing técnico (automatización, mobile, performance y más)

Servidor Web

ModellerModeller

Usuario Virtual

Http - RequestHttp - Responsegrabar

1

Se

abre

1.1Se abre

1.2

Acciones2

Terminar de grabar3

3.1

Tenemos el script

Gateway(Proxy)Browser

Http - Request

Http - Response

Http - Request

Http - Response

Page 73: Charla en Universidad ORT 2014 - Testing técnico (automatización, mobile, performance y más)

Performance Test Script

Depending on the application

1 line in Selenium is equivalent to 200 lines in OpenSTA

Page 74: Charla en Universidad ORT 2014 - Testing técnico (automatización, mobile, performance y más)

GXtest

• Automatizar caso de prueba– Mucho más fácil, nivel de interfaz y no de protocolo– Generar script de OpenSTA o JMeter

• Un proyecto de pruebas de performance se puede hacer 10 veces más rápido

• Foco en lo importante, menos tiempo automatizando

• Se ajustan los cambios más fácil

Page 75: Charla en Universidad ORT 2014 - Testing técnico (automatización, mobile, performance y más)

Monitorización

INTERNET

Clientes Routers Switches Web Servers Firewall Applications

ServersBases de

Datos

Page 76: Charla en Universidad ORT 2014 - Testing técnico (automatización, mobile, performance y más)

Performance Testing Methodology

• Vázquez, G., Reina, M., Toledo, F., de Uvarow, S., Greisin, E., López, H.: Metodología de Pruebas de Performance. Presented at the JCC (2008).

Test Design Automation

Execute

Analyze Fix Between 30% and 50% in

automation tasks

Page 77: Charla en Universidad ORT 2014 - Testing técnico (automatización, mobile, performance y más)

Ejecución – Plan de Pruebas

• BaseLine– Mejor tiempo posible– Iterativo para tener datos estadísticos

• Escenario– Incremental– Comenzar con un 20% de la carga– Escalar hasta llegar al 100%

Servidor WebServidor Web

Servidor WebServidor Web

Page 78: Charla en Universidad ORT 2014 - Testing técnico (automatización, mobile, performance y más)

Análisis de métricas

• Buscar patrones de comportamiento• Correlaciones entre eventos

Page 79: Charla en Universidad ORT 2014 - Testing técnico (automatización, mobile, performance y más)

Patrones

0

500

1000

1500

2000

2500

3000

3500

4000

4500

15:4

0:02

15:4

0:45

15:4

1:31

15:4

2:17

15:4

3:04

15:4

3:50

15:4

4:36

15:4

5:22

15:4

6:08

15:4

6:54

15:4

7:40

15:4

8:26

15:4

9:12

15:4

9:58

15:5

0:45

15:5

1:31

15:5

2:16

15:5

3:02

15:5

3:49

15:5

4:34

15:5

5:21

15:5

6:07

15:5

6:56

15:5

7:39

15:5

8:25

15:5

9:12

15:5

9:58

16:0

0:44

16:0

1:30

16:0

2:16

16:0

3:03

16:0

3:49

16:0

4:36

16:0

5:22

16:0

6:08

16:0

6:54

16:0

7:40

16:0

8:26

16:0

9:12

16:0

9:58

Tiem

po R

espu

esta

(ms)

Page 80: Charla en Universidad ORT 2014 - Testing técnico (automatización, mobile, performance y más)

¡Cuidado!

• Asegurarse que los distintos componentes tienen la hora sincronizada lo más preciso posible.

• De otro modo se puede dificultar el análisis.• (o llegar a conclusiones erróneas)

Page 81: Charla en Universidad ORT 2014 - Testing técnico (automatización, mobile, performance y más)

Patrones

Nunca supera el 25% de CPUTiempos de respuesta muy malos¿Por qué no utiliza más recursos si hay?¿Y si les digo que el CPU tiene 4 núcleos?

Page 82: Charla en Universidad ORT 2014 - Testing técnico (automatización, mobile, performance y más)

Patrones

• Luego de media hora de ejecución – CPU al 100%

• ¿Siempre es un problema de CPU?

• La JVM si se queda con poca memoria llega un momento en que el proceso de Garbage Collection consume mucho CPU

Page 83: Charla en Universidad ORT 2014 - Testing técnico (automatización, mobile, performance y más)

Causas

• Los problemas de performance pueden tener distintas causas– La prueba – Lógica– Infraestructura

• Solo analizando los resultados y el funcionamiento del sistema (y de la prueba) se puede ver dónde esta la causa

Page 84: Charla en Universidad ORT 2014 - Testing técnico (automatización, mobile, performance y más)

¿Qué estamos probando?

Base de datosJVM

Aplicación

Sistema operativo

Hardware

Servidor de aplicaciones

HTTP

Aplicación

Aplicación

Page 85: Charla en Universidad ORT 2014 - Testing técnico (automatización, mobile, performance y más)

Errores comunes

• En la base de datos– Bloqueos de tablas– Falta de índices– SQLs ineficientes– Problemas de tamaño de tablas

• Falta de depuración / limpieza de datos

Page 86: Charla en Universidad ORT 2014 - Testing técnico (automatización, mobile, performance y más)

Errores comunes

• En el Web Server– Configuración de máquina virtual (JVM / .Net

Framework)– Pool de conexiones

• En la lógica de la aplicación – Algoritmos – Zonas de mutua exclusión– Pérdida de memoria (Memory Leaks)

Page 87: Charla en Universidad ORT 2014 - Testing técnico (automatización, mobile, performance y más)

Errores comunes

• Problemas de hardware– Dimensionamiento (Sizing)– Conexiones mal armadas– Un elemento con problemas

• Una vez nos dieron un hub en lugar de un switch

Page 88: Charla en Universidad ORT 2014 - Testing técnico (automatización, mobile, performance y más)

Bitácora

• Llevar una bitácora completa de los cambios sobre:– Aplicación

• Software de base• Infraestructura

– Prueba • Evaluar si se implementan los cambios

derivados de la propia prueba durante el proyecto

Page 89: Charla en Universidad ORT 2014 - Testing técnico (automatización, mobile, performance y más)

Baselines

15/02/08

ESCENARIO 20%

16/02/08

.- se aumenta a 1GB el Heap del NSBT..- actualización GxClassR..- eliminación de la transacción 8 (Journal de Movimientos)

.- se cambia el hub de las generadoras por un Switch de 100Mb..- cambios en el tamaño del pool de Conexiones de GeneXus..- se habilita el caché de GeneXus..- cambio de Clases en Bantotal parautilizar “select top”..- se quita el sistema de firmas del ambiente de pruebas.

ESCENARIO 50%

20/02/08

ESCENARIO 75%

21/02/08

.- cacheo de tabla de perfiles.

.- debug desabilitado.

.- Programa GETALERT modificado para no Update permanente..- en AS400 se asignaron 2GB a una agrupación de memoria que estaba en 1.2GB..- se aumentaron las CPW de 8.000 a 10.000 en la partición.

ESCENARIO 100%

21/02/08

.- Se corrigen problemas detectados en la transacción de Factoring..- se aumentaron las CPW de10.000 a 12.000 en la partición..- se actualizaron las clases sincronizándolas con las de producción

ESCENARIO 150%

04/03/08

Page 90: Charla en Universidad ORT 2014 - Testing técnico (automatización, mobile, performance y más)

Skills del performance tester

• Neceisdad de ser – “mid-level everything”– Multi-disciplinario.

• Conocimiento de distintas:– Tecnologías– Arquitecturas / protocolos– Herramientas

• Generación de carga• Monitorización

Page 91: Charla en Universidad ORT 2014 - Testing técnico (automatización, mobile, performance y más)

Resumen

Gen

erar

la c

arga

Recolectar y Analizar

Datos

Realizar

Correcciones

INTERNET

Clientes Routers Switches Web Servers Firewall Applications

ServersBases de

Datos

Servidor WebServidor Web

Servidor Web

Tool Tool

1

1.11.2

2

3

3.1

Tenemos el script

GatewayBrowser

Http - Request

Http - Response

Http - Request

Http - Response

Page 92: Charla en Universidad ORT 2014 - Testing técnico (automatización, mobile, performance y más)

http://www.abstracta.com.uy/

http://blog.abstracta.com.uy

@gxtest

¡A testear!Testing técnico

Federico [email protected]

@fltoledo