Middle+
Cuente casos de verificación de reconexión en la aplicación móvil.
sobes.tech AI
Respuesta de la IA
Las pruebas de reconexión verifican cómo se comporta una aplicación móvil al perder y luego restablecer la conexión con el servidor u otros recursos de red.
Escenarios de prueba:
- Cambio de red:
- Wi-Fi -> Internet móvil (LTE/5G).
- Internet móvil (LTE/5G) -> Wi-Fi.
- Wi-Fi (un punto) -> Wi-Fi (otro punto).
- Pérdida de señal:
- Entrada en una zona sin cobertura (ascensor, metro).
- Activar/desactivar modo avión.
- Desactivar forzosamente las interfaces de red (Wi-Fi, datos celulares) a través de la configuración del dispositivo.
- Problemas en el servidor:
- API temporalmente no disponible.
- Reinicio del servidor.
- Retardos de red (simulados mediante proxies).
Qué verificamos:
- Comportamiento de UI/UX:
- Mostrar indicadores de carga o errores.
- Mantener el estado actual del usuario (por ejemplo, entrada incompleta, posición en la lista).
- Mostrar correctamente las notificaciones de pérdida/restablecimiento de conexión.
- Sin fallos o bloqueos en la aplicación.
- Integridad de datos:
- Los datos en proceso de envío/recepción durante la desconexión deben ser manejados correctamente tras la recuperación.
- Los datos almacenados localmente deben sincronizarse con el servidor.
- Reintentos (Lógica de reintento):
- La aplicación debe tener lógica de reintentos con retraso exponencial (backoff).
- Límites en la cantidad de reintentos y tiempo de espera.
- Gestión de sesiones:
- La sesión del usuario debe mantenerse o recuperarse correctamente sin cerrar sesión forzadamente.
Instrumentos y técnicas:
- Proxies de red: Charles Proxy, Fiddler. Permiten simular retardos, pérdida de paquetes, bloqueo de solicitudes.
- Utilidades de red: Herramientas de desarrollo en navegador (para webview), utilidades móviles especializadas para controlar el tráfico.
- Modo avión: Método sencillo para simular pérdida total de conexión.
- Desactivar interfaces de red: A través de la configuración del sistema del dispositivo.
- Emuladores de red: Herramientas que permiten simular diferentes condiciones de red (velocidad, retardo, pérdida de paquetes).
- Automatización: Uso de Appium, Espresso (Android), XCUITest (iOS) para automatizar escenarios con cambio de red o llamadas a funciones del sistema (activar/desactivar modo avión).
// Ejemplo de automatización de prueba de reconexión usando Appium (Python)
from appium import webdriver
import time
desired_caps = {
'platformName': 'Android',
'deviceName': 'Android Emulator', # O dispositivo real
'appPackage': 'com.yourapp.package',
'appActivity': 'com.yourapp.MainActivity',
'automationName': 'UiAutomator2'
}
driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps)
try:
// Realizar acciones que requieran red
driver.find_element_by_accessibility_id("some_button").click()
time.sleep(5) # Esperar carga de datos
// Activar modo avión
driver.open_notifications()
driver.find_element_by_accessibility_id("Airplane mode").click()
driver.back() # Cerrar notificaciones
print("Modo avión ACTIVADO")
time.sleep(10) # Esperar pérdida de conexión
// Intentar realizar acción de red
driver.find_element_by_accessibility_id("another_button").click()
// Verificar la visualización del indicador de error/falta de red
// Desactivar modo avión
driver.open_notifications()
driver.find_element_by_accessibility_id("Airplane mode").click()
driver.back() # Cerrar notificaciones
print("Modo avión DESACTIVADO")
time.sleep(10) # Esperar recuperación de conexión
// Verificar recuperación de funcionalidad y datos correctos
// ... declaraciones assert ...
except Exception as e:
print(f"Error: {e}")
finally:
driver.quit()
La prueba de reconexión es crítica para garantizar la estabilidad y fiabilidad de la aplicación móvil en entornos de red inestables.