Jornada de Calidad 2015 (Universidad ORT, Buenos Aires, Argentina) - Mobile testing: ¿cómo...

66
PhD. Federico Toledo federico.toledo@abstracta. com.uy Twitter: @fltoledo Mobile Testing Los nuevos desafíos

Transcript of Jornada de Calidad 2015 (Universidad ORT, Buenos Aires, Argentina) - Mobile testing: ¿cómo...

Presentacin de PowerPoint

PhD. Federico [email protected]: @fltoledoMobile TestingLos nuevos desafos

Una breve presentacinbit.do/librodetesting

Community+270

+180http://www.meetup.com/Testing-Uy/http://www.nahual.uy+15 colaboradores3 chicos trabajando+30 formadoshttp://testing.uy

Aprovechemos la comunidad, aprovechemos la cantidad de empresas y universidades con foco en mejorar la industriaTesting Uy ms de 270 inscriptos el da anteriorMeetup Smense para debatir y proponer temas y discusiones en meetup.comApoyen los Open Device Lab !3

Por qu laburs en testing?No conseguiste otra cosa mejor?Es aburridoEs repetitivoNo tiene desafosEs el trabajo para el mal programador

4

#testingrocks

Hablemos deMobile testingPerformanceUsabilidad Testing basado en riesgosEl testing no es aburridoNo es repetitivoTiene grandes desafos

Les aseguro que en todas estas cosas que vamos a ver ac, veremos que el testing no es aburrido, no es repetitivo, tiene desafos6

Hablemos deMobile testingPerformanceUsabilidad Testing basado en riesgos

7

Usuarios acostumbrados a usar el celular en todo momento y a exigir cada vez ms velocidad, usabilidad, etc.

Los usuarios afectan el mercado, comentarios y calificaciones en GooglePlay o AppStore.

Performance+60% de los problemas de las apps que fracasan son de performance.Gold Standard era 6s, luego 3s, Google apunta a 1s.El usuario espera que en su cellular funcione mejor que en us PC.

No s de dnde saqu esa estadstica, pero si la repetimos 1000 veces se convierte en verdad10

Performance en mobile

Performance Client SideWebapp PageSpeed Insights developers.google.com/speed/pagespeed/insights Webpage Test www.webpagetest.orgSiteSpeed run.sitespeed.io Yslow www.yslow.org Nativa Monkop www.monkop.com

PageSpeed InsightsPerformance y usabilidad.

Informacin para optimizacin del lado del cliente: Web desktopMobile

Basado en best-practices.

Luego de que la pgina es analizada, el Page Speed despliega una lista de los 29 escenarios comentados anteriormente clasificados segn 4 colores (verde, amarillo, rojo, y azul) y ordenados de acuerdo a su importancia junto con una valoracin general de la pgina.

13

PageSpeed InsightsLuego nos plantea cmo solucionarlo:

PageSpeed InsightsLuego nos plantea cmo solucionarlo:

Optimizar trfico

Performance Client SideWebapp PageSpeed Insights developers.google.com/speed/pagespeed/insights Webpage Test www.webpagetest.orgSiteSpeed run.sitespeed.io Yslow www.yslow.org Nativa Monkop www.monkop.com

by

Monkop

Monkop

Monkop

Explorando la app de FIFA

Todo con lo de FIFA

Ms de 1000 apps probadasMs de 40 betatesters

Esto es lo que tenemos hoyEvaluamos ya ms de 1000 aplicaciones, encontrando oportunidades de mejoras para todas ellas.

Hay una versin beta que se est usando, por ahora gratis por perodo de evaluacin, sin estar facturando an.22

Explorando otras aplicaciones

Encuentro GeneXusMarcaFotocasaLa LigaVivaVideo

ac estn los top de espaa para androidhttp://www.appannie.com/apps/google-play/top/spain/overall/

23

Monkop

Reporte de ejemplo: https://goo.gl/bMf46T

Performance en mobile

