Resumen: Certified Tester Mobile Application Testing

Para la síntesis del programa de estudios del Certified Tester Mobile Application Testing (CT-MAT) utilicé la GenAI para acelerar la tarea y luego, refinar esta versión 1.0

Necesitaba tener esta primera síntesis porque un colega me pidió tener rápidamente una vista general del programa que lo oriente en todo lo relativo con la práctica de mobile testing.

Probablemente la versión 1.5 o 2.0, dependiendo de las mejoras que se le pueda aplicar, tendrá un mejor alcance, no obstante la  versión generada sirve como un primer avance.

Por otra parte tengo un diálogo establecido con la IA que me servirá para mejorar el prompt inicial y el refinamiento lo conseguiré con varias interacciones, para lo cual utilizaré algunos métodos de prompt como para probarlos también.

Certified Tester Mobile Application Testing (CT-MAT)

¿Que espera toda empresa del tester con el conocimiento de esta certificación?

  • Comprender y revisar los factores que impulsan al negocio y la tecnología a desarrollar aplicaciones móviles con el fin de crear una estrategia de prueba; 
  • Identificar y comprender los principales desafíos, riesgos y expectativas asociados con la prueba de una aplicación móvil; 
  • Aplicar tipos y niveles de prueba específicos para aplicaciones móviles; 
  • Aplicar tipos de prueba comunes, como los mencionados en el programa de estudios ISTQB® Certified Tester Foundation Level 2018, en el contexto específico móvil; 
  • Llevar a cabo las actividades requeridas específicamente para la prueba de aplicaciones móviles como parte de las actividades principales del proceso de prueba ISTQB®; 
  • Identificar y utilizar entornos adecuados y herramientas apropiadas para la prueba de aplicaciones móviles; 
  • Comprender métodos y herramientas específicamente para apoyar la automatización de pruebas de aplicaciones móviles.

Capítulo 1. mobile world business and technology drivers

  1. Mobile World – Business and Technology Drivers

1.1 Mobile Analytics Data

1.2 Business Models for Mobile Apps

1.3 Mobile Device Types

1.4 Types of Mobile Applications

1.5 Mobile Application Architecture

1.6 Test Strategy for Mobile Apps

1.7 Challenges of Mobile Application Testing

1.8 Risks in Mobile Application Testing

 

1.1 Mobile Analytics Data: Explica cómo utilizar los datos de analítica móvil, como la ubicación geográfica, el sistema operativo y la distribución del tipo de dispositivo, para crear estrategias y planes de prueba. Estos datos ayudan a seleccionar los dispositivos a probar y priorizar según el mercado objetivo.

1.2 Business Models for Mobile Apps: Discute los diferentes modelos de negocio para aplicaciones móviles (freemium, basados en publicidad, transacciones, pagos directos, y aplicaciones empresariales) y cómo estos impactan en las estrategias de prueba, dado que cada modelo tiene diferentes expectativas y desafíos de rendimiento.

1.3 Mobile Device Types: Describe los diversos tipos de dispositivos móviles, incluidos teléfonos básicos, teléfonos con funciones, smartphones, tablets y dispositivos complementarios como wearables. Cada tipo presenta desafíos únicos en términos de compatibilidad y funcionalidad de la aplicación.

1.4 Types of Mobile Applications: Detalla los tres tipos principales de aplicaciones móviles: nativas, basadas en navegador e híbridas. Cada tipo tiene ventajas y desventajas específicas que afectan las pruebas, como el rendimiento, la compatibilidad y el acceso a las funciones del dispositivo.

1.5 Mobile Application Architecture: Examina las diversas arquitecturas de aplicaciones móviles, como aplicaciones delgadas o gruesas, y arquitecturas del servidor de una o varias capas. Las decisiones arquitectónicas afectan la compatibilidad, la conectividad, la sincronización de datos y el rendimiento de las pruebas.

