Noticias > Artículos de opinión

Una aplicación con errores es una inversión perdida

14 Diciembre, 2015

Entrevista a Raquel Jiménez Garrido, Gerente de Operaciones de MTP

Las aplicaciones móviles tienen cada vez más peso en la actividad de todo tipo de organizaciones. A la hora de desarrollar una aplicación los objetivos siempre deben obtener una conversión en ventas y mejorar la reputación de marca. Por ello, es muy importante asegurarse de que está perfectamente construida. Si no es así, el esfuerzo destinado a su desarrollo no habrá servido de nada.

Las empresas han tenido que adaptar sus tecnologías a la realidad móvil en un corto espacio de tiempo, lo que implica el uso de nuevas aplicaciones y soluciones en sus procesos de negocio ¿Cómo se está produciendo este cambio?

Las empresas están avanzando por el camino más lógico, comenzando por web mobile, usando tecnologías como HTML5 y frameworks como Phonegap, que les permiten tener presencia en el mercado a través de una aplicación de movilidad, aunque sea con funcionalidades básicas, en sistemas operativos y terminales específicos, y evolucionar hacia sus propias aplicaciones nativas para poder dar cobertura a funcionalidades más complejas, así como a un mayor número de sistemas operativos y terminales.

¿Qué implicaciones tiene este nuevo escenario desde el punto de vista de la calidad del software?

Desde el inicio de su construcción o desarrollo es necesario probar las aplicaciones móviles teniendo en cuenta, precisamente, su propio contexto de movilidad y considerando el cumplimiento de las características de funcionalidad, usabilidad, seguridad y rendimiento de las mismas.

Así, a la hora de abordar la estrategia de desarrollo de aplicaciones de movilidad es importante analizar la arquitectura de la aplicación existente. También es necesario asegurar la coherencia entre el desarrollo de la web clásica y la parte de movilidad con el finde facilitar y ahorrar costes de las pruebas. Podemos decir que la complejidad del aseguramiento de la calidad del software en aplicaciones móviles radica en la existencia de diferentes sistemas operativos y multitud de modelos de dispositivos. De esta forma, una aplicación debidamente construida y de calidad será aquella que funcione correctamente en todos los dispositivos móviles y bajo todos los sistemas operativos existentes en el mercado.

¿Cómo se asocia la tipología de pruebas de software al uso de las aplicaciones móviles?

El objetivo es desarrollar una aplicación móvil que permita a la empresa propietaria obtener una conversión en ventas, mejorar la reputación de marca, cumplir las expectativas de los usuarios y minimizar el tiempo de aprobación de la aplicación en los diferentes market stores.

Las pruebas funcionales deberían llevarse a cabo considerando las características propias de estos dispositivos. Así, resulta diferente el uso que se hace y la presentación de la información en un smartphone respecto a una tablet o un ordenador. Además, la aplicación debe ser capaz de guardar, tanto de forma efectiva como selectiva, la información, dejando en el servidor aquellos datos que precisen de recursos adicionales. Finalmente, es necesario observar el comportamiento y fallos de la aplicación cuando pueda verse afectada por una situación de batería baja, entrada de llamadas o mensajes mientras realizamos una operación con la misma.

Muchos de los fallos funcionales de una aplicación móvil pueden ser evitados fácilmente, así como sus costes asociados, mediante la puesta en marcha de acciones de aseguramiento de la calidad del software desde las primeras fases de desarrollo de la aplicación. No olvidemos que si el usuario percibe que una App móvil le resulta complicada cuando la utiliza, le retrasa y no puede cubrir sus necesidades en el tiempo y forma que espera, la abandonará por otra que sí lo haga.

¿Qué otros factores influyen en el control de calidad de las aplicaciones móviles?

Por un lado, aparece el concepto de usabilidad de la aplicación. Aquí es necesario poner especial atención en el desarrollo de pruebas que permitan asegurar que el diseño e interfaz resultan sencillos e intuitivos, así como que el flujo de comunicación entre la App y el usuario se establece de forma natural y lógica.

Por otra parte, el comportamiento de una App móvil también preocupa al usuario desde el punto de vista de la seguridad, ya que están disponibles en dispositivos que pueden ser susceptibles de robo o de uso fraudulento. En este sentido, resulta imprescindible asegurar, entre otros factores, que la App mantenga la confidencialidad de los datos privados facilitados, la verificación de que el usuario es quien dice ser, los diferentes perfiles que puede tener un usuario dentro de la misma aplicación o el autoguardado de un histórico de operaciones o actividades realizadas.

¿El abandono del servicio por parte del usuario es una preocupación para las empresas?

Por supuesto. Es necesario que las empresas controlen los posibles errores en sus aplicaciones móviles para evitar que el cliente abandone la aplicación debido a caídas o a un tiempo excesivo en su ejecución. Un alto consumo de batería, la velocidad a la que se desarrolla dependiendo del navegador utilizado o las características de cada sistema operativo, pueden ser factores que influyen de forma decisiva en este apartado, que solucionamos mediante la ejecución de pruebas de rendimiento.

La conexión a Internet, los distintos puntos de acceso, redes móviles, Wifi, etc, así como la recuperación de la aplicación si se produce una pérdida de conexión y handover entre distintos tipos de redes, son también consideraciones a tener en cuenta en lo que a pruebas de software se refiere.

Finalmente, es necesario prestar atención a los caracteres especiales de escritura de los diferentes idiomas, las monedas de cada país, los formatos de códigos postales, fechas, direcciones, números de teléfono, entre otros, que deberían visualizarse dependiendo de la zona geográfica en la que se encontrara el usuario.