Performance Server SideSimulacin de cargaConcurrencia Usuarios virtuales

Mostrar primero qu se necesita para hacerlo en forma manualDe todos modos se necesita automatizacin, el sistema, la infraestructura y todo esoLa complicacin es la coordinacin y repetitibilidad de las pruebasAh metemos herramientas de generacin de carga en forma automatizada y soluciona mucho estos problemas y baja costosCon pocas mq

Performing load testing without an automated load-testing tool is problematic. Manual load testing is costly, time consuming, and not practical. With manual load testing, it is difficult to replicate the tests over and over again; there is no repeatability. It is almost impossible to simulate tens of thousands of users, while coordinating time, people, machines and the overall testing environment. Also, because it is hard to replicate the tests over again, the results become difficult to analyze.

Automated load testing tools on the other hand allow QA professionals to re-run the exact tests over and over again with different premises. With an automated load-testing tool, QA can simulate load conditions, such as number of sessions per hour and then simulate users accessing the application at the same time. For example, QA can run a test that simulate a load of 100 users, then with 200 users, up to tens of thousands of users. At each load, QA will find out how well the application scales and behaves. Also, automated load testing tools allow QA professionals to easily gain access to client side response time and server statistics, such as CPU and memory utilization.With an automated load-testing tool, QA can gain repeatability, reusability, and results that matter. Automated load-testing tools also allow Managers to utilize their QA staff and computer resources more efficiently in order to ensure the optimum stability, responsiveness, scalability, and throughput of an application before it is deployed

uinas y sin requerir coordinacin con 100s de personas podemos simular su uso.27

Automatizacin / robotizacin

El esquema no lo planteamos nosotros, sino que es lo que se usa

Se pueden llegar a hacer las pruebas manuales (simulaciones) + las pruebas de performance en concurrencia

Easy to useWorkflow bar guides you through all stepsSingle point of control: Health control for agents as well as automatic agent detection, VUser load balancing, remote agent setupPowerful project concept

PowerfulReplaces tests with virtual users (vs. manual load testing)Automatically synchronizes all virtual users (vs. manual load testing)Systematic and reproducible (vs. manual load testing)Runs thousands of VUs on a single machine (TrueScale technology !!!)IP spoofing and DNS lookup with full scalability (without any penalty on performance or scalability)Various TrueLog formats

AccurateAccurately simulates the load of realistic usersTrueCacheTrueModemTrueLogReliable error detection on application level (automated link verification)

Isolate problems simply and quickly throughContent verifications, even under heavy loadVisual logs that show you the click paths to your errors (TrueLog On Error)Detailed response time breakdown analysis (also on error e.g. threshold exceeded during a load test)Real-time performance monitors for your back-end systemsIn-depth management reports

29

Cmo se prepara un UV?

30Para entender lo que significa grabar un script, vamos a ver cmo lo hace

Generalmente lo que se hace es que la herramienta se ponga en el medio de forma de proxy. De esta manera los pedidos HTTP van a pasar por ah.-

Automatizacin en MobilePor lo general es ms fcil que en webInvocacin a servicios REST

Viajan menos datos, menos para parametrizar

Ejecucin Plan de Pruebas

BaseLineMejor tiempo posibleIterativo para tener datos estadsticos

EscenarioIncrementalComenzar con un 20% de la cargaEscalar hasta llegar al 100%

Baseline Ya podemos ir analizando los tiempos unitarios. Si con un nico usuario esto no funciona en los tiempos que establecimos en un inicio como aceptables, entonces la carga no va a funcionar tampoco en los tiempos que nos propusimos. Adems nos servir como comparacin de rendimiento ante carga y rendimiento standalone.Se ejecutan varias iteraciones para tener resultados estadsticos, y poder as descartar casos anmalos que se pueden dar.Escenarios comenzamos con una pequea carga. Nos sirve tambin para verificar que los scripts y el resto de los componentes de prueba estn funcionando bien antes de lanzar la carga objetivo. Si tiramos el 100% de la carga al comienzo y nos da muchos errores o problemas, es ms dificil atacar eso, q ir incrementando desde pocas cantidades ya que los problemas irn saltando de a uno.

