android app testing tutorial
Recopilación de conocimientos básicos antes de probar aplicaciones de Android:
Como sugiere el propio título, en este tutorial discutiremos más sobre el proceso de prueba de Android.
Pero, antes de entrar en los diversos detalles del proceso de prueba de Android, me gustaría plantear un par de preguntas.
¿Tienes un teléfono móvil?
¡Qué tonta es esa pregunta! Por supuesto que todos lo hacemos. Todo el mundo tiene un teléfono móvil. Los teléfonos móviles se han convertido en una necesidad básica de la existencia humana en la actualidad.
¿Puedes decirme el sistema operativo que hay en tu teléfono?
Si compró su teléfono entre 2014-16, entonces las posibilidades de que su teléfono funcione con Android son de alrededor del 80-85%.
Lo que vas a aprender:
- Crecimiento de Android
- Introducción a la aplicación de Android
- Lista de 'tareas pendientes' antes del inicio del proceso de prueba
- Tipos de prueba para aplicaciones móviles
- Prácticas recomendadas en las pruebas de aplicaciones de Android
- Marco de prueba de Android
- Conclusión
- Lectura recomendada
Crecimiento de Android
Las siguientes estadísticas describen más sobre el crecimiento de Android de una manera fácilmente comprensible.
- En 2009, Android era un novato y constituía solo el 3,9% del mercado total.
- El principal contribuyente entonces fue el sistema operativo Symbian con una enorme cantidad de 47% [Días dorados de Nokia].
- Esa tendencia comenzó a cambiar a lo largo de los años y Android ahora ha alcanzado el 85,2% en 2016.
[ fuente de imagen ]
- Los números anteriores son solo para teléfonos móviles. El sistema operativo Android también está teniendo un gran impacto en la industria de las tabletas. Del 4,4% de cuota de mercado en 2011 al 35,7% en 2015 habla del interés que la gente ha estado desarrollando hacia las tabletas con Android.
[ fuente de imagen ]
- La tienda Google Play también ha experimentado un rápido aumento en el número de descargas. De 2010 a 2016, las cifras han aumentado de mil millones de descargas al mes a 65 mil millones de descargas al mes.
- Las descargas de aplicaciones también se ven afectadas en gran medida por los bajos precios [Promedio: 0.06 $ / aplicación] de las aplicaciones de Android en comparación con las aplicaciones de iOS.
¿Por qué te expuse todos esos números?
Fue solo para que sepas cuán vasto ha crecido Android, cuán complicado se ha vuelto el desarrollo de la aplicación y cuánto mercado ha capturado este sistema operativo en la última década.
Cada sitio web, aplicación de Windows y aplicación de Mac tiene ahora un hermano de Android. Todos apuestan por desarrollar una aplicación para Android tan pronto como planean desarrollar un sitio web / aplicación de Windows. Ahora se ha vuelto necesario, ya que los clientes también han comenzado a preferir las aplicaciones móviles a las aplicaciones de computadora o sitios web en los últimos años.
Algunas de las aplicaciones que se utilizan con mucha frecuencia en nuestro día a día son Flipkart, Amazon, Zomato, DeliveryHero, Citi Bank, TrueCaller, Facebook, Gmail, Whatsapp, etc.
La razón del aumento en el mercado de Android es que:
- Es un sistema abierto, por lo que es fácil de personalizar, fácil de aprender e incluso el desarrollo de aplicaciones es más fácil.
- Publicar una aplicación en Google Play Store es bastante fácil en comparación con las otras Play Store.
- Hay varios fabricantes en el mercado de teléfonos Android como Sony, HTC, Samsung, Motorola, etc.
- Hay una gran cantidad de funciones en Android como DualSIM, microSD, batería extraíble, etc., lo cual es una ventaja adicional.
- El precio de los teléfonos Android no es demasiado alto y es asequible, etc.
Junto con el requisito de desarrollo de las aplicaciones de Android, también ha habido un aumento en el requisito de probadores con conocimientos en pruebas de Android.
Como evaluador, antes de comenzar a probar cualquier aplicación construida en Android, debe hacer muchos deberes. Lo primero que debe hacer es estudiar el sistema operativo y su historia. Si no conoce el sistema operativo, no puede probar la aplicación con las distintas versiones. La funcionalidad básica de la versión del sistema operativo, la interfaz de usuario, el GPS, el soporte del tipo de red, la duración de la batería, etc., son algunas de las facetas importantes que afectan a una aplicación.
Con Android, no es solo el sistema operativo, sino la plétora de dispositivos que también necesitan un estudio.
Hay una gran cantidad de dispositivos disponibles en el mercado, por lo tanto, antes de finalizar y congelar su banco de pruebas, debe averiguar la participación de dispositivos de la audiencia objetivo. Los diversos dispositivos que ofrecen diferentes funciones como DualSIM, cámara dual, resolución de pantalla, temas, etc., afectan a una aplicación y deben probarse.
Por lo tanto, es muy importante que un control de calidad recopile un conocimiento completo sobre el ecosistema completo de Android.
Introducción a la aplicación de Android
Existen varios métodos de prueba que se siguen al certificar con éxito una aplicación de Android.
Una arquitectura de aplicación de Android típica se vería similar al diagrama que se muestra a continuación:
gafas de realidad virtual para juegos xbox 360
Según la figura anterior, hay 2 posibilidades para una aplicación:
1) Aplicación móvil para la aplicación web: Es posible que el cliente tenga una aplicación web y quiera crear una aplicación móvil para la misma. Amazon, Jabong, Myntra, etc., hicieron lo mismo, y en el momento en que las aplicaciones móviles comenzaron a crear un auge en el mercado, estas empresas comerciales se dieron cuenta de que pronto la gente pasaría de las aplicaciones web a las aplicaciones móviles.
2) Aplicación móvil como entidad comercial independiente: Probé una aplicación de logística similar, con el fin de aumentar el negocio, creó una aplicación separada para sus conductores para facilitar una entrega sin problemas y eliminó el papeleo.
Los conductores tenían la aplicación instalada en sus teléfonos para mover el envío a diferentes etapas de entrega y su estado correspondiente, y las actualizaciones de entrega se reflejaban en su aplicación web existente.
Otros tales Ejemplos donde la aplicación móvil es una entidad separada son WhatsApp, aplicaciones de seguimiento de salud como S Health, etc.
Lista de 'tareas pendientes' antes del inicio del proceso de prueba
A diferencia de un ciclo de prueba normal, para la primera versión de una aplicación móvil, hay algunos elementos que necesitan una investigación adicional y planificación para una entrega exitosa de la aplicación.
A continuación, se incluyen algunas de las actividades que son importantes para un control de calidad antes de que comience la prueba real:
#1) Investigación sobre sistemas operativos y dispositivos:
Además de comprender los requisitos de la aplicación, también debe comprender el impacto de las distintas versiones del sistema operativo y los modelos de dispositivo. Debe crear casos de prueba o escenarios con el sistema operativo y los modelos de dispositivo.
#2) Banco de pruebas:
A diferencia de las aplicaciones de escritorio, web e iOS, la creación del banco de pruebas para aplicaciones de Android es muy complicada debido al sistema abierto de Android. La decisión debe tomarse después de discutirla con el BA, los desarrolladores y los propietarios de productos para encontrar el público objetivo.
#3) Plan de prueba:
Como es la primera versión, debe existir un plan aprobado con un banco de pruebas aprobado, tipos de pruebas, etc. Si se requiere un tiempo separado para investigar funcionalidades o reglas comerciales o si las pruebas van a ser complicadas, etc., todo debe estar cubierto en el plan.
#4) Herramientas de automatización:
Las herramientas de automatización necesarias para las aplicaciones móviles son muy diferentes de las de las aplicaciones web o de escritorio. Por lo tanto, es posible que deba dedicar más tiempo y esfuerzo a aprender la herramienta. El tiempo y el esfuerzo necesarios para el mismo deben ser aprobados por el propietario del producto o el cliente.
#5) Técnicas o métodos de prueba:
A diferencia de las pruebas convencionales que hacemos normalmente, hay pocas pruebas que sean muy específicas para aplicaciones móviles. A saber, prueba de campo, prueba de GPS, prueba de captura de imagen, etc. Estos deben documentarse en los casos de prueba junto con cómo se probarán estos tipos.
Tipos de prueba para aplicaciones móviles
Se realizan los siguientes tipos de pruebas para certificar una aplicación de Android:
1) Prueba funcional:
La prueba se logra normalmente mediante flujos de prueba iniciados por la interfaz de usuario. No solo se prueba el flujo de un caso de uso, sino que también se prueban las diversas reglas comerciales. Las pruebas se realizan certificando los requisitos. es decir, si la aplicación está funcionando según los requisitos.
Tomemos el Ejemplo de la aplicación Zomato.
Cuando inicia la aplicación, según la ubicación, aparece la lista de restaurantes. Ahora, como QA, debe probar la lista de restaurantes.
Esta es una prueba de funcionalidad y aquí probará funcionalidades como:
- Verifique si las tarjetas del restaurante se muestran con la ubicación.
- Verifique si los restaurantes que se muestran están en el rango dado (km) de la ubicación.
- Verifique si el recuento de reseñas de cada tarjeta está sincronizado con las reseñas proporcionadas.
- Compruebe si agregar un nuevo restaurante para una ubicación se refleja en la lista.
- Verifique si los restaurantes están en la lista según la regla de filtrado de Zomato, etc.
2) Prueba de IU de Android:
Esta es una prueba de la aplicación centrada en el usuario. En esta fase de prueba, se prueban elementos como la visibilidad del texto en varias pantallas de la aplicación, los mensajes interactivos, la alineación de los datos, la apariencia de la aplicación para diferentes pantallas, el tamaño de los campos, etc.
Para el mismo ejemplo anterior de Zomato, las pruebas de IU serían:
- Verifique si las tarjetas se muestran correctamente alineadas con el tamaño de la pantalla del móvil.
- Verifique si la imagen del restaurante se muestra como se esperaba.
- Verifique si los detalles de la tarjeta, la calificación del restaurante, el tipo de cocina, la dirección, etc. se muestran correctamente alineados.
- Verifique si el desplazamiento de la lista está libre de errores y las tarjetas no se muestran desalineadas cuando se desplaza una lista larga de tarjetas, etc.
3) Prueba de compatibilidad:
Esta prueba se realiza principalmente en forma de dos matrices de la aplicación OS Vs y la aplicación Device model Vs. Por lo general, el propietario del producto o el cliente proporciona una lista de sistemas operativos compatibles (y en ocasiones de dispositivos).
La necesidad de esta prueba es:
- Cuando se tiene en cuenta un sistema operativo como Android, se encuentran 7 versiones base descuidando el número de lanzamientos de parches / EP.
- ¿Puedes adivinar los tipos de dispositivos Android que funcionan actualmente en todo el mundo? 1000? 2000? ¡Equivocado! La respuesta correcta es 24000. Hay 24000 tipos de dispositivos Android únicos que están presentes y activos en el mundo.
- Con variaciones como estas, las pruebas de compatibilidad juegan un papel vital en la certificación de una aplicación de Android.
- No solo necesitamos validar el sistema operativo y el tipo de dispositivo, sino también validar algunas otras características que se incluyen en las pruebas de compatibilidad. Las caracteristicas incluyen:
- Tamaño de pantalla
- Resolución de la pantalla
- Conectividad de red
4) Prueba de interfaz:
En otras palabras, también se denomina prueba de integración. Esta prueba se realiza después de que todos los módulos de la aplicación estén completamente desarrollados, probados individualmente y todos los errores se hayan corregido y verificado.
Las pruebas de interfaz incluyen pruebas como una prueba completa de la aplicación, interacción con otras aplicaciones como Mapas, aplicaciones sociales, etc., uso del micrófono para ingresar texto, uso de la cámara para escanear un código de barras o tomar una foto, etc.
De nuevo considerando Zomato, las pruebas de integración serían como:
- Verifique si el usuario puede reservar una mesa para un restaurante.
- Verifique si el usuario puede ver el menú y pedir comida en línea.
- Verifique si el usuario puede aprovechar un cupón PayTM mientras ordena comida.
- Verifique si el usuario puede ver la ubicación del restaurante en Google Maps.
- Verifique si el usuario puede abrir el marcador telefónico y llamar al restaurante, etc.
5) Prueba de red:
Las características clave de Network Testing incluyen:
- La aplicación debe hablar con el servicio intermedio para realizar el proceso.
- Durante esta prueba, la solicitud / respuesta hacia / desde el servicio se prueba para varias condiciones.
- Esta prueba se realiza principalmente para verificar el tiempo de respuesta en el que se realiza la actividad, como actualizar datos después de la sincronización o cargar datos después de iniciar sesión, etc.
- Esto se hace tanto para una conexión wifi fuerte como para la red de datos móviles.
- Esta es una prueba interna.
6) Prueba de rendimiento:
Se comprueba el rendimiento de la aplicación en algunas condiciones particulares.
Esas condiciones incluyen:
- Poca memoria en el dispositivo.
- La batería está extremadamente baja.
- Recepción de red deficiente / mala.
El rendimiento se prueba básicamente desde dos extremos, el extremo de la aplicación y el extremo del servidor de aplicaciones.
7) Prueba de instalación:
Hay dos tipos de aplicaciones en un dispositivo Android, es decir, las aplicaciones preinstaladas y las aplicaciones que el usuario instala más tarde.
Para ambos de los anteriores, se deben realizar pruebas de instalación. Esto es para asegurar una instalación fluida de la aplicación sin terminar en errores, instalación parcial, etc.
Las pruebas de actualización y desinstalación se llevan a cabo como parte de las pruebas de instalación.
8) Pruebas de seguridad:
La privacidad y la seguridad son los dos requisitos principales de una aplicación. Sin embargo, en Banca, salud, este se convierte en el requisito principal.
La prueba del flujo de datos para el mecanismo de cifrado y descifrado se probará en esta fase. El acceso a los datos almacenados también se prueba en esta fase.
declarando una matriz de cadenas en java
9) Prueba de campo:
Las pruebas de campo se realizan específicamente para la red de datos móviles y no internamente, sino saliendo y usando la aplicación como un usuario normal. Esta prueba se realiza 'solo' después de que se haya desarrollado, probado y retrocedido toda la aplicación (para errores y casos de prueba).
Básicamente se hace para verificar el comportamiento de la aplicación cuando el teléfono tiene una conexión 2G o 3G. Las pruebas de campo verifican si la aplicación falla con una conexión de red lenta o si está tardando demasiado en cargar la información.
Puede leer más sobre las pruebas de campo en nuestro artículo. 'Importancia y necesidad de las pruebas de campo para aplicaciones móviles'
10) Prueba de interrupción:
Este tipo de prueba también se conoce como verificación de escenario sin conexión. Las condiciones en las que la comunicación se interrumpe en el medio se denominan condiciones fuera de línea.
Algunas de las condiciones en las que se pueden probar las interrupciones de una red son las siguientes:
- Retiro del cable de datos durante el proceso de transferencia de datos.
- Interrupción de la red durante la fase de contabilización de la transacción.
- Recuperación de la red después de una interrupción.
- Retirada de la batería o encendido / apagado cuando se encuentra en la fase transaccional.
Prácticas recomendadas en las pruebas de aplicaciones de Android
Hay ciertos factores que se deben considerar al diseñar una estrategia para las pruebas de aplicaciones móviles.
Son:
1) Selección de dispositivo:
- Este es uno de los pasos más críticos antes de comenzar el proceso de prueba de la aplicación de Android.
- Decida qué dispositivos se deben tener en cuenta para el proceso de prueba.
- La selección debe realizarse de manera que se maximice el número de clientes objetivo.
- Factores como la versión del sistema operativo, las resoluciones de pantalla y los factores de forma [tableta o teléfonos inteligentes] juegan un papel vital en la fase de selección.
- Si es necesario, incluso se puede tener en cuenta la ayuda de emuladores.
- Sin embargo, los emuladores no deben reemplazar el proceso de prueba del dispositivo físico.
- Los emuladores de dispositivos son rentables y útiles durante la fase de desarrollo inicial.
- Pero, para probar los escenarios de la vida real, los dispositivos físicos son imprescindibles. Tanto los emuladores como los dispositivos físicos deben usarse de manera equilibrada para obtener un resultado optimizado.
2) Prueba Beta de la Aplicación:
- Las pruebas beta son muy efectivas para realizar pruebas con usuarios del mundo real, dispositivos reales, redes reales y aplicaciones instaladas en una amplia geografía.
- Esto brinda una imagen clara de la densidad de la red, las variaciones de la red [Wi-Fi, 4G, 3G y 2G] y el impacto en la aplicación.
- Las pruebas beta en el mundo real son únicas en su tipo y no se pueden replicar en un entorno controlado.
3) Conectividad:
- Normalmente, las aplicaciones de Android están conectadas a Internet para diversos requisitos.
- La conectividad en diferentes dispositivos juega un papel clave en la puesta en marcha de la estrategia.
- En su mayoría, la conectividad está controlada por un software de simulación que ayuda a regular la velocidad de la red, la latencia y la conectividad limitada durante la prueba.
- Se dice que siempre es recomendable realizar pruebas con conexiones de red reales para obtener resultados / datos en tiempo real.
4) Prueba manual o automatizada:
- Aunque las pruebas de automatización toman mucho tiempo para la primera ejecución, son útiles cuando las pruebas deben repetirse. Esto también reduce el tiempo total de prueba durante las diferentes etapas de desarrollo.
- La automatización de Android debe combinarse con la prueba manual cuando la repetición de la prueba de regresión es alta en la fase de desarrollo de la aplicación, las pruebas de compatibilidad deben realizarse para la misma aplicación en diferentes versiones del sistema operativo, puntos de control de compatibilidad con versiones anteriores, etc.
Marco de prueba de Android
Hay varios marcos de prueba de Android disponibles.
En este tutorial, vamos a discutir 3 tipos diferentes de frameworks más comúnmente usados:
- Marco de prueba de Robotium
- Marco de prueba robotizado
- Marco de prueba de Appium
1) Marco de prueba de Robotium:
- Este marco se utiliza para escribir casos de prueba de caja negra sofisticados y robustos para aplicaciones de Android.
- Es compatible con clientes tanto nativos como híbridos.
- Las funciones, los casos de prueba del sistema y los casos de prueba de aceptación del usuario se pueden escribir utilizando este marco.
- Robotium es compatible con Android 1.6 y superior y también es compatible con diálogos, menús, actividades, etc.
- Este marco maneja múltiples actividades de Android automáticamente.
- Se proporcionan varios métodos como parte de Robotium para interactuar con diferentes componentes gráficos de la aplicación de Android. Algunos de ellos son los siguientes:
- regresa();
- getButton ();
- isRadioButtonChecked ();
- searchText ('Usuario');
- haga clic en el botón ('Cerrar sesión');
2) Marco de prueba robotizado:
- Este marco ayuda a probar aplicaciones de Android en la JVM basada en el marco JUnit4.
- Utiliza la API de Android.
- Esto ayuda a escribir casos de prueba y ejecutarlos en la JVM.
- Bajo esto, todas las clases son reemplazadas por algo llamado objetos sombra.
- Siempre que se implementa un método, Robo-electric envía internamente la llamada al objeto de sombra.
- Según la implementación, si un método se implementa mediante un objeto sombra, se devuelve un valor. De lo contrario, se devuelve NULL.
- Debido a los objetos de sombra y JVM, la ejecución se vuelve más rápida.
3) Épocas del marco de prueba;
- Este marco funciona para aplicaciones web nativas, híbridas y móviles para dispositivos Android.
- Appium es una utilidad de uso gratuito.
- La API única funciona tanto para Android como para la plataforma iOS. Este es uno de los marcos que admite pruebas multiplataforma.
- Utiliza el controlador web Selenium para interactuar con la aplicación de Android.
- Appium admite la escritura de scripts utilizando muchos lenguajes de programación como Java, C #, Python, PHP, Ruby, etc.
Conclusión
La automatización de aplicaciones de Android se puede aplicar de forma manual según sea necesario. Sin embargo, si las pruebas de Androind Automation se agregan a la estrategia, seleccionar la herramienta correcta es una gran tarea. Al seleccionar la herramienta de automatización, se deben tener en cuenta factores como soporte multiplataforma, flujo de trabajo de prueba, precio de la herramienta, servicio / soporte, etc.
Hay varios desafíos involucrados en las pruebas de aplicaciones de Android. Hay diferentes factores que deben tenerse en cuenta antes de que el proceso de prueba de Android realmente se pueda implementar, pero una vez hecho esto se convierte en una tarea muy interesante.
Mire nuestro próximo tutorial para saber más sobre Desafíos y soluciones de pruebas móviles.
Lectura recomendada
- Las 11 mejores herramientas de automatización para probar aplicaciones de Android (herramientas de prueba de aplicaciones de Android)
- Servicios de prueba beta de aplicaciones móviles (herramientas de prueba beta de iOS y Android)
- Cree pruebas de Appium para una aplicación de Android
- Pruebas funcionales versus pruebas no funcionales
- Tutoriales de prueba de aplicaciones móviles (una guía completa con más de 30 tutoriales)
- Mejores herramientas de prueba de software 2021 [Herramientas de automatización de pruebas de control de calidad]
- Pruebas alfa y beta (una guía completa)
- Tutoriales detallados de Eclipse para principiantes