Jesús del Rey, EFRON

Jesús del Rey Ramírez,
Gerente del Centro de Excelencia, Calidad y Pruebas en Efron Consulting

Cuando realiza pruebas en una aplicación de software, el tester se fija unas metas que aporten calidad al producto: ¿Funciona? ¿Funciona como se esperaba? ¿Satisface las necesidades de los usuarios?

Es un mundo conocido. Sin embargo, cuando nos enfrentamos a pruebas de aplicaciones móviles, se nos presentan nuevos retos que requieren el uso de estrategias diferentes a las tradicionales, por sus propias características: multidispositivos, redes, diferentes sistemas operativos, interface, usabilidad, tipología de aplicaciones, performance y comportamiento ante eventos externos. La movilidad presenta nuevos retos, distintos a los de las aplicaciones de software para PC’s.

Los dispositivos móviles constituyen el desafío más obvio para las pruebas móviles. Existen, potencialmente, decenas de miles de dispositivos cliente que se podrían utilizar para acceder a su aplicación móvil o sitio web, y que por tanto deben ser considerados al probar sus desarrollos.

El número de dispositivos con el que realizamos las pruebas se puede reducir hasta cierto punto, pero cada vez que se efectúa esa reducción, estamos tomando el riesgo de ignorar la posibilidad de fallo de la aplicación en algunos dispositivos, bloqueando a clientes potenciales.

Para manejar este desafío, tenemos tres opciones: uso de dispositivos reales, emulación de dispositivos o una combinación de ambos. Los dispositivos reales tienen la ventaja de poder probar todas las limitaciones y peculiaridades presentes en la combinación actual de hardware cliente y firmware en las manos de sus consumidores objetivo. Sin embargo las pruebas con dispositivos reales son muy costosas y complejas.

Los dispositivos emulados, por otro lado, son relativamente más fáciles de manejar. Podemos cambiar el tipo de dispositivo simplemente cargando un nuevo perfil, y al instante tendremos un nuevo dispositivo que se presenta a la aplicación Web móvil de la misma forma que el dispositivo real haría. Los emuladores son rentables ya que con una sola plataforma, mediante actualizaciones frecuentes de perfiles de dispositivo podemos probar todos los dispositivos del mercado.

Su gran desventaja es que carecen de las manías, defectos y características inherentes al uso de un dispositivo real. Además, no son sensibles a las condiciones ambientales que pueden afectar a su comportamiento. Si usted quiere saber lo bien que un dispositivo realiza una operación en una ubicación exacta, como un estadio lleno de gente, lo real es la mejor opción.

Una tercera vía consiste en seleccionar una mezcla de ambos: emulación y prueba sobre dispositivo real. Se aconseja arrancar el plan de pruebas en un entorno emulado para aprovechar la velocidad y la diversidad de dispositivos que este puede proporcionar. En las fases tempranas de desarrollo realizamos pruebas con dispositivos emulados, y en fases más avanzadas, podremos añadir dispositivos reales para validar que las aplicaciones están funcionando como se esperaba y certificar que se han cumplido todos los requisitos y objetivos del cliente.

Las redes, además, nos plantean un desafío regional.  Cada operador móvil puede soportar múltiples tecnologías de red. Cada red tiene una combinación única de infraestructura de red de túneles. Cada operador de red ha puesto en marcha sistemas que se comportan de forma ligeramente diferente de unos proveedores a otros para realizar el túnel requerido.

No es posible resolver el desafío de la red sin tener en cuenta la ubicación. Es un hecho que para probar completamente la aplicación en la infraestructura de red de un operador en particular, debe estar conectado a la red de destino. Por lo tanto, si deseamos probar contra un operador francés, debemos estar en Francia, y si queremos probar contra un operador chino, debemos estar en China.

Viajar a todos los operadores de red que necesitamos dar soporte puede ser muy caro. Para resolver este problema, podremos utilizar emuladores que nos reducirán los costes y que simulen los operadores. Otra opción es el uso dispositivo real en la nube. Esta solución permite a un usuario en un PC o un cliente Web el control local de un dispositivo de forma remota.

Una vez que conocemos los desafíos asociados a las pruebas de aplicaciones móviles nativas y Web, debemos valorar qué estrategia de pruebas debemos aplicar. Lo lógico es usar una combinación de herramientas y técnicas de prueba para cumplir con sus requisitos de calidad. Pero por lo general podemos seguir las siguientes pautas:

1. Uso de emuladores de dispositivos móviles. Son muy rentables, ya que le permiten hacer muchas pruebas de forma rápida y eficiente.
2. Uso de dispositivos reales remotos en la nube. Esto nos permitirá poner a prueba nuestras aplicaciones en dispositivos que no tengamos y en redes remotas.
3. Automatizar siempre que sea posible. Emuladores y soluciones de dispositivos reales remotos que soporten la funcionalidad de la escritura y la reproducción son ahorradores de tiempo que permiten ejecutar más casos de prueba con un mayor grado de coherencia.

Sin duda alguna, una solución que integre dispositivos reales y emulados es la ideal.