32

BlazeMeterhttps://blazemeter.comURLPrueba de JMeter Prueba de Webdriver (Selenium)

Hablemos deMobile testingPerformanceUsabilidad Testing basado en riesgos

34

Qu es la usabilidad?

Una forma interesante y sencilla de explicar que es la usabilidad es haciendo referencia a la tetera para masoquistas del artista Francs Jacques Carelman. En ste elementos estn presentes todas las funciones, cumple con todos los requisitos, pero es muy difcil sino imposible concebir su uso normal sin inconvenientes.

Qu es la usabilidad?

La usabilidad es la disciplina que se encarga de construir ese intangible que hace que las distintas funciones de algo puedan ser utilizadas por los usuarios sin inconvenientes, con la menor dificultad posible.

Problemas que vienen de la propia tarea que desempea y problemas que provienen del uso de la propia herramienta.

La usabilidad tiene por objetivo reducir al mnimo las dificultades de uso inherentes a una herramienta informtica

Miro y EntiendoLeo y EntiendoPienso y Entiendo

Miro, leo, pienso: tres niveles de interaccin

A nuestra mente no le gusta pensarMary Poppendiek en giles 2015http://agiles2015.agiles.org/es/?page_id=1943

Cmo probamos usabilidad?Les comparto un par de estudios interesantes.Algunos los hacemos nosotros, otros con un partner.

Pruebas con usuarios

Usabilidad en mobile

Checklist Arranquemos con las heursticas de Nielsen

Visibilidad del contexto del sistema.Relacin entre el sistema y el mundo real.Control y libertad del usuario.Consistencia y estndares.Prevencin de errores.Reconocer es mejor que recordar.Flexibilidad y eficiencia de uso.Esttica y diseo minimalista.Ayudar a los usuarios a recuperarse de errores.Ayuda y documentacin.

Hablemos deMobile testingPerformanceUsabilidad Testing basado en riesgos

43

Testing basado en Riesgo

Los dispositivos ms usados.

Testing basado en Riesgo

Menos recursos.

Los que no hemos probado.

Dispositivos ms nuevos.

Testing basado en Riesgo

Seleccin de dispositivosAnlisis de riesgo:Cules son los ms usados?Cules son los que tienen mayor probabilidad de falla?

(si no funciona la aplicacin para los dispositivos ms usados, tendremos el mayor impacto negativo)Quiz los que tienen menos recursos, los tamaos de pantalla que no hemos probado, etc.

47

Anlisis de riesgoEsto debemos analizarlo segnSistemas operativosAndroid, iOS, Blackberry, etc.Para cada uno, sus versiones.Tamaos de pantallaFabricantes Aplica en especial para Android

Diversidad en AndroidFuente: http://developer.android.com/about/dashboards/index.html

Diversidad iOSFuente: http://david-smith.org/iosversionstats/

Armin comparti por twitter esta informacin actualizada

Estadsticas solo al inicio

Las estadsticas sirven para el inicio cuando no sabemos nada de nuestros usuarios.

Tip - Elegir DevicesAl menos 1 gama baja y 1 gama alta

Pero cuntos?Entre 5 y 10 dispositivos.

?????

Por ah se cuenta que el nmero de dispositivos a probar es entre 5 y 10

De dnde los saco?Cada empresa debera tener su laboratorio?Bastante ineficiente y caro. Cada empresa tendra una cantidad de celulares (alto costo) y no los usaran todo el tiempo.Alternativa:Compartir.

Open Device Lab

Open Device Lab

Donaciones de particularesConvenios con Movistar e Intel

Celulares a disposicin GRATIS

Cloud de celulares

