Buenas prácticas y pasos a tener en cuenta cuando hacemos testing a una aplicación móvil web o nativa.
Better practices and steps to consider when we testing a mobile web application or native.
El objetivo de esta charla es brindarles buenas prácticas y pasos a tener en cuenta cuando hacemos Testing a una aplicación mobile web o nativa.
Esta charla la estaremos dividiendo en dos partes, en esta primera parte se abarcarán temas generales y en la segunda parte profundizaremos sobre la documentación generada y listas de chequeo (checklist) que se aplican.
A modo de introducción les traemos una gráfica que representa el auge que ha venido alcanzando la descarga de aplicaciones mobile a nivel mundial y el resultado que se espera obtener para el año 2020. El aumento considerable de aplicaciones mobile en el mercado conllevan a que la calidad sea un factor alto que pueda influir en la aceptación por parte de los usuarios. De ahí la importancia de conocer que debemos tener en cuenta a la hora de realizar Mobile Testing.
Entre los usuarios de dispositivos móviles, Android es la dominante, con más del 80% del mercado. iOS, el sistema operativo de Apple, es el segundo en cuanto a número de usuarios (15%), mientras que Windows Phone (2,3%), BlackBerry y Symbian no suponen una parte importante del mercado.
Resolución:
La resolución en los distintos dispositivos es muy variable.
Puede visualizarse completamente la interfaz de la app en dispositivos con alta resolución, pero pueden quedar ocultas funcionalidades de pantallas en dispositivos con baja resolución. Dificultándose al usuario acceder a funcionalidades importantes de la aplicación.
Las aplicaciones deben ser responsive y ajustarse correctamente a la resolución del dispositivo donde sea visualizada.
Densidad:
Es la cantidad de pixeles por pulgada. La densidad que presenten los dispositivos afectan en la correcta visualización o nitidez de la aplicación, en casos donde es visualizada en dispositivos con baja densidad puede llegarse a no distinguir correctamente las opciones, mensajes, logotipos, etc. que se visualizan en la app. Esto afecta a todos los usuarios en general, ya que utilizamos mayormente los dispositivos móviles al aire libre o en lugares con poca luz.
Equipo:
Las aplicaciones pueden ser desarrolladas para ser visualizadas en distintos equipos o dispositivos móviles como smartphones, Tablet, iPhone, iPad. Se cuenta con una amplia gama de variedades de estos equipos. Debemos tener en cuenta que la aplicación puede comportarse de manera distinta en diferentes equipos, es importante a la hora de realizar las pruebas, abarcar la mayor cantidad de tipos de dispositivos que sean utilizados por los usuarios. Podemos usar simuladores en estos casos cuando no contamos con todos los equipos necesarios.
Versionado:
Aunque Android está en su versión 6, aún queda una gran cantidad de usuarios con 4.x y muchos con 2.3.x.
Además esta plataforma ofrece la posibilidad de desarrollar una misma aplicación que se vea totalmente distinta en cada versión del SO.
Puede que una app funcione correctamente en una versión ‘’x’’ pero en otra ni se pueda instalar, por ejemplo los nombres de las bibliotecas de Android pueden cambiar de una versión a otra, y si bien poseen compatibilidades con una y otra, no siempre es así.
Los usuarios iOS tradicionalmente son "quick updaters”, pero las apps deberían brindar el soporte al menos para una (si no dos) versiones anteriores a la actual en iOS.
Pruebas funcionales: Las pruebas funcionales son de gran importancia y la combinación de estas con las pruebas automatizadas logra una mejor cobertura. La prioridad en estas pruebas debe estar enfocada según la criticidad y el impacto.
Registro y Login: Deben ser tareas que el usuario las distinga “sin pensar”. Si los usuarios no acceden fácilmente a la app, el esfuerzo en el resto de las funcionalidades habrá sido en vano. Si la app requiere usuario y contraseña, requieren un formulario de validación, es necesario asegurarse que el ingreso de la información sea bastante sencilla y que no provoque equivocación al usuario.
Modo portrait/landscape: La mayoría de los dispositivos móviles de hoy en día son touch y se encuentran dotados por sensores como el acelerómetro que nos permite saber cuando un teléfono cambia entre los estados portrait (vertical) y landscape (horizontal). Resulta una buena práctica asegurarnos de que la interfaz de la app se visualizará de una forma correcta en cualquiera de estos dos estados.
Opciones/Acciones del menú (Help, about, logout, etc): El menú debe hacer sencillo el acceso a los ítems comunes (Help, About, etc.) y a las funcionalidades críticas de la app.
Mensajes de error/éxito: Se debe especificar al usuario cuando una acción ha sido realizada correctamente y cuando ha sido fallida. Por ejemplo al realizar una búsqueda en la app y no encontrarse resultados asociados se debe informar al usuario que no existen resultados asociados a la búsqueda.
Títulos de pantalla: Los títulos de pantalla ayudan al usuario a ubicarse en la aplicación, permiten que el usuario reconozca fácilmente en que pantalla se encuentra en un momento determinado.
Scroll: Se debe probar el funcionamiento del scroll en la aplicación, al hacer swipe vertical o horizontalmente podemos comprobar su funcionamiento. Debemos tener en cuenta que los elementos que queden al finalizar el scroll queden visualizados correctamente y el usuario pueda acceder a ellos con facilidad.
Gestos/ Acciones básicas: (disponible en la siguiente diapositiva).
Checklist: Las listas de chequeos son utilizadas mayormente para evaluar la usabilidad que incluye criterios que miden la seguridad, rendimiento o de accesibilidad en las aplicaciones. Las listas de chequeo pueden estar enfocadas al objetivo de la aplicación. Contienen criterios de evaluación en forma de preguntas mayormente, donde el tester verifica el comportamiento de la app luego de ser realizado. Los criterios pueden tomar los estados de: No Procede, Correcto(Éxito: Si) o Incorrecto(Éxito: No), además se especifica el resultado obtenido luego del test y el dispositivo donde fueron evaluados los criterios. En la segunda parte de la charla estaremos profundizando sobre como trabajar con la misma y estaremos viendo ejemplos de su aplicación.
Layout y Diseño: Un diseño legible permite al usuario completar sus tareas más fácilmente. La app no debe ofrecer muchas funcionalidades o contenido que complique la navegación. Todos los elementos de navegación o interacción deben ser visibles en pantallas chicas.
Interacción: El flujo de la interacción debe ser natural en el uso de los gestos de selección y navegación. Si un botón está en una ubicación que el usuario percibe como “incorrecta” será un motivo de frustración. Si los links están muy juntos, la selección será más difícil.
Los usuarios móviles esperan que las aplicaciones respondan más rápido que los sitios tradicionales. Y analizan si permanecer con la app en la primer experiencia, analizando principalmente la performance e interfaz.
Es necesario cuidar la definición de los objetivos de performance, y estar preparado para las pruebas.
Tamaño de las app a la hora de descargarla para el dispositivo