1.6 Test Strategy for Mobile Apps: Describe cómo desarrollar una estrategia de pruebas considerando los riesgos y desafíos específicos de las aplicaciones móviles, como la fragmentación del dispositivo, la disponibilidad de la red y los problemas de plataforma. Abarca enfoques para pruebas de dispositivos, desde emuladores hasta pruebas reales.

1.7 Challenges of Mobile Application Testing: Identifica desafíos únicos en las pruebas de aplicaciones móviles, como la fragmentación de dispositivos, diferencias en hardware y sistemas operativos, variaciones de red y requisitos de interfaz de usuario. Estos desafíos pueden afectar la calidad de la aplicación y requieren enfoques de prueba específicos.

1.8 Risks in Mobile Application Testing: Aborda los riesgos específicos asociados con las pruebas de aplicaciones móviles, como la fragmentación del mercado, la falta de dispositivos para pruebas, y la introducción de nuevas tecnologías. Ofrece estrategias de mitigación, como la selección adecuada de dispositivos y servicios de acceso remoto a dispositivos.

Capítulo 2. Mobile Application Test Types. 2.1 Testing for Compatibility with Device Hardware

  1. Mobile Application Test Types

2.1 Testing for Compatibility with Device Hardware

2.1.1 Testing for Device Features

2.1.2 Testing for Different Displays

2.1.3 Testing for Device Temperature

2.1.4 Testing for Device Input Sensors

2.1.5 Testing Various Input Methods

2.1.6 Testing for Screen Orientation Change

2.1.7 Testing for Typical Interrupts

2.1.8 Testing for Access Permissions to Device Features

2.1.9 Testing for Power Consumption and State

 

2.1.1 Testing for Device Features: Examina cómo las características específicas del dispositivo, como cámaras, radios, USB, Bluetooth, y teclados (duros y suaves), afectan el funcionamiento de una aplicación. Las pruebas deben garantizar que la aplicación funcione correctamente en dispositivos con diferentes combinaciones de características.

2.1.2 Testing for Different Displays: Verifica que la aplicación funcione adecuadamente en diferentes tamaños de pantalla, densidades de píxeles, resoluciones y relaciones de aspecto. Las pruebas deben asegurar que los elementos de la interfaz de usuario se adapten correctamente y no se superpongan o muestren problemas de usabilidad.

2.1.3 Testing for Device Temperature: Evalúa cómo la aplicación maneja las condiciones de sobrecalentamiento del dispositivo, que pueden afectar el rendimiento del CPU y otros componentes. Las pruebas deben simular condiciones de uso prolongado que puedan generar calor y verificar que la aplicación mantenga un comportamiento adecuado.

2.1.4 Testing for Device Input Sensors: Abarca pruebas para sensores de entrada del dispositivo, como GPS, acelerómetros, giroscopios y magnetómetros. Verifica que la aplicación funcione correctamente con diferentes tipos de entradas y bajo diversas condiciones, como diferentes calidades de señal GPS.

2.1.5 Testing Various Input Methods: Prueba cómo la aplicación maneja diferentes métodos de entrada, incluidos teclados blandos y duros, gestos táctiles (toques, deslizamientos, pellizcos) y entradas de cámara. Asegura que la aplicación responda correctamente a los métodos de entrada admitidos y ignore los no compatibles.

2.1.6 Testing for Screen Orientation Change: Verifica la capacidad de la aplicación para manejar cambios de orientación de pantalla entre modos horizontal y vertical. Las pruebas deben garantizar que la aplicación mantenga su estado y datos sin pérdida o error, incluso con cambios de orientación repetidos.

2.1.7 Testing for Typical Interrupts: Examina cómo la aplicación maneja interrupciones comunes del dispositivo, como llamadas, mensajes, alertas de batería baja o cambio de aplicaciones. Verifica que la aplicación conserve su estado y funcionalidad sin verse afectada negativamente por estas interrupciones.