Gran variedad de dispositivos.Cmo funciona:Elegir dispositivo.Instalar la app bajo pruebas en el dispositivo remoto.Probar! Se tiene control total.

Cloud de celulares

ConsideracionesSe paga por uso.Un poco lento. Se usa el mouse.

Cloud de celulares

Cobertura y tiempoSe puede considerar la cobertura en el tiempo.Ejemplo: ejecutar en distintos browsers.Ejecutar algunas funcionalidades en Internet Explorer, otras en Firefox y otras en Chrome.Para el siguiente ciclo de pruebas se toman distintas combinaciones.La cobertura se mejora en el tiempo.

Cobertura y tiempoFecha 1 (v1)Fecha 2 (v1.1)Fecha 3 (v2)Fecha 4 (v2.5)Suite PrioritariaIE, FF, Ch, OPIE, FF, Ch, OPIE, FF, Ch, OPIE, FF, Ch, OPSuite 1IEFFChOPSuite 2FFChOPIESuite 3ChOPIEFFsuite 4OPIEFFCh

IE = Internet ExplorerFF = FirefoxCh = ChromeOP = OperaMismo concepto aplicable aSistemas operativosDispositivos mvilesEtc.

Versin 1Test Suite Critica Todos los dispositivosTest Suite 1iPad MiniTest Suite 2iPhone 5STest Suite 3Galaxy TabTest Suite 4XperiaTest Suite 5ACE

Versin 2Todos los dispositivosACEiPad MiniiPhone 5SGalaxy TabXperia

Versin 4Todos los dispositivosGalaxy TabXperiaACEiPad MiniiPhone 5S

Versin 3Todos los dispositivosXperiaACEiPad MiniiPhone 5SGalaxy Tab

Tiempo

Versin 5Todos los dispositivosiPhone 5SGalaxy TabXperiaACEiPad Mini

Cobertura y tiempo

Todo lo tengo que probar en todos los dispositivos?

S5Nexus 4HTC OneTest 1%

Test 2

%

Test 3

%S5Nexus 4HTC OneTest 1

%

Test 2

%Test 3%

S5Nexus 4HTC OneTest 1

%Test 2%

Test 3

%

Ejecucin 1Ejecucin 2Ejecucin 3Cobertura y tiempo

Que pasa si tenemos muchos casos de prueba y queremos ejecutarlos en varios dispositivos pero no disponemos del tiempo para ejecutar todos los casos en todos los dispositivos? Ya sea porque tenemos realmente demasiados dispositivos o porque, por ejemplo, queremos que las pruebas de regresin se ejecuten rpidamente luego de cada commit para darle un feedback al desarrollador.

Supongamos por ejemplo que tenemos tres casos de prueba y tres dispositivos pero tenemos tiempo solo para ejecutar tres pruebas. En la primera ejecucin se van a elegir en que dispositivos ejecutar de la siguiente maneraLuego en la segunda ejecucin y en la tercera ejecucinSiempre, en cada ejecucin, ejecutando todos los casos de prueba, pero no en todos los dispositivos.

Como ven, luego de la tercera ejecucin nos aseguramos que todos los casos de prueba ejecutaron en todos los dispositivos

Cobertura y tiempoS5Nexus 4HTC OneTest 1%%%Test 2%%%Test 3%%%

Siguen pensando que el testing es aburrido y sin desafos tcnicos?testing es aburrido y sin desafos tcnicos?

PhD. Federico [email protected]: @fltoledoGracias!Mobile TestingLos nuevos desafos

#testingrockshttp://www.slideshare.net/FedericoToledo

Subir las ppts a slideshare67

Se abre

1.1

Se abre

1.2

Acciones

2

Terminar de grabar

3

3.1

Tenemos el script

Gateway(Proxy)

Browser

Http - Request

Http - Response

Http - Request

Http - Response

Ttulo del formularioModeller

Servidor Web

Http - Request

Http - Response

grabar

1

Servidor Web

Servidor Web

Servidor Web

Servidor Web