Sobes.tech
Middle+

Racontez des cas de vérification de reconnexion dans l'application mobile.

sobes.tech IA

Réponse de l'IA

Les tests de reconnexion vérifient comment une application mobile se comporte lors de la perte puis de la restauration de la connexion au serveur ou à d’autres ressources réseau.

Scenarios de test:

  • Changement de réseau:
    • Wi-Fi -> Internet mobile (LTE/5G).
    • Internet mobile (LTE/5G) -> Wi-Fi.
    • Wi-Fi (un point) -> Wi-Fi (un autre point).
  • Perte de signal:
    • Entrée dans une zone sans couverture (ascenseur, métro).
    • Activation/désactivation du mode avion.
    • Désactivation forcée des interfaces réseau (Wi-Fi, données cellulaires) via la configuration de l’appareil.
  • Problèmes côté serveur:
    • API temporairement indisponible.
    • Redémarrage du serveur.
    • Retards réseau (simulés via des proxies).

Ce que nous vérifions:

  • Comportement UI/UX:
    • Affichage d’indicateurs de chargement ou d’erreur.
    • Conservation de l’état actuel de l’utilisateur (par ex., saisie incomplète, position dans la liste).
    • Affichage correct des notifications de perte/restauration de la connexion.
    • Absence de plantages ou de blocages de l’application.
  • Intégrité des données:
    • Les données en cours d’envoi/réception lors de la déconnexion doivent être traitées correctement après la restauration.
    • Les données stockées localement doivent être synchronisées avec le serveur.
  • Tentatives de réessai (Logique de retry):
    • L’application doit avoir une logique de réessai avec délai exponentiel (backoff).
    • Limites sur le nombre de tentatives et le temps d’attente.
  • Gestion des sessions:
    • La session utilisateur doit être conservée ou restaurée correctement sans déconnexion forcée.

Outils et techniques:

  • Proxies réseau: Charles Proxy, Fiddler. Permettent de simuler des retards, pertes de paquets, blocages de requêtes.
  • Utilitaires réseau: Outils de développement dans le navigateur (pour webview), utilitaires mobiles spécialisés pour contrôler le trafic.
  • Mode avion: Méthode simple pour simuler une perte totale de connexion.
  • Désactivation des interfaces réseau: Via les paramètres système de l’appareil.
  • Émulateurs réseau: Outils permettant de simuler différentes conditions réseau (vitesse, retard, perte de paquets).
  • Automatisation: Utilisation d’Appium, Espresso (Android), XCUITest (iOS) pour automatiser les scénarios avec changement de réseau ou appel aux fonctions système (activation/désactivation du mode avion).
// Exemple d’automatisation de test de reconnexion avec Appium (Python)

from appium import webdriver
import time

desired_caps = {
    'platformName': 'Android',
    'deviceName': 'Android Emulator', # Ou appareil réel
    'appPackage': 'com.yourapp.package',
    'appActivity': 'com.yourapp.MainActivity',
    'automationName': 'UiAutomator2'
}

driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps)

try:
    // Effectuer des actions nécessitant le réseau
    driver.find_element_by_accessibility_id("some_button").click()
    time.sleep(5) # Attente du chargement des données

    // Activer le mode avion
    driver.open_notifications()
    driver.find_element_by_accessibility_id("Airplane mode").click()
    driver.back() # Fermer les notifications
    print("Mode avion ACTIVÉ")
    time.sleep(10) # Attente de la perte de connexion

    // Essayer d’effectuer une action réseau
    driver.find_element_by_accessibility_id("another_button").click()
    // Vérifier l’affichage de l’indicateur d’erreur/de manque de réseau

    // Désactiver le mode avion
    driver.open_notifications()
    driver.find_element_by_accessibility_id("Airplane mode").click()
    driver.back() # Fermer les notifications
    print("Mode avion DÉSACTIVÉ")
    time.sleep(10) # Attente de la restauration de la connexion

    // Vérifier la restauration de la fonctionnalité et la cohérence des données
    // ... assertions ...

except Exception as e:
    print(f"Erreur: {e}")

finally:
    driver.quit()

Le test de reconnexion est crucial pour assurer la stabilité et la fiabilité de l’application mobile en cas de réseau instable.