Sobes.tech
Middle+

Conte casos de verificação de reconexão na aplicação móvel.

sobes.tech IA

Resposta da IA

Os testes de reconexão verificam como um aplicativo móvel se comporta ao perder e posteriormente restabelecer a conexão com o servidor ou outros recursos de rede.

Scenários de teste:

  • Alteração de rede:
    • Wi-Fi -> Internet móvel (LTE/5G).
    • Internet móvel (LTE/5G) -> Wi-Fi.
    • Wi-Fi (um ponto) -> Wi-Fi (outro ponto).
  • Perda de sinal:
    • Entrada numa zona sem cobertura (elevador, metro).
    • Ativar/desativar modo avião.
    • Desligar forçosamente as interfaces de rede (Wi-Fi, Dados móveis) através das definições do dispositivo.
  • Problemas no servidor:
    • API temporariamente indisponível.
    • Reinício do servidor.
    • Atrasos de rede (simulados por proxies).

O que verificamos:

  • Comportamento de UI/UX:
    • Mostrar indicadores de carregamento ou erro.
    • Manter o estado atual do utilizador (por exemplo, entrada incompleta, posição na lista).
    • Mostrar corretamente as notificações de perda/restauração de conexão.
    • Sem falhas ou bloqueios na aplicação.
  • Integridade dos dados:
    • Os dados em processo de envio/receção durante a desconexão devem ser tratados corretamente após a recuperação.
    • Os dados armazenados localmente devem sincronizar-se com o servidor.
  • Tentativas de reiteração (Lógica de Retry):
    • A aplicação deve ter lógica de reiteração com atraso exponencial (backoff).
    • Limites ao número de tentativas e tempo de espera.
  • Gestão de sessões:
    • A sessão do utilizador deve ser mantida ou recuperada corretamente sem logout forçado.

Instrumentos e técnicas:

  • Proxies de rede: Charles Proxy, Fiddler. Permitem simular atrasos, perda de pacotes, bloqueio de pedidos.
  • Utilitários de rede: Ferramentas de desenvolvimento no navegador (para webview), utilitários móveis especializados para controlo de tráfego.
  • Modo "Em avião": Método simples para simular perda total de ligação.
  • Desligar interfaces de rede: Através das definições do sistema do dispositivo.
  • Emuladores de rede: Ferramentas que permitem simular diferentes condições de rede (velocidade, atraso, perda de pacotes).
  • Automatização: Uso de Appium, Espresso (Android), XCUITest (iOS) para automatizar cenários com mudança de rede ou chamada de funções do sistema (ligar/desligar modo avião).
// Exemplo de automação de teste de reconexão usando Appium (Python)

from appium import webdriver
import time

desired_caps = {
    'platformName': 'Android',
    'deviceName': 'Android Emulator', # Ou dispositivo real
    'appPackage': 'com.yourapp.package',
    'appActivity': 'com.yourapp.MainActivity',
    'automationName': 'UiAutomator2'
}

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

try:
    // Executar ações que requerem rede
    driver.find_element_by_accessibility_id("some_button").click()
    time.sleep(5) # Espera pelo carregamento de dados

    // Ativar modo "Em avião"
    driver.open_notifications()
    driver.find_element_by_accessibility_id("Airplane mode").click()
    driver.back() # Fechar notificações
    print("Modo avião ATIVADO")
    time.sleep(10) # Espera pela perda de conexão

    // Tentar realizar ação de rede
    driver.find_element_by_accessibility_id("another_button").click()
    // Verificar a exibição do indicador de erro/ausência de rede

    // Desativar modo "Em avião"
    driver.open_notifications()
    driver.find_element_by_accessibility_id("Airplane mode").click()
    driver.back() # Fechar notificações
    print("Modo avião DESATIVADO")
    time.sleep(10) # Espera pela restauração da conexão

    // Verificar a restauração da funcionalidade e a coerência dos dados
    // ... declarações assert ...

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

finally:
    driver.quit()

O teste de reconexão é fundamental para garantir a estabilidade e confiabilidade da aplicação móvel em ambientes de rede instáveis.