¿Qué factores habría que tener en consideración si nos centramos en la calidad de las aplicaciones móviles desde el punto de vista de la propia ejecución de las pruebas?

En primer lugar, sería necesario conocer la naturaleza de la aplicación a probar. Estas aplicaciones pueden ser nativas, que presentan un mayor coste y un mayor desarrollo al tener que adaptarse a cada dispositivo; pueden tener naturaleza Web, que son más baratas y más fáciles de crear y mantener, funcionando correctamente en todos los dispositivos móviles, dependiendo únicamente de la conexión a internet y, finalmente, pueden tener naturaleza Híbrida, que reúnen las ventajas de las dos anteriores: reducción de mantenimiento, mayor contenido, construida para cada sistema operativo y conexión web para ampliar información.

En función del tipo de aplicación, sobre todo en las dos primeras, la forma en la que abordar las pruebas variaría, así como el uso de herramientas que se usarían para realizar las pruebas, sobre todo desde el punto de vista de automatización. De esta forma, cuando se trata de una aplicación nativa, las pruebas se inician en la instalación y ejecución de la aplicación, resultando necesario disponer de acceso al dispositivo para llevarlas a cabo. La funcionalidad y usabilidad ha de testearse en los diferentes dispositivos y, ya que las aplicaciones nativas tienen acceso al API, es conveniente probar también estas conexiones. En las aplicaciones web no es necesaria la instalación. Por su propia condición web deben probarse en los diferentes navegadores, prestando especial atención al tiempo de carga. Finalmente, en las aplicaciones híbridas, además de tener en cuenta todo lo anterior, es necesario considerar las pruebas de rendimiento de la integración de la parte web con el resto de la aplicación.

¿Ejecución de pruebas manual o automatizada?

Depende. En algunos casos, la única alternativa posible será llevarlas a cabo de forma manual. En otros, aunque se requiera definir una estrategia de pruebas para aplicaciones multiplataforma en múltiples dispositivos y con una mayor complejidad técnica, lo más interesante será acudir a la automatización. Hay que tener en cuenta que la mayor parte de desarrollos de movilidad están bajo metología ágil y la automatización de las pruebas es una premisa básica.

Un aspecto muy importante es garantizar que las pruebas a ejecutar aseguran el correcto funcionamiento de las aplicaciones en cualquier dispositivo móvil y bajo cualquier sistema operativo. En este punto, es posible asegurar que el software de una aplicación se comporta correctamente llevando a cabo las pruebas en emuladores/simuladores y dispositivos reales, cada uno de ellos indicado para diferentes momentos del desarrollo de una aplicación.

Así, los emuladores están especialmente indicados al comienzo del desarrollo, para poder llevar a cabo smoke-test rápidos con los que asegurar la funcionalidad básica del software y comprobar cómo funciona en los diferentes sistemas operativos. Existe una gran variedad de emuladores para todos los sistemas operativos móviles del mercado (Windows Phone, Android, IOS, Symbian, etc.), pero estos difieren del comportamiento real de un dispositivo físico. Cada fabricante posee su propio sistema operativo, de acuerdo a su dispositivo y con sus propias particularidades, por lo que ajustarse a un comportamiento real a través de un emulador aún no resulta del todo exacto. Por este motivo, es necesario complementar estas pruebas en emuladores con las realizadas en dispositivos reales, que pueden ser locales, es decir, ligadas al PC. Estas pruebas son, generalmente, rápidas, de bajo coste y orientadas a la funcionalidad, accesibilidad y experiencia de usuario.

Con carácter general, puede afirmarse que es conveniente llevar a cabo las pruebas unitarias y las de integración mediante emuladores y el resto de pruebas: de sistema, regresión, compatibilidad, GUI, rendimiento, seguridad y sincronización a través de dispositivos reales.

Para las pruebas en dispositivos reales ligados al PC, existen distintas soluciones en el mercado, de las que MTP es partner y que dan cobertura a la mayor parte de sistemas operativos como pueden ser la solución M-eux Test de Jamo Solutions o Silkmobile de Borland.

Por otro lado, aparecen las pruebas llevadas a cabo en dispositivos reales pero ejecutadas de forma remota a través de la nube (cloud testing), que permiten llevar a cabo pruebas con varios operadores, terminales o sistemas operativos; en este caso MTP cuenta con el partnership de herramientas como puede ser la de Mobile TestingKeynote de DeviceAnywhere, esta herramienta va más allá de las pruebas funcionales y permite hacer tanto monitorización como pruebas de carga en los terminales, pruebas de roaming en una localización determinada y posibilidad de programar y lanzar las pruebas de forma remota.

Otro punto importante es la forma en la que este nuevo set de herramientas se integra con la ya existentes en la organización. Si hablamos de metodologías ágiles, cómo se integran dentro del ciclo de integración continua y si hablamos de reporting, cómo los informes generados por este tipo de herramientas se pueden integrar con los generados por otras herramientas de pruebas existentes en la organización tipo HP ALM, Microsoft Visual Studio e IBM Rational.

La garantía de la calidad y correcto funcionamiento de las aplicaciones móviles radica en la combinación de ambas plataformas de pruebas, emuladores y dispositivos reales, todo ello haciendo uso de estrategias de automatización que permiten ahorrar costes y ganar eficiencia en el propio proceso de pruebas.

Si desea ampliar la información sobre la propuesta de Soluciones de Testing de MTP, no dude en ponerse en contacto con nosotros.

Compartir