2.1.8 Testing for Access Permissions to Device Features: Prueba cómo la aplicación maneja los permisos de acceso a características del dispositivo, como contactos, cámara o micrófono. Asegura que la aplicación funcione con permisos limitados y gestione adecuadamente la denegación o retirada de permisos.

2.1.9 Testing for Power Consumption and State: Evalúa el impacto de la aplicación en el consumo de energía del dispositivo y su comportamiento en diferentes estados de batería. Las pruebas deben medir el uso de energía tanto en primer plano como en segundo plano, y verificar el rendimiento bajo condiciones de batería baja o agotada.

Capítulo 2. Mobile Application Test Types. 2.2 Testing for App Interactions with Device Software

2.2 Testing for App Interactions with Device Software

2.2.1 Testing for Notifications

2.2.2 Testing for Quick-access Links

2.2.3 Testing for User Preferences Provided by the Operating System 

2.2.4 Testing for Different Types of Apps

2.2.5 Testing for Interoperability with Multiple Platforms and Operating System Versions

2.2.6 Testing for Interoperability and Co-existence with other Apps on the Device

 

2.2.1 Testing for Notifications: Verifica cómo la aplicación maneja las notificaciones del sistema, tanto en primer plano como en segundo plano. Las pruebas deben comprobar que las notificaciones no interrumpen la funcionalidad de la aplicación y que las interacciones del usuario con las notificaciones se reflejan correctamente dentro de la aplicación.

2.2.2 Testing for Quick-access Links: Evalúa la funcionalidad de los accesos rápidos (como accesos directos y funciones de toque prolongado) proporcionados por la aplicación. Las pruebas deben asegurar que las acciones iniciadas desde estos enlaces se reflejen correctamente en la aplicación completa y que el comportamiento sea consistente.

2.2.3 Testing for User Preferences Provided by the Operating System: Examina cómo la aplicación respeta las preferencias del usuario establecidas a nivel del sistema operativo, como configuraciones de sonido, brillo, ahorro de energía y notificaciones. Las pruebas aseguran que la aplicación se ajuste correctamente a estas configuraciones.

2.2.4 Testing for Different Types of Apps: Distinción de las pruebas necesarias para aplicaciones nativas, híbridas y web. Cada tipo de aplicación requiere pruebas específicas en cuanto a compatibilidad con dispositivos, utilización de características nativas, problemas de rendimiento y compatibilidad entre navegadores.

2.2.5 Testing for Interoperability with Multiple Platforms and Operating System Versions: Asegura que la aplicación funcione correctamente en múltiples sistemas operativos y versiones, manejando adecuadamente las diferencias en características y limitaciones de cada plataforma. Las pruebas también deben garantizar la compatibilidad hacia atrás con versiones anteriores.

2.2.6 Testing for Interoperability and Co-existence with other Apps on the Device: Verifica la capacidad de la aplicación para coexistir e interactuar con otras aplicaciones instaladas en el dispositivo. Las pruebas deben asegurar que no haya conflictos de datos o comportamiento, y que la transferencia de datos entre aplicaciones sea correcta.

Capítulo 2. Mobile Application Test Types. 2.3 Testing for Various Connectivity Methods

2.3 Testing for Various Connectivity Methods: Esta sección se centra en probar la funcionalidad de la aplicación móvil con diferentes métodos de conectividad, como redes celulares (2G, 3G, 4G, 5G), Wi-Fi, NFC y Bluetooth. Las pruebas deben asegurar que la aplicación funcione correctamente cuando cambia entre modos de conexión, maneje adecuadamente situaciones de conectividad limitada o nula, y proporcione mensajes claros al usuario cuando las funcionalidades están restringidas debido a problemas de red. También se deben considerar las condiciones del mundo real, como la variabilidad de la señal y el cambio entre redes durante el uso de la aplicación.

Capítulo 3. Common Test Types and Test Process for Mobile Applications. 3.1 Common Test Types Applicable for Mobile Application

