Llegamos a ustedes gracias a:



Columnas de opinión

Extensión de la automatización de pruebas a las aplicaciones móviles

Por: Gal Tunik es gerente de producto, HP Functional Testing y HP Sprinter, Software de Hewlett-Packard

[15/08/2011] En la era delo instantáneo, no sorprende que los dispositivos móviles estén cobrando impulso. La gente se ha acostumbrado a acceder a la información en el momento que la deseen, y el dispositivo móvil es una forma de mantenerse conectado. En todas las industrias, las empresas se están dando cuenta de que para mantener la competitividad deben proporcionar a sus clientes formas de facilitar la conectividad diaria con el mundo. Sin embargo, para crear una aplicación móvil exitosa, es importante que las empresas realicen las pruebas necesarias para garantizar que esté preparada para el mercado.

La aceleración de este ímpetu se debe a la euforia entorno a las redes 4G súper rápidas, los códigos de barra, NFC y la realidad aumentada. Todo esto brinda atractivas oportunidades comerciales e innovación acelerada para las empresas. Cada vez más las empresas aumentan los esfuerzos y suman recursos para desarrollar aplicaciones móviles. El 24% de los ejecutivos a cargo de la estrategia móvil de su empresa reportó que aumentará los gastos a más del doble el próximo año, según una reciente encuesta independiente de Forrester Research sobre ejecutivos móviles. Además, el 46% dijo que aumentará el presupuesto.
Las aplicaciones móviles han revolucionado la forma en la que la gente hace negocios. Por ejemplo, el gerente de una tienda minorista puede verificar a través de su teléfono inteligente el momento exacto en que debe hacer inventario de productos en la tienda. Los enfermeros pueden acceder rápidamente a los registros de salud de los pacientes desde la sala de examen, y los representantes de ventas pueden realizar múltiples tareas e informar sobre el estado de las transacciones mientras están camino al aeropuerto.
Sin embargo, tal como sucede con cualquier tecnología emergente, pueden surgir varios desafíos únicos al desarrollar e implementar aplicaciones móviles. Las aplicaciones móviles no solo imitan el entorno del escritorio, tienen sus propios requisitos de interfase de usuario (IU), flujos de procesos comerciales y dependencias de infraestructura.
Asimismo, existe una cantidad cada vez mayor de dispositivos móviles: teléfonos inteligentes, PDA, tablets y dispositivos especializados tales como dispositivos manuales de escaneo y seguimiento para los empleados de entrega. En los últimos años, también surgieron varios sistemas operativos móviles diferentes. Para sumar incluso una mayor complejidad, existe una gama de opciones de implementación, como cliente pesado y liviano. Todo esto incrementa la presión de TI para desarrollar, trasladar y mantener aplicaciones móviles. También realza el riesgo de tener problemas de calidad y rendimiento.
Validación funcional
Una forma de reducir los errores consiste en garantizar que las aplicaciones móviles pasen por una validación funcional. Esto implica probar las aplicaciones para los dispositivos móviles, de forma similar a cómo se prueban las aplicaciones de escritorio, a fin de garantizar su facilidad de uso. La validación funcional se basa en los conceptos de colaboración, administración de activos de prueba, reusabilidad, reportes y análisis precisos. Y, al igual que en el mundo de las aplicaciones de escritorio, la mayoría de las pruebas de los dispositivos móviles actualmente se realizan de forma manual.
Hay gente que tiene dudas respecto a la precisión de las pruebas manuales. ¿Puede un ingeniero de prueba simplemente conducir hasta una ubicación remota e iniciar una sesión en el sitio web de la cooperativa de crédito para verificar el saldo de la cuenta de la misma? O, ¿pueden ver si todavía tienen una buena conexión de red mientras llevan un paquete a un campo de golf muy lejano? El problema con la prueba manual de las aplicaciones móviles es la falta de cobertura y escalabilidad, así como también los costos relacionados, especialmente si una aplicación debe ser probada varias veces para garantizar su desarrollo y calidad. Si bien un ingeniero de prueba puede introducir manualmente varias transacciones, no puede probar y controlar de forma continua la conexión para la disponibilidad de la aplicación o probar todas las permutaciones de escenario posibles. Asimismo, un evaluador no puede identificar los problemas rápidamente, solucionarlos y volver a realizar todas las pruebas requeridas para validar la solución.  
Otro debate popular consiste en si la prueba debe realizarse sobre el dispositivo físico de la aplicación o sobre emuladores. Sin embargo, la pregunta debería ser: ¿cómo deben probarse las aplicaciones nativas y las aplicaciones web móviles para lograr la calidad requerida?
Muchos especialistas de la industria argumentan que el uso de teléfonos para realizar las pruebas requiere de mucha logística en comparación con la prueba de la aplicación sobre un explorador o emulador normal. Sin embargo, a fin de garantizar el rendimiento y funcionamiento de las aplicaciones móviles, la prueba debe realizarse sobre teléfonos móviles por diferentes motivos que van de lo teórico a lo práctico.
* En primer lugar, las pruebas de usabilidad en emuladores y exploradores con cualquier extensión no representan lo que se mostrará en el dispositivo real. Con Android específicamente, los entornos "vanilla" emulados casi nunca representan el comportamiento real del teléfono, ya que los proveedores tienden a modificar el "código fuente" del teléfono y agregar su propio nivel de personalización.
* La prueba relacionada con el entorno es fundamental ya que las aplicaciones móviles dependen de la ubicación, acelerómetro y red. En pocas palabras, las pruebas no pueden realizarse en un entorno simulado.
* Otro factor es la interoperabilidad. Un teléfono móvil vive en un entorno comunicado y se comporta de forma acorde. Por ejemplo, una llamada entrante siempre tiene prioridad sobre cualquier aplicación que esté en uso. Es fundamental realizar una prueba de escenarios para ver qué sucede con la aplicación cuando se recibe una llamada, ya que esto sucede a diario.
* Como muchos usuarios de teléfonos móviles viajan hacia el exterior, debe realizarse la prueba correspondiente relacionada con la red. Por ejemplo, una aplicación desarrollada para Vodafone en el Reino Unido no garantiza que la aplicación funcionará en la red Verizon en los EE. UU. La neutralidad de redes no ha sido integrada en el mundo de los celulares, lo que significa que la manipulación y modificación de tráfico aún es muy común en el entorno de los celulares.
* Una inquietud común entre los usuarios de teléfonos móviles es la seguridad. La gente es sensible a los datos, como el número de una cuenta bancaria que permanece en el teléfono, o si las contraseñas aparecen en la pantalla. Las pruebas de este tipo de asuntos de seguridad en un entorno simulado no es productiva, porque lo que debe probarse es el comportamiento del teléfono real. Otro desafío es que no todos los teléfonos tienen los mismos diseños de seguridad, y por ello cada dispositivo debe probarse de forma individual.
Validación de rendimiento
Un segundo aspecto de la proliferación de las aplicaciones móviles es la necesidad de realizar una validación de rendimiento. Las aplicaciones deben validarse para garantizar el cumplimiento de las expectativas de rendimiento. Las expectativas del usuario respecto a estas aplicaciones incluso pueden ser superiores a las expectativas de los usuarios de aplicaciones de escritorio. La validación de rendimiento de las aplicaciones móviles es fundamental y, a veces, más compleja que la validación de las aplicaciones de escritorio.
Las aplicaciones móviles, por su naturaleza, responden a un deseo, así como también a la necesidad de acceder a información las 24 horas, los 7 días de la semana. Muy a menudo son desarrolladas para brindar acceso al subconjunto fundamental de aplicaciones de escritorio. Estos microprocesos comerciales deben estar siempre disponibles para garantizar que las empresas sigan funcionando, incluso cuando no hay nadie en la oficina.  
Otro factor importante de rendimiento es que las aplicaciones móviles se ven afectadas por las condiciones de la red móvil, tal como limitaciones del ancho de banda, que son más pronunciadas que en las redes de línea terrestre. Estas restricciones pueden afectar de forma adversa la comunicación entre un teléfono y los servidores posteriores.
Se debe automatizar la validación de rendimiento para llegar a una gran cantidad de usuarios simulados que tendrán acceso a la aplicación probada en cualquier momento. Esto puede lograrse mediante usuarios simulados que corren sobre emuladores y exploradores. Sin este tipo de automatización, es casi imposible crear una carga realista sobre los servidores y la infraestructura de la aplicación.
Cuando se replican las condiciones adecuadas de red, se debe garantizar que el usuario de un teléfono móvil simulado experimente la misma limitación de ancho de banda y las demoras de red que experimentaría el usuario de un teléfono móvil real. Para completar la prueba, los teléfonos móviles reales que ejecutan los procesos comerciales relevantes, deben correr de forma paralela a la prueba de rendimiento automatizada. Esto permitirá medir la experiencia del usuario final y al mismo tiempo probar el comportamiento de los servidores y de la infraestructura de la aplicación bajo carga.
Para probar las aplicaciones móviles de forma adecuada, conviene reunir una gran cantidad de usuarios virtuales basados en emuladores y exploradores, una simulación de las condiciones de la red móvil, así como también teléfonos reales para probar los procesos comerciales. Esto, además de garantizar la validación de rendimiento, proporciona resultados de extremo a extremo, integrales y precisos para las aplicaciones móviles.
Conclusión
La prueba funcional y de rendimiento automatizado tiene una reconocida trayectoria en las aplicaciones basadas en escritorio. Ayuda a las empresas a desplegar aplicaciones de software de calidad superior, reducir el riesgo comercial y acelerar la resolución de problemas. En última instancia, ayuda a las empresas a evitar interrupciones y errores que implican grandes costos. La creciente demanda de información instantánea, especialmente a través de las aplicaciones móviles, debe estimular a las empresas a adoptar estrategias de prueba automatizadas y soluciones diseñadas específicamente para sus necesidades de aplicaciones móviles.
CIO, Perú
Gal Tunik es gerente de producto, HP Functional Testing y HP Sprinter, Software de Hewlett-Packard. Anteriormente, Gal se desempeñó como consultor estratégico asociado y miembro clave del grupo de estrategia de TI para Booz & Company, donde diseñó estrategias de ingreso al mercado y definió modelos de gobierno para las empresas de TI de los clientes. Antes, Gal trabajó en SAP, como consultor senior y luego como arquitecto de soluciones. Gal obtuvo un título MBA en Kellogg School of Management, Northwestern University, y un título BA en ciencias informáticas en Interdisciplinary Center en Israel.