ios app testing beginners guide with practical approach
Colección de conocimientos básicos para pruebas de aplicaciones iOS:
“Sabes, todo el mundo tiene un teléfono celular, pero no conozco a una persona a la que le guste su teléfono celular. Quiero hacer un teléfono que le guste a la gente '. - Steve Jobs.
Eso fue sobre el iPhone de Steve Jobs. Steve realmente hizo que Apple trabajara para hacer de su dispositivo móvil uno de los favoritos de todos los tiempos.
Los usuarios siempre han amado los dispositivos móviles de Apple, ya sea el iPhone, el iPod Touch o el iPad. Los datos actuales sugieren que hay casi mil millones de dispositivos Apple operativos en el mundo que se ejecutan en iOS.
Eso es mil millones de ellos.
abridor de archivos bin descargar gratis windows
A continuación se muestra el análisis de la participación de mercado de los iPhones en 2016:
(imagen fuente )
Lo que vas a aprender:
- iOS
- Pruebas de iOS
- Tipos de pruebas de aplicaciones iOS
- Prueba manual: uso del dispositivo
- Prueba manual: uso del emulador
- Automatización de iOS
- Prácticas recomendadas para probar una aplicación iOS
- Marcos de automatización de iOS
- Conclusión
- Lectura recomendada
iOS
iOS es un sistema operativo móvil que fue diseñado por Apple precisamente para sus dispositivos, a menudo denominados iDevices. Desde 2007, cuando el iOS se hizo solo para iPhones, el sistema operativo evolucionó para admitir los dispositivos táctiles y también los iPads.
La investigación actual informa que iOS es el segundo sistema operativo móvil más popular del mercado. Android se ejecuta en dispositivos construidos por varios fabricantes, pero la belleza de iOS es que está restringido solo al hardware de Apple, lo que indica claramente la popularidad del sistema operativo.
iOS ha visto un total de 10 lanzamientos importantes a lo largo de los años y ha ofrecido actualizaciones de funciones notables en cada lanzamiento.
Este sistema operativo iOS es famoso por su facilidad de uso, fluidez en las operaciones, aplicaciones sin fallos, etc. Mientras se habla de las aplicaciones, la tienda de aplicaciones Apple iTunes para iOS es demasiado rica con una cantidad de aplicaciones que se disparan hasta 2,2 millones. La descarga de aplicaciones ha aumentado rápidamente a la friolera de 130 mil millones en número.
iOS es un sistema operativo que no está restringido por ninguna barrera de idioma o zona. Este es uno de los principales factores de este sistema operativo que se está volviendo tan famoso en tan solo 10 años de su desarrollo. Soporta 40 idiomas diferentes.
No solo los idiomas, incluso la interfaz de usuario de los dispositivos iOS es muy atractiva y elegante también en comparación con los dispositivos Android.
Al hablar de las Aplicaciones en detalle, a continuación se mencionan algunas de las estadísticas al respecto:
- La tienda de aplicaciones Apple iTunes recibe casi 1000 nuevas solicitudes cada día.
- Aproximadamente 1/3rddel total de aplicaciones en la tienda de aplicaciones Apple iTunes se pueden descargar gratis.
- Los cargos de la aplicación iOS pagada oscilan entre 1,10 y 1,30 $ en promedio.
- El precio medio de un juego de iOS oscila entre 0,55 y 0,65 $.
¿Cuántas aplicaciones ha utilizado en su iPhone, iPod Touch o iPad?
¡Un buen puñado! ¿Correcto? Desde Gmail y Facebook hasta Choque de clanes y asfaltos. Este tipo de aplicaciones, los números y la variedad de usuarios hacen que los probadores de software sean un asunto serio. ¿No es así?
Como evaluador, no solo se debe realizar una prueba de interfaz de usuario en profundidad, sino también la funcionalidad para verificar la aplicación en iPhone, iPod y iPad debido a la variación en sus tamaños.
Pruebas de iOS
Como se mencionó anteriormente, iOS solo se limita al hardware de Apple o los dispositivos fabricados por Apple. De hecho, es un gran alivio. Sin embargo, existen numerosos dispositivos Apple y sus versiones compatibles con iOS.
La conclusión es que Apple tiene un sistema cerrado, a diferencia de Android, que es un sistema abierto. Los lanzamientos de sistemas operativos o dispositivos están bien planificados.
Esta es una ventaja adicional porque:
- El tamaño de los dispositivos que están disponibles o que se van a lanzar son fijos y como QA necesitamos tener una idea muy clara de lo que están todos los dispositivos fuera del mercado. Es fácil para un control de calidad decidir el banco de pruebas para realizar las pruebas.
- Como los dispositivos, no necesitamos hacer un análisis profundo del SO, ya que es un sistema cerrado, toma menos tiempo (y esfuerzo) decidir sobre el banco de pruebas para las pruebas del SO.
- Apple tiene una buena variedad de sus propias herramientas de automatización, aunque son un poco difíciles de aprender.
- Recuerdo que para las pruebas de GPS para Android tuve que pasar de 2 a 3 días para descubrir cómo crear scripts ficticios para enviar ubicaciones falsas. Pero fue muy simple y directo en iOS, ya que tiene una funcionalidad incorporada para enviar GPS falso para caminar, correr, andar en bicicleta, etc.
- Para la prueba inicial, no se recomienda probar el GPS mediante una prueba de campo, es recomendable enviar datos GPS ficticios y también ahorra tiempo.
- Apple tiene pautas estrictas para enviar una solicitud, esto es de gran ayuda de alguna manera en lugar de ser rechazado después de la presentación y una buena posibilidad de éxito, a diferencia de otros sistemas operativos donde no hay pautas estrictas.
- La funcionalidad del dispositivo y el sistema operativo en sí es fija y sencilla, por lo que reduce las posibilidades de perder las formas en que una aplicación puede funcionar. En iOS, no hay forma de forzar la detención de una aplicación mientras podemos matar y forzar la detención de aplicaciones en Android. Por lo tanto, las complejidades se reducen para las pruebas aquí.
Estas son algunas de las ventajas que obtenemos de los productos de Apple, pero no necesariamente son las ventajas de cada producto o aplicación. Mientras que para las aplicaciones que se desarrollan en multiplataforma, iOS es difícil de manejar.
los nivel alto La clasificación es la que se muestra a continuación:
El primer paso para comenzar a probar aplicaciones de iOS es considerar el tipo de implementación.
La implementación de la aplicación puede ser cualquiera de los siguientes 3 tipos:
1) Aplicaciones basadas en web: Estas son las aplicaciones que se comportan de manera similar a la compilación en aplicaciones iOS. Estos son los sitios web normales a los que accede un usuario en el navegador Safari del iPhone.
2) Aplicación nativa: Una aplicación que se desarrolla utilizando el SDK de iOS (Software Development Kit) se ejecuta de forma nativa en los dispositivos iOS compatibles como VLC, Flipboard, Uber, etc.
3) Aplicación híbrida: Esta es la mezcla o híbrido de ambos tipos mencionados anteriormente. Esto le da acceso al contenido web a través de un área de visualización de contenido web y también tiene algunos elementos de interfaz de usuario para iOS. P.ej. Zomato, Twitter, Gmail, etc.
Tipos de pruebas de aplicaciones iOS
Los diferentes tipos de prueba de aplicaciones iOS (como se hace en condiciones típicas) pueden ser los siguientes:
- Prueba manual: uso del dispositivo
- Prueba del sistema
- Pruebas UI / UX
- Pruebas de seguridad
- Pruebas de campo
- Prueba manual: uso del emulador
- Examen de la unidad
- Pruebas de integración
- Prueba de UI
- Pruebas de automatización
- Pruebas de regresión
- Prueba de BVT
- Prueba de compatibilidad
- Pruebas de rendimiento
Ejemplo de una aplicación:
Antes de pasar a los diversos aspectos de los procesos de prueba de iOS, tomemos un ejemplo de una aplicación típica de iOS.
Tomemos en cuenta una solicitud de recaudación de fondos para equipos deportivos. La aplicación tendrá un inicio de sesión de cuenta social (Google / Facebook) y una página de pago.
Antes de ir a la página de pago, debería haber una opción para seleccionar los montos definidos por el sistema o un campo personalizado para ingresar el monto. Una vez que se completa el pago, se debe mostrar un certificado PDF en la pantalla y, al mismo tiempo, el PDF también debe enviarse por correo electrónico a la cuenta de correo electrónico del usuario que está actualmente conectado.
Prueba manual: uso del dispositivo
a) Prueba del sistema:
Este tipo de prueba de iOS se realiza en el sistema para verificar si los diversos componentes del sistema funcionan juntos.
En este proceso de prueba, la aplicación iOS se inicia en un dispositivo Apple real seguido de su interacción con la interfaz de usuario para activar un conjunto específico o conjuntos de acciones del usuario. Las acciones típicas del usuario pueden ser una operación táctil o una operación de deslizamiento en la pantalla.
Finalmente, el resultado se compara con el resultado esperado.
Para nuestroEjemplodado anteriormente, una prueba de sistema típica puede comprender los siguientes pasos:
- Inicie sesión en el equipo deportivo de iOS y la aplicación de recaudación de fondos utilizando el inicio de sesión de la cuenta de Facebook utilizando la autenticación abierta.
- Seleccione una cantidad de sistema predefinida de $ 10 de las opciones dadas.
- Proceda a la pasarela de pago.
- Seleccione la opción de billetera móvil PayTm para el proceso de pago.
Las pruebas del sistema son las operaciones que cubren principalmente los distintos flujos de extremo a extremo del sistema. Cada prueba debe ejecutarse con las distintas configuraciones disponibles. Y también depende del dispositivo y la versión de iOS en la que esté instalada la aplicación.
b) Prueba de IU de iOS
La UI / UX de los dispositivos iOS ha sido un elemento clave en su historia de éxito.
Las pruebas de UI / UX en dispositivos iOS se pueden clasificar en las siguientes categorías:
- Entradas: Las pruebas de las funcionalidades de la pantalla táctil (como toque largo / corto, toque 3D, desplazamiento), tamaños de botones, posición de los botones, color de las fuentes y su tamaño, etc., entran en esta categoría.
- Teclas duras: Las aplicaciones nativas funcionan a la perfección con las teclas de hardware incorporadas / teclas físicas presentes en el dispositivo, como la tecla de inicio, los botones de sonido, etc. La aplicación bajo prueba también debe interactuar con las teclas físicas de manera similar.
- Teclas suaves / Teclado suave: ¿Qué tan molesto es cuando el teclado no aparece cuando estás en la página de mensajes de Whatsapp? La apariencia de un teclado, la facilidad para esconderse cuando no lo necesita, el soporte para emoticonos, símbolos, todos los caracteres / símbolos, etc. son necesarios.
- En nuestro Ejemplo , el teclado puede aparecer en la imagen en varios lugares, como ingresar el monto personalizado, ingresar las Credenciales / Detalles de la tarjeta en la pasarela de pago, etc.
- Pantalla: La aplicación, si es compatible con varios dispositivos, debe probarse su orientación en todos los dispositivos. Puede haber algunos cambios de resolución según el dispositivo que se elija para el proceso de prueba. Al mismo tiempo, también conviene realizar pruebas para los modos retrato / paisaje y el uso del teclado en cada uno de los casos.
Si su aplicación se crea no solo para iOS, entonces hay algunos consejos que deben probarse específicamente para iOS como:
- Liza: En iOS, cuando hay una lista para mostrar, siempre aparece una pantalla completamente nueva, a diferencia de Android, donde aparece una ventana emergente.
A continuación se muestra un ejemplo de lo mismo:
( fuente )
- Mensajes: Cuando una aplicación falla, el mensaje que se muestra en iOS es diferente al de Android. Además, si ha observado, pequeños mensajes parpadean en los teléfonos Android cuando libera memoria, como '#GB de memoria liberada', etc., pero nunca podemos ver mensajes flash en iOS.
A continuación se muestra un ejemplo:
( fuente )
- Eliminar confirmación: Si observa de cerca una aplicación de iOS, en una ventana emergente de confirmación de eliminación, la acción Cancelar está a la izquierda de la opción Eliminar. Mientras que en Android u otro sistema operativo es al revés.
Estos son algunos de los ejemplos que necesitan casos de prueba y pruebas independientes, ya que iOS tiene su interfaz de usuario predeterminada, mensajes, etc., que no se pueden cambiar.
c) Pruebas de seguridad:
En nuestro ejemplo , tenemos una aplicación con una pasarela de pago y una página de inicio de sesión compatible con la integración de la página social.
Por ejemplo , supongamos que tiene una aplicación ICICI en su teléfono y cuando inicia sesión en lugar de la información de su cuenta si se muestra la información de otra persona o si realiza una transferencia de dinero y la aplicación envía la OTP a otro número de teléfono que no es el suyo , puedes imaginar lo que sucederá. Por lo tanto, las pruebas de seguridad son imprescindibles.
Los datos en términos de inicio de sesión en las redes sociales y la pasarela de pago deben estar encriptados o protegidos para que la aplicación esté a salvo de ataques.
d) Pruebas de campo:
Se realiza una prueba de campo para verificar el comportamiento de la aplicación en la red de datos del teléfono.
Esta prueba generalmente se realiza cuando la aplicación alcanza una etapa estable y no falla cuando se prueba internamente y se han solucionado todos los problemas de funcionalidad. Esto se hace principalmente para probar el rendimiento de la aplicación en la red de datos lenta.
Prueba manual: uso del emulador
a) Prueba unitaria:
Esto lo hace principalmente el equipo de desarrollo / desarrollador individual. Esta prueba verifica si un módulo particular del código fuente está funcionando como se esperaba o no.
Los desarrolladores diseñan casos de prueba unitarios para un solo componente, es decir, un módulo aislado en el que trabajan. Esta prueba demuestra que el módulo individual está funcionando, después de lo cual se inyecta en el código fuente para que funcione como un elemento de la arquitectura integrada. Como dice el encabezado, esta es principalmente una ejecución de prueba manual y se realiza mediante emulación de prueba.
b) Pruebas de integración:
En los pasos anteriores, discutimos más sobre las pruebas unitarias. Ahora, como estamos seguros de la funcionalidad de las unidades / módulos individuales, es necesario verificar también la integración. Esta prueba se realiza para descubrir los problemas relacionados con varios puntos de integración.
En nuestro Ejemplos , podemos llamar al inicio de sesión como un módulo y a la pasarela de pago como otro módulo.
Las pruebas unitarias cubrirán las pruebas de ambos individualmente. Sin embargo, las pruebas de integración probarán la integridad de ambos módulos.
c) Pruebas de UI:
Como se explicó anteriormente, es necesario realizar una prueba de IU para una aplicación, ya que es un factor clave para el éxito de la aplicación.
La compra de todos los modelos de teléfono para realizar pruebas no es prácticamente posible porque costaría mucho. Por lo tanto, usar el emulador es la mejor opción, ya que es gratuito y también los errores obvios de la interfaz de usuario se detectan fácilmente en los emuladores.
Automatización de iOS
a) Prueba de regresión:
En el entorno en constante cambio, se realizan cambios continuamente para mejorar la aplicación o para solucionar los problemas que se encontraron en la versión anterior. Al implementar los cambios, existe la posibilidad de que los cambios realizados en la aplicación puedan alterar la funcionalidad existente.
En términos simples, los cambios realizados pueden introducir un nuevo conjunto de problemas en la aplicación.
Para verificar si la aplicación funciona de la misma manera incluso después de que se implementan los cambios, se debe realizar una prueba de regresión. Y, como es una actividad repetitiva, la automatización es útil para este tipo de ejecución de prueba.
b) Prueba de BVT:
Es una buena costumbre tener una suite automatizada que se ejecute en la nueva compilación lanzada para pruebas, ya que ahorra mucho tiempo y si las funcionalidades básicas fallan, se informa de inmediato. En comparación con un esfuerzo manual, los resultados de las pruebas de verificación básicas automatizadas para aceptar o rechazar una compilación se pueden tomar en minutos.
c) Prueba de compatibilidad:
Como se mencionó, hay numerosos dispositivos / tipos que son lanzados por Apple. Para ser exactos, hay 15 tipos diferentes de iPhones, 6 modelos de iPod Touch, 10 modelos de iPad y 2 modelos de iPad Pro en el mercado.
Ahora, cuando se desarrolla una aplicación como la nuestra (Aplicación de recaudación de fondos para equipos deportivos), debería ser compatible con todos los dispositivos mencionados anteriormente. Eso implica una cosa que: Todos los casos de prueba deben ejecutarse en todos estos dispositivos.
Ahora bien, el esfuerzo manual no es posible cuando la cantidad de dispositivos es tan grande. Por compatibilidad, se prefieren las pruebas de automatización.
d) Prueba de rendimiento:
Algunos de los que se prueban en las pruebas de rendimiento son:
- Cómo se comporta la aplicación cuando se pone en funcionamiento o se ejecuta durante mucho tiempo. Durante el período operativo, haga que la aplicación se comunique / interactúe / permanezca inactiva.
- La misma operación debe realizarse con la diferente cantidad de cargas cada vez.
- Cómo se comporta el sistema cuando la transferencia de datos es realmente enorme.
Estos casos son de naturaleza repetitiva y en su mayoría se realizan mediante automatización.
Prácticas recomendadas para probar una aplicación iOS
Probar aplicaciones de iOS puede ser difícil, complicado y desafiante a menos que se haga correctamente.
Para mover las pruebas de la aplicación iOS en la dirección correcta, se pueden implementar las siguientes prácticas:
# 1) Olvídese de los emuladores: En la mayoría de los casos, se prefieren los emuladores a los dispositivos reales. Pero ese no es el caso ideal. Cosas como las interacciones del usuario, el consumo de batería, la disponibilidad de la red, el rendimiento en el uso, la asignación de memoria no se pueden probar en los emuladores. Por lo tanto, intente probar en dispositivos reales todo el tiempo.
# 2) Automatice las cosas en lugar de hacerlo manualmente: ¿Qué tan rápido eres para hacer una tarea específica? En el mundo de hoy, a todo el mundo le preocupa principalmente el tiempo dedicado. La automatización no solo reduce el tiempo de ejecución, sino que también aumenta la efectividad, la eficiencia y la cobertura de las pruebas de software.
# 3) Comparte el trabajo: Comparta las pruebas entre equipos, incluido el equipo de desarrollo. Podemos obtener ayuda en términos de ejecutar manualmente los casos de prueba, así como obtener la ayuda del equipo de desarrollo en términos de automatizar los casos de prueba manuales.
# 4) Atrapa los registros de accidentes: La aplicación para iOS puede bloquearse o bloquearse en determinadas circunstancias. Para solucionar el problema, los registros de fallos juegan un papel fundamental.
Se pueden realizar los siguientes pasos para capturar los registros de fallas:
- Para MacOS:
- Sincronice el dispositivo iOS con la computadora (Mac).
- Para Mac OS, mantenga presionada la tecla Opción para abrir la barra de menú.
- Vaya al menú Ir y haga clic en Biblioteca.
- Vaya a ~ / Library / Logs / CrashReporter / MobileDevice //.
- El nombre del archivo de registro debe comenzar con el nombre de la aplicación.
- Para el sistema operativo Windows:
- Sincronice el dispositivo iOS con la computadora (Windows).
- Vaya a C: Users AppData Roaming Applecomputer Logs CrashReporter MobileDevice \
- El nombre del archivo de registro debe comenzar con el nombre de la aplicación.
# 5) Capturar los registros de la consola:
Los registros de la consola brindan la información general de las aplicaciones en el dispositivo iOS.
Esto se puede hacer usando herramientas como iTools. En la aplicación iTools, haga clic en el icono 'Caja de herramientas' cuando el dispositivo iOS esté conectado al sistema en el que se está ejecutando iTools. Al hacer clic en 'Registro en tiempo real' se obtiene el registro de la consola en tiempo real.
# 6) Pantalla de captura: Es fácil comprender el problema y, por lo tanto, es fácil de solucionar si los pasos son visuales.
Es recomendable grabar la pantalla o hacer capturas de pantalla de los problemas para que el equipo de desarrollo los comprenda mejor. La captura de pantalla se puede tomar usando la función incorporada presionando el botón de Encendido y el de Inicio juntos.
La grabación de una pantalla se puede hacer usando la grabación del reproductor Quick Time mientras el dispositivo iOS está conectado a Mac usando el cable Lightning.
Marcos de automatización de iOS
Algunos de los marcos de automatización más utilizados se enumeran a continuación:
# 1) épocas;
Appium utiliza el controlador web Selenium para automatizar las pruebas de aplicaciones de iOS.
Esta plataforma es independiente y se puede utilizar tanto en la web como en dispositivos móviles (tanto Android como iOS). Este es de código abierto y no está restringido por el idioma. No se requieren cambios de aplicación o acceso al código fuente para automatizar el uso de Appium.
Appium funciona perfectamente independientemente del tipo de aplicación: ya sea nativa, híbrida o web.
# 2) Calabaza:
Calabash es un marco multiplataforma de código abierto que admite pruebas de automatización de Android e iOS.
Las pruebas de calabaza están escritas en pepino, que es similar al de una especificación y es fácil de entender. Calabash consta de bibliotecas que permiten al usuario interactuar con aplicaciones nativas e híbridas. Admite interacciones como gestos, afirmaciones, capturas de pantalla, etc.
# 3) Earl Grey:
Earl Gray es el marco de pruebas de IU interno de Google. Esto se ha utilizado para probar YouTube, Google Photos, Google Play Music, Google Calendar, etc.
Earl Grey se hizo de código abierto recientemente. Algunas de las principales ventajas de Earl Grey son: sincronización incorporada, comprobaciones de visibilidad antes de las interacciones, interacción real del usuario (tocar, deslizar, etc.). Esto es muy similar a Espresso de Google, que se utiliza para la automatización de la interfaz de usuario de Android.
# 4) Automatización de UI:
UI Automation es desarrollado por Apple y es muy similar a UI Automator para Android. Apple define las API y las pruebas están escritas en JAVA.
# 5) CÓMO:
KIF son las siglas de “Keep it Functional”. Este es un marco de terceros y de código abierto.
Este es un marco de prueba de integración de iOS que está estrechamente relacionado y se utiliza para los objetivos de prueba de XCTest. KIF es fácil de configurar o integrar con el proyecto Xcode y, por lo tanto, no se requieren servidores web ni paquetes adicionales. KIF tiene una amplia cobertura en cuanto a versiones de iOS.
Conclusión
La prueba de aplicaciones iOS puede ser una tarea muy desafiante. Espero que haya comprendido bien las pruebas de aplicaciones iOS a través de este artículo.
Sin embargo, seleccionar el enfoque correcto, el mejor proceso de prueba, metodologías, herramientas, emuladores / dispositivos, etc., hará que las pruebas de aplicaciones iOS sean muy exitosas.
Nuestro próximo tutorial le informará todos los conceptos básicos involucrados en Tutorial de prueba de aplicaciones de Android .
Lectura recomendada
- Mejores herramientas de prueba de software 2021 (Herramientas de automatización de pruebas de control de calidad)
- Guía de pruebas de portabilidad con ejemplos prácticos
- Pruebas alfa y beta (una guía completa)
- Pruebas funcionales versus pruebas no funcionales
- Crear prueba de Appium para una aplicación iOS
- Descarga del libro electrónico Testing Primer
- ¿Qué es la prueba temprana: prueba temprana, prueba a menudo PERO cómo? (Una guía práctica)
- Tutoriales de prueba de aplicaciones móviles (una guía completa con más de 30 tutoriales)