3.1 Common Test Types Applicable for Mobile Application

3.1.1 Installability Testing

3.1.2 Stress Testing

3.1.3 Security Testing

3.1.4 Performance Testing

3.1.5 Usability Testing

3.1.6 Database Testing

3.1.7 Globalization and Localization Testing

3.1.8 Accessibility Testing



3.1.1 Installability Testing: Pruebas centradas en la instalación, actualización y desinstalación de la aplicación en diferentes condiciones (memoria interna/externa, interrupciones durante la instalación). Aseguran que la aplicación se instale y funcione correctamente desde diversas fuentes (tiendas de aplicaciones, carga lateral, etc.) y bajo diferentes métodos de instalación (OTA, cable de datos).

3.1.2 Stress Testing: Evalúa cómo la aplicación maneja condiciones extremas, como uso intensivo del CPU, poca memoria, espacio en disco bajo, estrés de batería, y ancho de banda limitado. Las pruebas aseguran que la aplicación mantenga un rendimiento adecuado bajo estas condiciones desafiantes.

3.1.3 Security Testing: Verifica la protección de datos sensibles en el dispositivo, la transferencia segura de datos y la eliminación de datos temporales. Se enfoca en evitar vulnerabilidades como la inyección de código, almacenamiento inseguro y asegurar que las políticas de seguridad cumplan con los estándares como OWASP.

3.1.4 Performance Testing: Mide el tiempo de respuesta y el consumo de recursos de la aplicación para garantizar una experiencia de usuario fluida y rápida. Las pruebas de rendimiento evalúan tanto la eficiencia de la aplicación en el dispositivo como la interacción con los sistemas backend.

3.1.5 Usability Testing: Evalúa la facilidad de uso de la aplicación para garantizar una experiencia de usuario intuitiva y satisfactoria. Las pruebas incluyen la conformidad con las expectativas de diseño de la plataforma, la autocomprensibilidad de la aplicación y la capacidad de recuperación ante errores del usuario.

3.1.6 Database Testing: Comprueba la correcta gestión y seguridad de los datos almacenados localmente, incluyendo la sincronización, la resolución de conflictos de subida, la integridad de los datos y el rendimiento en la gestión de datos en el dispositivo.

3.1.7 Globalization and Localization Testing: Asegura que la aplicación funcione correctamente en diferentes configuraciones regionales, idiomas y formatos (fechas, monedas, etc.). Las pruebas deben verificar que el contenido localizado se ajuste adecuadamente a diversas pantallas y resoluciones.

3.1.8 Accessibility Testing: Verifica la facilidad de uso de la aplicación para personas con discapacidades utilizando configuraciones de accesibilidad del dispositivo. Asegura que la aplicación cumpla con las guías de accesibilidad de las plataformas, proporcionando una experiencia de usuario inclusiva.

Capítulo 3. Common Test Types and Test Process for Mobile Applications. 3.2 Additional Test Levels applicable for Mobile Applications

3.2 Additional Test Levels applicable for Mobile Applications

3.2.1 Field Testing

3.2.2 Testing for Application Store Approval and Post-release Testing

 

3.2.1 Field Testing: Implica probar la aplicación en escenarios del mundo real para asegurar su funcionalidad bajo condiciones de uso típicas del usuario final. Las pruebas de campo deben considerar diferentes tipos de redes, velocidades de descarga, fuerzas de señal, y situaciones como puntos ciegos de conectividad. También se prueba la usabilidad de la aplicación en diferentes ambientes y condiciones, como temperatura o movilidad.

3.2.2 Testing for Application Store Approval and Post-release Testing: Enfocado en garantizar que la aplicación cumpla con las directrices de las tiendas de aplicaciones para su aprobación y publicación. Incluye pruebas de cumplimiento normativo, políticas de privacidad, y revisión de contenido. Las pruebas posteriores al lanzamiento monitorean el rendimiento, recopilan retroalimentación del usuario, y manejan actualizaciones para mantener la calidad y seguridad de la aplicación.

Capítulo 3. Common Test Types and Test Process for Mobile Applications. 3.3 Experience-based Testing Techniques

3.3 Experience-based Testing Techniques

3.3.1 Personas and Mnemonics

3.3.2 Heuristics

3.3.3 Tours

3.3.4 Session-Based Test Management (SBTM)

 

3.3.1 Personas and Mnemonics: Utiliza personajes ficticios («personas») que representan diferentes tipos de usuarios para orientar las pruebas de usabilidad y funcionalidad. Los mnemónicos son reglas simples o acrónimos (como SFDIPOT para pruebas de exploración) que ayudan a recordar técnicas de prueba efectivas y asegurar una cobertura adecuada de aspectos críticos en la aplicación.

3.3.2 Heuristics: Las heurísticas son reglas generales o principios que ayudan a los testers a identificar posibles problemas de usabilidad, rendimiento y funcionalidad en una aplicación móvil. Se basan en experiencias previas y se utilizan para guiar la exploración de la aplicación, asegurando que se cubran diferentes aspectos del comportamiento de la aplicación.

3.3.3 Tours: Consisten en «recorridos» estructurados por la aplicación que se centran en explorar características específicas o flujos de usuario (como el «tour de función» o el «tour de interrupción»). Ayudan a los testers a identificar problemas potenciales en las funcionalidades y a familiarizarse con los diferentes componentes de la aplicación.

3.3.4 Session-Based Test Management (SBTM): Es un enfoque de prueba exploratoria donde las sesiones de prueba se planifican, realizan y documentan de manera estructurada. Cada sesión tiene un objetivo claro y un tiempo limitado, lo que permite a los testers concentrarse en áreas específicas de la aplicación, optimizando la cobertura y la eficiencia de las pruebas.

Capítulo 3. Common Test Types and Test Process for Mobile Applications. 3.4 Mobile Test Process and Approaches

3.4 Mobile Test Process and Approaches

3.4.1 Test Process

3.4.2 Test Approaches

 

3.4.1 Test Process: Describe cómo adaptar el proceso de pruebas estándar (planificación, diseño, ejecución, y cierre de pruebas) al contexto de las aplicaciones móviles. Incluye consideraciones especiales como la fragmentación del dispositivo, la diversidad de plataformas, las pruebas de red, y las pruebas de funcionalidad en diferentes condiciones. El proceso se centra en garantizar la calidad de la aplicación a través de una planificación de pruebas eficiente y una ejecución controlada.

3.4.2 Test Approaches: Explora enfoques específicos de prueba para aplicaciones móviles, como las pruebas basadas en riesgos, las pruebas basadas en la experiencia, y las pruebas automatizadas. También incluye estrategias para seleccionar dispositivos de prueba, el uso de emuladores/simuladores versus dispositivos reales, y la planificación de pruebas considerando limitaciones como el tiempo, los recursos y la cobertura requerida.

Capítulo 4. Mobile Application Platforms, Tools and Environment. 4.1 Development Platforms for Mobile Applications

4.1 Development Platforms for Mobile Applications

4.2 Common Development Platform Tools

4.3 Emulators & Simulators

4.3.1 Overview of Emulators & Simulators

4.3.2 Using Emulators and Simulators

 

4.1 Development Platforms for Mobile Applications: Describe las principales plataformas de desarrollo para aplicaciones móviles, como Android, iOS y multiplataforma (React Native, Flutter, etc.). Cada plataforma tiene su propio conjunto de herramientas de desarrollo, bibliotecas y requisitos específicos, que influyen en la elección de tecnologías y métodos de prueba para garantizar la compatibilidad y funcionalidad de la aplicación.

4.2 Common Development Platform Tools: Enumera las herramientas comunes utilizadas en el desarrollo de aplicaciones móviles, incluidas las IDEs (Android Studio, Xcode), frameworks de pruebas, herramientas de depuración y perfiles. Estas herramientas ayudan a los desarrolladores a crear, probar y optimizar aplicaciones, asegurando que cumplan con los estándares de calidad y rendimiento.

4.3 Emulators & Simulators: Explica la diferencia entre emuladores y simuladores. Los emuladores replican el hardware y el software del dispositivo, proporcionando un entorno de prueba más completo, mientras que los simuladores imitan únicamente el software del dispositivo. Ambos son utilizados para pruebas iniciales y para escenarios específicos donde el acceso a dispositivos físicos es limitado.

4.3.1 Overview of Emulators & Simulators: Proporciona una visión general de los emuladores y simuladores, destacando sus ventajas y limitaciones. Los emuladores son útiles para pruebas de compatibilidad y de hardware, mientras que los simuladores son más rápidos y convenientes para pruebas de desarrollo y pruebas rápidas de interfaz de usuario.

4.3.2 Using Emulators and Simulators: Describe cómo utilizar emuladores y simuladores en el proceso de prueba de aplicaciones móviles. Incluye ejemplos de casos de uso, como pruebas de funcionalidad básica, pruebas en múltiples versiones de SO, y pruebas en condiciones específicas (diferentes configuraciones de red, localización, etc.), para asegurar que la aplicación funcione correctamente en diversas situaciones.

4.4 Setting up a Test Lab: Esta sección explica cómo configurar un laboratorio de pruebas para aplicaciones móviles, enfocándose en la selección de dispositivos, la infraestructura necesaria y las herramientas de soporte. Incluye recomendaciones sobre el uso de dispositivos físicos y virtuales (emuladores y simuladores) para cubrir diferentes escenarios de prueba. También abarca la configuración de redes y herramientas de monitoreo para simular condiciones del mundo real y evaluar el rendimiento y la funcionalidad de la aplicación en diversas situaciones. El objetivo es crear un entorno de prueba eficiente que permita una validación exhaustiva y repetible de la aplicación móvil.

Capítulo 5. Automating the Test Execution

5.1 Automation Approaches

5.2 Automation Methods

5.3 Automation Tools Evaluation

5.4 Approaches for setting up an Automation Test Lab

 

5.1 Automation Approaches: Describe los enfoques para la automatización de pruebas en aplicaciones móviles, como pruebas basadas en GUI, pruebas de API, y pruebas de rendimiento automatizadas. Cada enfoque tiene beneficios específicos dependiendo del tipo de aplicación, el nivel de prueba y el objetivo del proceso de automatización, optimizando la cobertura de prueba y la eficiencia del equipo.

5.2 Automation Methods: Explica los métodos utilizados en la automatización de pruebas, incluyendo scripting, grabación y reproducción, y pruebas basadas en modelos. Cada método ofrece diferentes niveles de complejidad, flexibilidad y mantenimiento, permitiendo a los testers seleccionar el método más adecuado según los requisitos del proyecto.

5.3 Automation Tools Evaluation: Proporciona criterios para evaluar herramientas de automatización de pruebas, considerando factores como la compatibilidad con dispositivos y plataformas, facilidad de uso, integración con otros sistemas y costo. La selección adecuada de herramientas es crucial para maximizar la eficiencia y efectividad del proceso de automatización.

5.4 Approaches for Setting up an Automation Test Lab: Describe cómo configurar un laboratorio de pruebas automatizadas, incluyendo la elección de infraestructura (dispositivos físicos vs. emuladores/simuladores), configuración de herramientas de automatización y entornos de prueba. El objetivo es crear un entorno que soporte pruebas repetibles y consistentes, facilitando el desarrollo continuo y la integración continua.

Fuente: https://www.istqb.org/certifications/mobile-tester

Gus Terrera

Apasionado por el agile testing y la ia.